| Version | Published | Author | Implementation |
|---|---|---|---|
| 0.1.0 | January 16, 2025 | Jordan Bunke | Link![]() |
DeltaScript is a lightweight scripting language skeleton that is designed to be easily extended for the specification and implementation of domain-specific languages
.
The language is in active development. As it is already in production as the scripting language used by Stipple Effect
, it became necessary to publish a specification for the language.
DeltaScript is technically platform-agnostic. It can be implemented as a compiled language, or an interpreted language that targets any other programming language. However, the official implementation (latest version linked above) is an interpreter that targets Java.
This specification aims to provide an exhaustive description of how the language is designed, including its syntax, semantics, execution, and extension possibilities. Parts of this document employ advanced mathematical concepts, alongside formal mathematical notation and language. However, thorough explanations and external resources linked from within should ensure that the content remains accessible to non-experts. A strong mathematics and/or computer science background is helpful, but not required.
For a more beginner-friendly overview of the language, please see the guides section of the documentation.
- 2.1 – Type system
- 2.2 – Simple types
- 2.3 – Collection types
- 2.4 – Functional types
- 2.4.1 – Parsing complex types
- 2.5 – Type conversion
- 4.1 – Precedence
- 4.2 – Nested expressions
- 4.3 – Literals
- 4.4 – Variables as expressions
- 4.5 – Operators
- 4.6 – Cast expressions
- 4.7 – Function calls
- 4.8 – Helper function references
- 4.9 – Anonymous functions
- 4.10 – Array and list elements
- 4.11 – Explicit collections
- 4.12 – Collection initializers
- 5.1 – Imperative programming
- 5.2 – Statements
- 5.3 – Declarations
- 5.4 – Assignments
- 5.5 – Void function calls
- 5.6 – Conditional statements
- 5.7 – Loops
- 5.8 –
returnstatements
- 6.1 – Functions
- 6.2 – Type signatures
- 6.3 – Types of functions
- 6.4 – Function objects
- 6.4.1 –
call()
- 6.4.1 –
- 6.5 – Function semantics