Continuations
A continuation is a computer science way of formalizing the call stack. They represent future work to be performed. The operators "shift" and "reset" are used to manipulate continuations and the machine state to do non-linear control flow, side effects, and other functions.
There are three types of continuation:
The underlying TypeScript types which we wrap in our language.
⊤, the "top-level" continuation which has no successor.
A value is either a wrapped continuation or a wrapped
term of some TypeScript type T
.
The underlying TypeScript types which we wrap in our language.
Call-By-Push-Value intermediate language.
The state of the virtual machine mutated over the course of execution.
The underlying TypeScript type forming the basis of values in the language.
Value constructor for wrapped continuations.
The underlying TypeScript types forming the basis of values in the language. Passed along to nested values.
The underlying TypeScript types forming the basis of values in the language. Passed along to nested values.
Constructs a ⊤ continuation.
A positive term is one which is fully evaluated - eg, applying CESKM.step will not change it. This helper answers whether a given term is positive or not.
The source code to parse.
Generated using TypeDoc
Precursor
Precursor is a small programming language which you may grow and build upon (a precursor, if you like).
The default distribution consists of 3 modules which work together "out of the box":
string
s into Cbpv values.