2021-06-22 17:01:57 +03:00
|
|
|
{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}
|
2021-06-22 17:01:57 +03:00
|
|
|
|
|
|
|
{1 Compilation from lambda calculus }
|
|
|
|
|
|
|
|
{!module: Scalc.Compile_from_lambda} 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:
|
|
|
|
|
|
|
|
{!modules: Scalc.Compile_from_lambda}
|
|
|
|
|
2021-06-22 17:01:57 +03:00
|
|
|
{1 Backends}
|
|
|
|
|
|
|
|
Related modules:
|
|
|
|
|
2022-01-02 16:53:51 +03:00
|
|
|
{!modules: Scalc.To_python}
|
2021-06-22 17:01:57 +03:00
|
|
|
|