A Primitive Compiler from
$ lambdacomp [EXAMPLE_ID] [(-c|--direct-c) (-o|--output OUTPUT_FILE) | [--am]]
For details of each option, please check lambdacomp --help
.
optparse-applicative
.
To use that, users can check their documentation about autocompletion.
Currently, this repository implements a primitive compiler from Call-By-Value
- Frontend Parser for
$\lambda$ -calculus - Simple bidirectional type-checker for
$\lambda$ -calculus - Constraint-based bidirectional type checker for
$\lambda$ -calculus - Call-By-Value
$\lambda$ -calculus-To-CBPV pass - Call-By-Name
$\lambda$ -calculus-To-CBPV pass - Call-By-Need
$\lambda$ -calculus-To-CBPV pass - Simple bidirectional type-checker for CBPV
- Constraint-based bidirectional type checker for CBPV
- Simple CBPV optimization pass
- Tail call optimization pass (or lowering pass)
- CBPV interpreter
- CBPV-to-C pass without GC
- CBPV-to-AM pass without GC
- AM interpreter
- AM-to-C pass without GC
- GC instruction for AM
- GC for CBPV-to-C
- GC for CBPV-to-AM
- GC for AM-to-C
- PrintInt effect
- PrintString effect
- Read effect
- Exception-handling effects
- General I/O effect