LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
ESOP'92 Symposium proceedings on 4th European symposium on programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Extracting polyvariant binding time analysis from polyvariant specializer
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Partial evaluation and separate compilation
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Polymorphic Binding-Time Analysis
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
Hand-Writing Program Generator Generators
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
SAS '95 Proceedings of the Second International Symposium on Static Analysis
Termination Analysis for Offline Partial Evaluation of a Higher Order Functional Language
SAS '96 Proceedings of the Third International Symposium on Static Analysis
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Binding-Time Analysis for Polymorphic Types
PSI '02 Revised Papers from the 4th International Andrei Ershov Memorial Conference on Perspectives of System Informatics: Akademgorodok, Novosibirsk, Russia
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
Polymorphic specialization for ML
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
We present an approach for specialising large programs, such as programs consisting of several modules, or libraries. This approach is based on the idea of using a compiler generator (cogen) for creating generating extensions. Generating extensions are specialisers specialised with respect to some input program. When run on some input data the generating extension produces a specialised version of the input program. Here we use the cogen to tailor modules for specialisation. This happens once and for all, independently of all other modules. The resulting module can then be used as a building block for generating extensions for complete programs, in much the same way as the original modules can be put together into complete programs. The result of running the final generating extension is a collection of residual modules, with a module structure derived from the original program.