catala/compiler/scalc/scalc.mld

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

29 lines
777 B
Plaintext
Raw Normal View History

{0 Statement calculus}
This representation is the sixth in the compilation chain
(see {{: index.html#architecture} Architecture}). Its main difference
with the previous {{: Lcalc.html} default calculus} is the switch to a
statement-based language. This representation does not assume any scoping
rules in the language, every local variable has a unique id.
The module describing the abstract syntax tree is:
2022-02-14 20:27:29 +03:00
{!modules: Scalc.Ast Scalc.Print}
{1 Compilation from lambda calculus }
2023-06-02 18:17:45 +03:00
{!module: Scalc.From_lcalc} Performs the classical translation
from an expression-based language to a statement-based language. Union types
are eliminated in favor of tagged unions.
2022-01-19 12:54:16 +03:00
Related modules:
2023-06-02 18:17:45 +03:00
{!modules: Scalc.From_lcalc}
2022-01-19 12:54:16 +03:00
{1 Backends}
Related modules:
{!modules: Scalc.To_python}