Skip to content

3.1.1 Binding-Time Analysis (BTA) #19

Description

@Mathnerd314

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions