Futamura
From APIDesign
(Difference between revisions)
												
			
			 (New page: == Futamura Projections ==  Famous work from 1971 by Yoshihiko Futamura relating programs '''P''', interpreters '''I''', partial evaluators '''E''', and compilers '''C'''. There are th...)  | 
				 (→Futamura Projections)  | 
			||
| (2 intermediate revisions not shown.) | |||
| Line 1: | Line 1: | ||
== [[Futamura]] Projections ==  | == [[Futamura]] Projections ==  | ||
| - | 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":
- 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,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.