Salem is the Sal Execution Model. It is a Zig implementation of the Sal programming language.
-
Basic data types:
- RRB-Trees for arrays and byte arrays
- B-Trees, for dictionaries, sets and multisets
- Pairs and Variables
- Primitive and constructed functions
- A very minimal object system (needed for efficient mutual recursion)
- Promises for lazy evaluation
-
Numeric tower:
- Fixnums
- Arbitrary precision integers
- Ratios
- Complex numbers and quaternions (restricted to rational coefficients)
- Multisets (we will treat numbers as a proper subtype of multisets)
- We are explicitly not supporting IEEE 754 Floats, but we may at some point support Posits