Desired function
Classify expressions/values as static, dynamic, or partially static, and define abstract values for specialization.
Futamura role
Core analysis used to implement the specializer (s) and generating extensions.
Inputs
- IR/AST with annotations for known compile-time inputs.
- Allowed host interactions (file I/O, etc.).
- Exception semantics (Layer 0.6).
Processing
- Dataflow fixed-point analysis propagating binding times.
- Build abstract values: static part + constraints on dynamic part.
- Track static computations that may raise exceptions; mark those as disallowed or special.
Outputs
- Binding-time annotated IR.
- Abstract value lattice for partial evaluator and JIT.
Key references
- Classic partial evaluation / BTA literature. gist.github
Desired function
Classify expressions/values as static, dynamic, or partially static, and define abstract values for specialization.
Futamura role
Core analysis used to implement the specializer (s) and generating extensions.
Inputs
Processing
Outputs
Key references