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
From interpreting to compiling binding times
Proceedings of the third European symposium on programming on ESOP '90
Type inference with recursive types: syntax and semantics
Information and Computation
Towards multiple self-application
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
Efficient type inference for higher-order binding-time analysis
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Two-level functional languages
Two-level functional languages
Automatic autoprojection of higher order recursive equations
ESOP '90 Selected papers from the symposium on 3rd European symposium on programming
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
A tour of Schism: a partial evaluation system for higher-order applicative languages
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Continuation-based partial evaluation
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Meta-programming with theory systems
Meta-logics and logic programming
Binding-time analysis for standard ML
Lisp and Symbolic Computation - Special issue on partial evaluation and semantics-based program manipulation (PEPM '94)
Proceedings of the first ACM SIGPLAN international conference on Functional programming
A modal analysis of staged computation
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Multi-stage programming with explicit annotations
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Compilers and staging transformations
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
IEEE Std 1178-1990, IEEE Standard for the Scheme Programming Language
IEEE Std 1178-1990, IEEE Standard for the Scheme Programming Language
Principles of Programming Languages
Principles of Programming Languages
Semantics-Directed Compiler Generation: Proceedings
Semantics-Directed Compiler Generation: Proceedings
Partial Evaluation and Mixed Computation: Proceedings of the IFIP TC2 Workshop, Gammel Avernaes, Denmark, 18-24 Oct., 1987
Selected Papers from the Internaltional Seminar on Partial Evaluation
Selected Papers from the Internaltional Seminar on Partial Evaluation
Efficient Multi-level Generating Extensions for Program Specialization
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
Mechanically Verifying the Correctness of an Offline Partial Evaluator
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
Hand-Writing Program Generator Generators
PLILP '94 Proceedings of the 6th International Symposium on Programming Language Implementation and Logic Programming
Fast Binding-Time Analysis for Multi-Level Specialization
Proceedings of the Second International Andrei Ershov Memorial Conference on Perspectives of System Informatics
BTA Algorithms to Ensure Termination of Off-Line Partial Evaluation
Proceedings of the Second International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Termination Analysis for Offline Partial Evaluation of a Higher Order Functional Language
SAS '96 Proceedings of the Third International Symposium on Static Analysis
Multi-Level Lambda-Calculi: An Algebraic Description
Selected Papers from the Internaltional Seminar on Partial Evaluation
Efficiently Generating Efficient Generating Extensions in Prolog
Selected Papers from the Internaltional Seminar on Partial Evaluation
Efficient incremental run-time specialization for free
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
PEPM '00 Proceedings of the 2000 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Towards automatic construction of staged compilers
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Macros as multi-stage computations: type-safe, generative, binding macros in MacroML
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Search-based binding time analysis using type-directed pruning
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Binding-time analysis for both static and dynamic expressions
New Generation Computing - Partial evaluation and program transformation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Multi-Level Specialization (Extended Abstract)
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
Implementing Circularity Using Partial Evaluation
PADO '01 Proceedings of the Second Symposium on Programs as Data Objects
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
Generalization in Hierarchies of Online Program Specialization Systems
LOPSTR '98 Proceedings of the 8th International Workshop on Logic Programming Synthesis and Transformation
Binding-Time Analysis for Both Static and Dynamic Expressions
SAS '99 Proceedings of the 6th International Symposium on Static Analysis
Generative Programming and Active Libraries
Selected Papers from the International Seminar on Generic Programming
An Idealized MetaML: Simpler, and More Expressive
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Meta-programming through typeful code representation
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
A tour of tempo: a program specializer for the C language
Science of Computer Programming - Special issue on program transformation
Meta-programming through typeful code representation
Journal of Functional Programming
Staged computation with names and necessity
Journal of Functional Programming
Closing the stage: from staged code to typed closures
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Is there a fourth Futamura projection?
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Accomplishments and research challenges in meta-programming
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
Integrating partial evaluators into interpreters
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
Multi-stage programming with functors and monads: Eliminating abstraction overhead from generic code
Science of Computer Programming
Multi-stage programming with functors and monads: eliminating abstraction overhead from generic code
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Bootstrapping compiler generators from partial evaluators
PSI'11 Proceedings of the 8th international conference on Perspectives of System Informatics
Hi-index | 0.01 |
Program specialization can divide a computation into severalcomputation stages. This paper investigates the theoreticallimitations and practical problems of standard specialization tools,presents multi-level specialization, and demonstrates that, incombination with the cogen approach, it is far more practical thanpreviously supposed. The program generator which we designed andimplemented for a higher-order functional language converts programsinto very compact multi-level generating extensions that guarantee fastsuccessive specialization. Experimental results show a remarkablereduction of generation time and generator size compared to previousattempts of multi-level specialization by self-application. Our approach to multi-levelspecialization seems well-suited for applications where generation timeand program size are critical.