Futamura

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(Futamura Projections)
Current revision (06:42, 14 July 2024) (edit) (undo)
(Futamura Projections)
 
Line 2: Line 2:
Famous work from 1971 by Yoshihiko [[Futamura]] relating programs '''P''', interpreters '''I''', partial evaluators '''E''', and
Famous work from 1971 by Yoshihiko [[Futamura]] relating programs '''P''', interpreters '''I''', partial evaluators '''E''', and
-
compilers '''C'''. There are three ''"Futamura Projections"'':
+
compilers '''C'''. There are three ''"[[Futamura]] Projections"'':
# E(I,P) → partially evaluate I(P) → emit C(P), a compiled program
# E(I,P) → partially evaluate I(P) → emit C(P), a compiled program
# E(E,I) → partially evaluate λP.I(P) → emit C, a compiler!
# E(E,I) → partially evaluate λP.I(P) → emit C, a compiler!

Current revision

Futamura Projections

Famous work from 1971 by Yoshihiko Futamura relating programs P, interpreters I, partial evaluators E, and compilers C. There are three "Futamura Projections":

  1. E(I,P) → partially evaluate I(P) → emit C(P), a compiled program
  2. E(E,I) → partially evaluate λP.I(P) → emit C, a compiler!
  3. E(E,E) → partially evaluate λI.λP.I(P) → emit a compiler-compiler!

Formal strategy for building compilers from interpreters and specializers just like Truffle. The info comes from 2019 compiler presentation.

Personal tools
buy