Abstract
Experiments on generating compilers by specializing specializers with respect to interpreters have shown that the compilers thus obtained have a natural structure only if the specializer does variable splitting. Variable splitting can result in a residual program using several variables to represent the values of a single variable of the original program. In the case of functional programming variable splitting is done by raising the arities of functions. The paper describes the structure and principles of operation of an arity raiser dealing with programs in a subset of pure Lisp.
Chapter PDF
References
G.Barzdin. Mixed Computation and Compiler Basis. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 15–26, North-Holland, 1988.
L. Beckman, A. Haraldson, O. Oskarsson, E. Sandewall. A Partial Evaluator, and Its Use as a Programming Tool. Artificial Intelligence, 7(4):319–357, 1976.
M.A. Bulyonkov. Polyvariant Mixed Computation for Analyzer Programs. Acta Informatica, 21:473–484, 1984.
R.M. Burstall and J. Darlington. A Transformation System for Developing Recursive Programs. Journal of the ACM, 24(1):44–67, 1977.
J. Dixon. The Specializer, a Method of Automatically Writing Computer Programs. Division of Computer Research and Technology, National Institute of Health, Bethenda, Maryland, 1971.
On the Essence of Compilation. In E.J.Neuhold, editor, Formal Description of Programming Concepts, pages 391–420, North-Holland, 1978.
A.P. Ershov. The Transformational Machine: Theme and Variations. In J.Grushka and M.Chytil, editors, Mathematical Foundations of Computer Science, Štrbskè Pleso, Czechoslovakia, pages 16–32, Lecture Notes in Computer Science, Vol.118, Springer-Verlag, 1981.
Partial Evaluation of Computation Process — An Approach to a Compiler-Compiler. Systems, Computers, Controls, 2(5):45–50, 1971.
J.Hughes. Backward Analysis of Functional Programs. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 187–208, North-Holland, 1988.
N.D. Jones, P. Sestoft and H. Sondergaard. An Experiment in Partial Evaluation: The Generation of a Compiler Generator. In J.-P.Jouannaud, editor, Rewriting Techniques and Applications, Dijon, France, pages 124–140, Lecture Notes in Computer Science, Vol.202, Springer-Verlag, 1985.
N.D. Jones and A.Mycroft. Data Flow Analysis of Applicative Programs Using Minimal Function Graphs. In Thirteens ACM Symposium on Principles of Programming Languages, St.Petersburg, Florida, pages 296–306, ACM, 1986.
Automatic Program Specialization: A Re-Examination from Basic Principles. In D.Bjorner, A.P.Ershov and N.D. Jones, editors, Partial Evaluation and Mixed Computation, pages 225–282, North-Holland, 1988.
T.Mogensen. Partially Static Structures in a Self-Applicable Partial Evaluator. In D.Bjorner, A.P.Ershov and N.D. Jones, editors, Partial Evaluation and Mixed Computation, pages 325–347, North-Holland, 1988.
B.N.Ostrowski. Implementation of Controlled Mixed Computation in System for Automatic Development of Language-Oriented Parsers. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 385–403, North-Holland, 1988.
S.A.Romanenko. A Compiler Generator Produced by a Self-Applicable Specializer Can Have a Surprisingly Natural and Understandable Structure. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 445–463, North-Holland, 1988.
The Structure of a Self-Applicable Partial Evaluator. In H.Ganzinger and N.D.Jones, editors, Programs as Data Objects, Copenhagen, Denmark, 1985, pages 236–256, Lecture Notes in Computer Science, Vol. 217, Springer-Verlag, 1986.
D.A.Schmidt. Denotational Semantics. Allyn and Bacon, Boston, 1986.
P.Sestoft. Automatic Call Unfolding in a Partial Evaluator. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 485–506, North-Holland, 1988.
V.F.Turchin. Equivalent Transformation of Recursive Functions Defined in Refal. In Teoriya Yazykov i Metody Programmirovaniya. Trudy Simposiuma, pages 31–42, Alushta-Kiev, 1972 (in Russian).
V.F. Turchin. A Supercompiler System Based on the Language Refal. SIGPLAN Notices, 14(2):46–54, February 1979.
V.F.Turchin, R.M.Nirenberg and D.V.Turchin. Experiments with a Supercompiler. In 1982 ACM Symposium on Lisp and Functional Programming, Pittsburgh, Pennsylvania, pages 47–55, ACM, 1982.
V.F. Turchin. The Concept of a Supercompiler. ACM Transactions on Programming Languages and Systems, 8(3):292–325, July 1986.
V.F.Turchin. The Algorithm of Generalization in the Supercompiler. In D.Bjorner, A.P.Ershov and N.D.Jones, editors, Partial Evaluation and Mixed Computation, pages 531–549, North-Holland, 1988.
P.Wadler. Deforestation: Transforming Programs to Eliminate Trees. In European Symposium on Programming, Lecture Notes in Computer Science, Springer-Verlag, 1988.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1990 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Romanenko, S.A. (1990). Arity raiser and its use in program specialization. In: Jones, N. (eds) ESOP '90. ESOP 1990. Lecture Notes in Computer Science, vol 432. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-52592-0_73
Download citation
DOI: https://doi.org/10.1007/3-540-52592-0_73
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-52592-9
Online ISBN: 978-3-540-47045-8
eBook Packages: Springer Book Archive