Introduction to algorithms
The semantics of programming languages: an elementary introduction using structural operational semantics
Towards multiple self-application
PEPM '91 Proceedings of the 1991 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
The size-change principle for program termination
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Partial Evaluation of the Euclidean Algorithm, Revisited
Higher-Order and Symbolic Computation
Program Termination Analysis in Polynomial Time
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Binding-Time Annotations Without Binding-Time Analysis
LPAR '01 Proceedings of the Artificial Intelligence on Logic for Programming
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
Program Termination Analysis in Polynomial Time
GPCE '02 Proceedings of the 1st ACM SIGPLAN/SIGSOFT conference on Generative Programming and Component Engineering
Polymorphic specialization for ML
ACM Transactions on Programming Languages and Systems (TOPLAS)
Termination analysis and specialization-point insertion in offline partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Quasi-terminating logic programs for ensuring the termination of partial evaluation
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Hi-index | 0.00 |
To achieve the termination of offline partial evaluation, it is necessary to ensure that static variables assume boundedly many values during specialization. Various works have addressed the analysis of variable boundedness, also called finiteness analysis, in the context of specializing first-order functional programs. The underlying reasoning is always: Unbounded sequences of increases in a static variable must be impossible, if they would give rise to unbounded sequences of size-decreases for some bounded-variable values.Static analysis is used to collect a set of bipartite graphs that describe the parameter dependencies and data size changes in possible state transitions of the specializer (operating on the program). We capture the reasoning above as a condition on the graphs. This condition is decidable, but complete for pspace. We therefore derive a polynomial-time approximation, by considering realistic parameter size-change behaviour.