An experiment in partial evaluation: the generation of a compiler generator
Proc. of the first international conference on Rewriting techniques and applications
The structure of a self-applicable partial evaluator
on Programs as data objects
The definition of Standard ML
Arity raiser and use in program specialization
Proceedings of the third European symposium on programming on ESOP '90
Program bifurcation for a polymorphically typed functional language
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A strongly-typed self-applicable partial evaluator
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Efficient type inference for higher-order binding-time analysis
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Projection factorisations in partial evaluation
Projection factorisations in partial evaluation
Partial evaluation of general parsers
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Binding Time Analysis for Polymorphically Typed Higher Order Languages
TAPSOFT '89 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 2: Advanced Seminar on Foundations of Innovative Software Development II and Colloquium on Current Issues in Programming Languages
Polyvariant constructor specialisation
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Type specialisation for imperative languages
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Partial evaluation and separate compilation
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Eta-Redexes in Partial Evaluation
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
A Type Specialisation Tutorial
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
On Jones-Optimal Specialization for Strongly Typed Languages
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
Tagging, encoding, and jones optimality
ESOP'03 Proceedings of the 12th European conference on Programming
Allocation removal by partial evaluation in a tracing JIT
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Hi-index | 0.00 |
In the section on “challenging problems” in the proceedings from the first international workshop on partial evaluation and mixed computation [BEJ88] a question is stated: “Can PE be used to generate new specialized data types, in a way analogous to generating specialized functions”. Since then little has been done to address this problem. In [Lau89], new types are indeed generated, but they are all simpler versions of the types in the original program. It is, e.g. not possible to have types with more constructors than the types in the original program.I propose to alleviate this by means of constructor specialization. Constructors are specialized with respect to the static parts of their arguments, just like residual functions. I show how this is done and argue that it makes it possible to get good results from partial evaluation in cases where the traditional methods fail to produce satisfactory results. The discussion is centered around a small subset of Standard ML, but the idea applies equally well to other languages having user defined constructors, e.g. Haskell and Prolog.