|
ABSTRACT
Compiler generation is often emphasized as being the most important application of partial evaluation. But most of the larger practical applications have, to the best of our knowledge, been outside this field. Expecially, no one has generated compilers for languages other than small languages. This paper describes a large application of partial evaluation where a realistic compiler was generated for a strongly typed lazy functional language. The language, that was called BAWL, was modeled after the language in Bird and Wadler [BW88] and is a combinator language with pattern matching, guarded alternatives, local definitions and list comprehensions. The paper describes the most important techniques used, especially the binding time improvements needed in order to get small and efficient target programs. Finally, the performance of the compiler is compared with two compilers for similar languages: Miranda and LML.
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.
| |
BD91
|
|
| |
Bon90
|
|
| |
Bon91a
|
Anders Bondorf. Compiling laziness by partial evaluation. In {JHH91}, pages 9-22, 1991.
|
| |
Bon91b
|
Anders Bondorf. Similix manual, system version 4.0. Included in Similix distribution, September 1991.
|
| |
Bon92
|
Anders Bondorf. Improving binding times without explicit cps-conversion. 1992. Forthcoming.
|
| |
BW88
|
|
| |
CD89
|
|
| |
Con88
|
|
| |
Dan91
|
|
| |
GJ89
|
Carsten K. Gomard and Nell D. Jones. Compiler generation by partial evaluation: a case study. In Proceedings of the Twelfth IFIP World Computer Congress, 1989.
|
 |
HG91
|
|
| |
HH91
|
Carsten Kehler Hoist and John Hughes. Towards binding-time improvement for free. In {JHH91}, pages 83-100, 1991.
|
| |
HW90
|
Paul Hudak and Philip Wadler. Report on the programming language Haskell. Technical Report, Yale University and Glasgow University, April 1990.
|
| |
JHH91
|
Simon L. Peyton Jones, Graham Hutton, and Carsten Kehler Holst, editors. Functional Programming, Glasgow 1990. Workshops in Computing, Springer-Verlag, August 1991.
|
| |
Joh75
|
S.C. Johnson. YACC: Yet another compiler compiler. Technical Report 32, Bell laboratories, Murray Hill, New Jersey, 1975.
|
| |
Jor91a
|
Jesper Jergensen. Compiler Generation by Partial Evaluation. Master's thesis, DIKU, University of Copenhagen, Denmark, student report, October 1991. Forthcoming.
|
| |
Jor91b
|
Jesper Jergensen. Generating a pattern matching compiler by partial evaluation. In {JHH91}, pages 177-195, 1991.
|
| |
JSS85
|
|
| |
JSS89
|
Nell D. Jones, Peter Sestoft, and Harald Sendergaard. Mix: a self-applicable partial evaluator for experiments in compiler generation. LISP and Symbolic Computation, 2(1):9-50, 1989.
|
| |
MTH90
|
|
 |
RC86
|
|
| |
Rom88
|
Sergei A. Romanenko. A compiler generator produced by a self-applicable specialiser can have a surprisingly natural and understandable structure. In Dines Bjerner, Andrei P. Ershov, and Nell D. Jones, editors, Partial Evaluation and Mixed Computation, pages 445-463, North- Holland, 1988.
|
| |
Sch86
|
|
| |
Ses85
|
|
| |
Tur82
|
David Turner. Recursion equations as a programming language. In Darlington et al., editor, Functional Programming and Its Applications., pages 1-28, Cambridge University Press, 1982.
|
 |
Tur86
|
|
| |
Wad85
|
Philip Wadler. Introduction to Orwell. Technical Report, Programming Research Group, University of Oxford, 1985.
|
CITED BY 17
|
|
|
|
|
Michael Sperber , Peter Thiemann , Hervert Klaeren, Distributed partial evaluation, Proceedings of the second international symposium on Parallel symbolic computation, p.80-87, July 20-22, 1997, Maui, Hawaii, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Michael Sperber , Robert Glück , Peter Thiemann, Bootstrapping higher-order program transformers from interpreters, Proceedings of the 1996 ACM symposium on Applied Computing, p.408-413, February 17-19, 1996, Philadelphia, Pennsylvania, United States
|
|
|
|
|
|
Mads Sig Ager , Olivier Danvy , Mayer Goldberg, A symmetric approach to compilation and decompilation, The essence of computation: complexity, analysis, transformation, Springer-Verlag New York, Inc., New York, NY, 2002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|