An experiment in partial evaluation: the generation of a compiler generator
Proc. of the first international conference on Rewriting techniques and applications
A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Program Transformation Systems
ACM Computing Surveys (CSUR)
Parital Computation of Programs
Proceedings of RIMS Symposium on Software Science and Engineering
Compiler generation from denotational semantics
Semantics-Directed Compiler Generation, Proceedings of a Workshop
Semantic definitions in REFAL and the automatic production of compilers
Semantics-Directed Compiler Generation, Proceedings of a Workshop
Experiments with a supercompiler
LFP '82 Proceedings of the 1982 ACM symposium on LISP and functional programming
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
A supercompiler system based on the language REFAL
ACM SIGPLAN Notices
A bibliography on partial evaluation
ACM SIGPLAN Notices
Transformational derivation of programs using the focus system
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
Partial computation as a practical aid in the compiler construction course
ACM SIGCSE Bulletin
On the transformation of logic programs with instantiation based computation rules
Journal of Symbolic Computation
Application of metasystem transition to function inversion and transformation
ISSAC '90 Proceedings of the international symposium on Symbolic and algebraic computation
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Formal methods in transformational derivation of programs
Conference proceedings on Formal methods in software development
Strictness and binding-time analyses: two for the price of one
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Generalized partial computation for a lazy functional language
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Partial evaluation is fuller laziness
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Towards multiple self-application
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Software Specialization Via Symbolic Execution
IEEE Transactions on Software Engineering
Safe fusion of functional expressions
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Inlining semantics for subroutines which are recursive
ACM SIGPLAN Notices
Proofs by structural induction using partial evaluation
PEPM '93 Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Total correctness by local improvement in program transformation
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Optimization of functional programs by grammar thinning
ACM Transactions on Programming Languages and Systems (TOPLAS)
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Polyvariant specialisation for higher-order, block-structured languages
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Higher-order expression procedures
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Shortcut deforestation in calculational form
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Warm fusion: deriving build-catas from recursive definitions
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Total correctness by local improvement in the transformation of functional programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
An introduction to partial evaluation
ACM Computing Surveys (CSUR)
Partial evaluation and separate compilation
PEPM '97 Proceedings of the 1997 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Reducing nondeterminism while specializing logic programs
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Controlling generalization and polyvariance in partial deduction of normal logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Program specialization vs. program composition
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Program specialization via algorithmic unfold/fold transformations
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
A unifying view of functional and logic program specialization
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Extending the power of automatic constraint-based partial evaluators
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Using partial evaluation to enable verification of concurrent software
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Partial evaluation of functional logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Bootstrapping higher-order program transformers from interpreters
SAC '96 Proceedings of the 1996 ACM symposium on Applied Computing
Dynamic specialization in extended functional language with monotone objects
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
A note on elimination of simplest recursions
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
The narrowing-driven approach to functional logic program specialization
New Generation Computing - Partial evaluation and program transformation
Program transformation system based on generalized partial computation
New Generation Computing - Partial evaluation and program transformation
Warm fusion in Stratego: A case study in generation of program transformation systems
Annals of Mathematics and Artificial Intelligence
Constraint-based partial evaluation for imperative languages
Journal of Computer Science and Technology
Automatic Accurate Cost-Bound Analysis for High-Level Languages
IEEE Transactions on Computers
Reflection in conditional rewriting logic
Theoretical Computer Science - Rewriting logic and its applications
Advanced Logic Program Specialisation
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
Introduction to Supercompilation
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
An Introduction to Online and Offline Partial Evaluation using a Simple Flowchart Language
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
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
PADO '01 Proceedings of the Second Symposium on Programs as Data Objects
A New Termination Approach for Specialization
SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
The Essence of Program Transformation by Partial Evaluation and Driving
PSI '99 Proceedings of the Third International Andrei Ershov Memorial Conference on Perspectives of System Informatics
PSI '99 Proceedings of the Third International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Generalization in Hierarchies of Online Program Specialization Systems
LOPSTR '98 Proceedings of the 8th International Workshop on Logic Programming Synthesis and Transformation
Improving Homeomorphic Embedding for Online Termination
LOPSTR '98 Proceedings of the 8th International Workshop on Logic Programming Synthesis and Transformation
On Deforesting Parameters of Accumulating Maps
LOPSTR '01 Selected papers from the 11th International Workshop on Logic Based Program Synthesis and Transformation
Relating Accumulative and Non-accumulative Functional Programs
RTA '01 Proceedings of the 12th International Conference on Rewriting Techniques and Applications
Generative Programming and Active Libraries
Selected Papers from the International Seminar on Generic Programming
Principles of inverse computation and the Universal resolving algorithm
The essence of computation
WSDFU: program transformation system based on generalized partial computation
The essence of computation
Homeomorphic embedding for online termination of symbolic methods
The essence of computation
The essence of computation
Offline partial evaluation can be as accurate as online partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Composition of functions with accumulating parameters
Journal of Functional Programming
Reflective metalogical frameworks
ACM Transactions on Computational Logic (TOCL)
Transformation by interpreter specialisation
Science of Computer Programming - Special issue on program transformation
Derivation of Efficient Logic Programs by Specialization and Reduction of Nondeterminism
Higher-Order and Symbolic Computation
Logic program specialisation through partial deduction: Control issues
Theory and Practice of Logic Programming
Redundant Call Elimination via Tupling
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Forward slicing of functional logic programs by partial evaluation
Theory and Practice of Logic Programming
Distillation: extracting the essence of programs
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Distilling Programs for Verification
Electronic Notes in Theoretical Computer Science (ENTCS)
A Supercompiler for Core Haskell
Implementation and Application of Functional Languages
An improved reductant calculus using fuzzy partial evaluation techniques
Fuzzy Sets and Systems
Positive supercompilation for a higher order call-by-value language
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Is there a fourth Futamura projection?
Proceedings of the 2009 ACM SIGPLAN workshop on Partial evaluation and program manipulation
Losing functions without gaining data: another look at defunctionalisation
Proceedings of the 2nd ACM SIGPLAN symposium on Haskell
Poitín: Distilling Theorems From Conjectures
Electronic Notes in Theoretical Computer Science (ENTCS)
Forward slicing of multi-paradigm declarative programs based on partial evaluation
LOPSTR'02 Proceedings of the 12th international conference on Logic based program synthesis and transformation
An universal resolving algorithm for inverse computation of lazy languages
PSI'06 Proceedings of the 6th international Andrei Ershov memorial conference on Perspectives of systems informatics
Specifying monogenetic specializers by means of a relation between source and residual programs
PSI'06 Proceedings of the 6th international Andrei Ershov memorial conference on Perspectives of systems informatics
On one application of computations with oracle
Programming and Computing Software
Agent-oriented programming: from prolog to guarded definite clauses
Agent-oriented programming: from prolog to guarded definite clauses
Supercompilation by evaluation
Proceedings of the third ACM Haskell symposium on Haskell
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Transformation and debugging of functional logic programs
A 25-year perspective on logic programming
Towards verification via supercompilation
COMPSAC-W'05 Proceedings of the 29th annual international conference on Computer software and applications conference
Taming code explosion in supercompilation
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Closed-Form Upper Bounds in Static Cost Analysis
Journal of Automated Reasoning
Interleaving symbolic execution and partial evaluation
FMCO'09 Proceedings of the 8th international conference on Formal methods for components and objects
Cyclic proofs for first-order logic with inductive definitions
TABLEAUX'05 Proceedings of the 14th international conference on Automated Reasoning with Analytic Tableaux and Related Methods
Distillation with labelled transition systems
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
OpenTS: an outline of dynamic parallelization approach
PaCT'05 Proceedings of the 8th international conference on Parallel Computing Technologies
An experiment with the fourth futamura projection
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
Extracting the essence of distillation
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
A java supercompiler and its application to verification of cache-coherence protocols
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
Proving the equivalence of higher-order terms by means of supercompilation
PSI'09 Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics
Strategies of ELAN: meta-interpretation and partial evaluation
Algebraic'97 Proceedings of the 2nd international conference on Theory and Practice of Algebraic Specifications
Solving coverability problem for monotonic counter systems by supercompilation
PSI'11 Proceedings of the 8th international conference on Perspectives of System Informatics
Multi-result supercompilation as branching growth of the penultimate level in metasystem transitions
PSI'11 Proceedings of the 8th international conference on Perspectives of System Informatics
Redundant Call Elimination via Tupling
Fundamenta Informaticae - Program Transformation: Theoretical Foundations and Basic Techniques. Part 2
Higher-level supercompilation as a metasystem transition
Programming and Computing Software
A note on specialization of interpreters
CSR'07 Proceedings of the Second international conference on Computer Science: theory and applications
Metacomputations and program-based knowledge representation
AGI'13 Proceedings of the 6th international conference on Artificial General Intelligence
Hi-index | 0.00 |
A supercompiler is a program transformer of a certain type. It traces the possible generalized histories of computation by the original program, and compiles an equivalent program, reducing in the process the redundancy that could be present in the original program. The nature of the redundancy that can be eliminated by supercompilation may be various, e.g., some variables might have predefined values (as in partial evaluation), or the structure of control transfer could be made more efficient (as in lazy evaluation), or it could simply be the fact that the same variable is used more than once. The general principles of supercompilation are described and compared with the usual approach to program transformation as a stepwise application of a number of equivalence rules. It is argued that the language Refal serves the needs of supercompilation best. Refal is formally defined and compared with Prolog and other languages. Examples are given of the operation of a Refal supercompiler implemented at CCNY on an IBM/370.