The uncurried minimal functional programming language
It's designed to be a compiler target for high-level functional programming languages.
- SSA
- Minimal
- Only 4 control instructions
branch
call
if
return
- No backward jump
- Only 4 control instructions
- Portable
- Pointer-sized integer
- C-like union type
- Boolean type
- Structural typing
- CPS transformation
- IR builder library
- Inductive types
- Weak typing
- No type inference
Caller \ Callee | Target (C) | Tail | Source (CPS) |
---|---|---|---|
Target (C) | x | x | *1 |
Tail | x | x | *1 |
Source (CPS) | x | x | x |
- *1: Suspension in functions is not supported.
- Expressions have no side effect.
- You can use them in constants.
- Instructions can have side effects.