Safety and Ease-of-Use in SymPL, a DSL for Enterprise Smart Contracts  


Post Image
By: Larry Diehl

Symbiont Assembly is, first and foremost, an application platform for decentralized applications-called smart contracts, so there must be a programming language we use to write these applications. There are two main ways of accomplishing this goal: re-using a general-purpose language, such as Java, Golang, or Scala, or using a domain-specific programming language (DSL), like Bitcoin Script, or Solidity. In the enterprise blockchain space, there is some debate as to which strategy is better.

At Symbiont, we’ve chosen to develop a domain-specific language, called SymPL (Symbiont Programming Language), for writing smart contracts targeting the Assembly blockchain platform. The goal of this post is to describe the motivation behind the high-level design of the SymPL smart contract DSL. Specifically, I’ll describe how SymPL is able to provide best-in-class language safety while also being more familiar and easier to use than other smart contract DSLs.

Symbiont’s customers are today using SymPL to write complex and rich privacy-preserving smart contract applications for the Assembly platform, and deploying them in mission-critical use cases. They depend on the strong safety features provided by the language to ensure that their smart contracts operate correctly and securely. They are able to build larger, more sophisticated applications, faster and more easily, than if they had to learn the unfamiliar or cumbersome programming paradigms that are often associated with the level of safety SymPL provides.

  • DSL
  • SymPL
  • Smart Contracts
  • Programming
  • Design