An experiment in partial evaluation: the generation of a compiler generator
Proc. of the first international conference on Rewriting techniques and applications
Denotational semantics: a methodology for language development
Denotational semantics: a methodology for language development
Revised report on the algorithmic language scheme
ACM SIGPLAN Notices
ACM SIGPLAN Notices
The structure of a self-applicable partial evaluator
on Programs as data objects
Partial evaluation of pattern matching in strings
Information Processing Letters
The definition of Standard ML
Automatic autoprojection of higher order recursive equations
Proceedings of the third European symposium on programming on ESOP '90
Semantics-directed compilation of nonlinear patterns
Information Processing Letters
An introduction to functional programming
An introduction to functional programming
Partial evaluation is fuller laziness
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Automatic autoprojection of recursive equations with global variable and abstract data types
Science of Computer Programming
New Insights into Partial Evaluation: the SCHISM Experiment
ESOP '88 Proceedings of the 2nd European Symposium on Programming
Improving binding times without explicit CPS-conversion
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Global tagging optimization by type inference
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Partial evaluation of general parsers
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compiling actions by partial evaluation
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Realistic compilation by partial evaluation
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
An introduction to partial evaluation
ACM Computing Surveys (CSUR)
Distributed partial evaluation
PASCO '97 Proceedings of the second international symposium on Parallel symbolic computation
Bootstrapping higher-order program transformers from interpreters
SAC '96 Proceedings of the 1996 ACM symposium on Applied Computing
Jones optimality, binding-time improvements, and the strength of program specializers
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Partial Evaluation: Concepts and Applications
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
SIMILIX: A Self-Applicable Partial Evaluator for Scheme
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Transforming interpreters into inverse interpreters by partial evaluation
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
A symmetric approach to compilation and decompilation
The essence of computation
Specialization Scenarios: A Pragmatic Approach to Declaring Program Specialization
Higher-Order and Symbolic Computation
Non-strict execution in parallel and distributed computing
International Journal of Parallel Programming
An investigation of Jones optimality and BTI-universal specializers
Higher-Order and Symbolic Computation
Is there a fourth Futamura projection?
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Privacy-preserving genomic computation through program specialization
Proceedings of the 16th ACM conference on Computer and communications security
Supercompilation by evaluation
Proceedings of the third ACM Haskell symposium on Haskell
Sound and precise analysis of parallel programs through schedule specialization
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Hi-index | 0.00 |
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.