ACM Home Page
Please provide us with feedback. Feedback
Is there a fourth Futamura projection?
Full text PdfPdf (599 KB)
Source
ACM/SIGPLAN Workshop Partial Evaluation and Semantics-Based Program Manipulation archive
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation table of contents
Savannah, GA, USA
SESSION: Partial evaluation and specialization table of contents
Pages 51-60  
Year of Publication: 2009
ISBN:978-1-60558-327-3
Author
Robert Glück  University of Copenhagen, Copenhagen, Denmark
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 14,   Downloads (12 Months): 171,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1480945.1480954
What is a DOI?

ABSTRACT

The three classic Futamura projections stand as a cornerstone in the development of partial evaluation. The observation by Futamura [1983], that compiler generators produced by his third projection are self-generating, and the insight by Klimov and Romanenko [1987], that Futamura's abstraction scheme can be continued beyond the three projections, are systematically investigated, and several new applications for compiler generators are proposed. Possible applications include the generation of quasi-online compiler generators and of compiler generators for domain-specific languages, and the bootstrapping of compiler generators from program specializers. From a theoretical viewpoint, there is equality between the class of self-generating compiler generators and the class of compiler generators produced by the third Futamura projection. This exposition may lead to new practical applications of compiler generators, as well as deepen our theoretical understanding of program specialization.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
L. O. Andersen. Program analysis and specialization for the C programming language. Ph.D. thesis. DIKU Report 94/19, Dept. of Computer Science, University of Copenhagen, 1994.
 
3
 
4
 
5
 
6
A. Bondorf, D. Dussart. Improving CPS-based partial evaluation: writing cogen by hand. In Workshop on Partial Evaluation and Semantics-Based Program Manipulation, Technical Report 94/9, 1--9. University of Melbourne, Australia, 1994.
 
7
P. Bratley, J. Millo. Computer recreations: self-reproducing programs. Software -- Practice and Experience, 2(4):397--400, 1972.
 
8
 
9
10
 
11
A. P. Ershov. On the partial computation principle. Information Processing Letters, 6(2):38--41, 1977.
 
12
A. P. Ershov. On the essence of compilation. In E. Neuhold (ed.), Formal Description of Programming Concepts, 391--420. North-Holland, 1978.
 
13
 
14
Y. Futamura. EL1 partial evaluator. Progress report, Center for Research in Computing Technology, Harvard University, 1973. Extract from the introduction reproduced in {16}.
 
15
 
16
 
17
 
18
R. Glück. On the generation of specializers. Journal of Functional Programming, 4(4):499--514, 1994.
 
19
 
20
 
21
 
22
R. Glück, A. V. Klimov. Metasystem transition schemes in computer science and mathematics. World Futures: the Journal of General Evolution, 45:213--243, 1995.
 
23
 
24
C. K. Gomard, N. D. Jones. Compiler generation by partial evaluation: a case study. Structured Programming, 12:123--144, 1991.
 
25
C. K. Gomard, N. D. Jones. A partial evaluator for the untyped lambda calculus. Journal of Functional Programming, 1(1):21--69, 1991.
 
26
C. K. Holst. Language triplets: the Amix approach. In D. Bjørner, A. P. Ershov, N. D. Jones (eds.), Partial Evaluation and Mixed Computation, 167--185. North--Holland, 1988.
 
27
C. K. Holst, J. Launchbury. Handwriting cogen to avoid problems with static typing. In Fourth Annual Glasgow Workshop on Functional Programming. Draft Proceedings, 210--218, 1991.
 
28
 
29
 
30
N. D. Jones, P. Sestoft, H. Søndergaard. Mix: a self-applicable partial evaluator for experiments in compiler generation. Lisp and Symbolic Computation, 2(1):9--50, 1989.
31
32
 
33
A. V. Klimov, S. A. Romanenko. Metavychislitel' dlja jazyka Refal. Osnovnye ponjatija i primery. (A metaevaluator for the language Refal. Basic concepts and examples). Preprint 71, Keldysh Institute of Applied Mathematics, Academy of Sciences of the USSR, Moscow, 1987. (in Russian).
 
34
O. Lecarme, M.-C. Peyrolle-Thomas. Self-compiling compilers: an appraisal of their implementation and portability. Software -- Practice and Experience, 8:149--170, 1978.
 
35
M. Leuschel. The Ecce partial deduction system. In G. Puebla et al. (eds.), Proceedings of the ILPS'97 Workshop on Tools and Environments for (Constraint) Logic Programming, Technical Report CLIP7/97.1. Polytechnic University of Madrid, Spain, 1997.
 
36
M. Leuschel, J. Jørgensen. Efficient specialisation in Prolog using a hand-written compiler generator LOGEN. Electronic Notes in Theoretical Computer Science, 30(2):157--162, 2000.
37
 
38
T. Æ. Mogensen, A. Bondorf. Logimix: a self-applicable partial evaluator for Prolog. In K.-K. Lau, T. Clement (eds.), Logic Program Synthesis and Transformation, Workshops in Computing, 214--227. Springer-Verlag, 1993.
 
39
S. A. Romanenko. The specializer Unmix, 1990. Program and documentation available from ftp://ftp.diku.dk/pub/diku/dists/jones-book/Romanenko/.
 
40
M. H. Sørensen, R. Glück, N. D. Jones. A positive supercompiler. Journal of Functional Programming, 6(6):811--838, 1996.
41
 
42
W. Taha. A gentle introduction to multi-stage programming. In C. Lengauer, D. Batory, C. Consel, M. Odersky (eds.), Domain-specific program generation. Proceedings, Vol. 3016, 30--50. Springer-Verlag, 2004.
 
43
44
 
45
P. Thiemann. The PGG system: User manual, 2003. Program and documentation available from http://www.informatik.uni-freiburg.de/proglang/software/pgg/.
46
47
 
48
 
49
V. F. Turchin, And. V. Klimov, Ark. V. Klimov, V. F. Khoroshevsky, A. G.Krasovsky, S. A. Romanenko, I. B. Shchenkov, E. V. Travkina. Bazisnyj Refal i ego realizacija na vychislitel'nykh mashinakh (Basic Refal and its implementation on computers). GOSSTROJ SSSR, CNIPIASS, 1977. (in Russian).