Hostname: page-component-cd9895bd7-7cvxr Total loading time: 0 Render date: 2024-12-27T11:23:57.467Z Has data issue: false hasContentIssue false

Program transformation with metasystem transitions

Published online by Cambridge University Press:  07 November 2008

Valentin F. Turchin
Affiliation:
The City College of New York
Rights & Permissions [Opens in a new window]

Abstract

Core share and HTML view are not available for this content. However, as you have access to this content, a full PDF is available via the ‘Save PDF’ action button.

A new program transformation method is presented. It is a further refinement of supercompilation where the supercompiler is not applied directly to the function to be transformed, but to a metafunction, namely an interpreter which computes this function using its definition and an abstract (i.e. including variables) input. It is shown that with this method such tranformations become possible which the direct application of the supercompiler cannot perform. Examples include the merging of iterative loops, function inversion, and transformation of deterministic into non-deterministic algorithms, and vice-versa.

Type
Articles
Copyright
Copyright © Cambridge University Press 1993

References

Bondorf, Anders. (1980) Automatic autoprojection of higher order recursive equations, Lect. Notes in Comp. Sci., ESOP 90 432, Springer, pp.7087.Google Scholar
Bowen, K. and Kowalski, R. Amalgamating language and metalanguage in logic programming. Logic Programming, Clark, and Tarnlund, (ed.) Academic Press pp.153172.Google Scholar
Boyer, R.S. and Moore, J.S. (1975) Proving theorems about Lisp funcitons, J. of ACM 22: pp.129144.Google Scholar
Bundy, A. and Welham, B. (1981) Using metalevel inference for selective application of multiple rewrite rules in algebraic manipulation. Artificial Intelligence vol.16, pp.189212.Google Scholar
Burstall, R.M. and Darlington, J. (1977) A transformation system for developing recursive programs. J.ACM 24 pp.4467.Google Scholar
Glück, R. (1991) Towards multiple self-application, Proceedings of the Symposium on Partial Evaluation and Semantics-Based Program Manipulation (Yale University), ACM Press: pp.309320.Google Scholar
Futamura, Y. (1971) Partial evaluation of computation process – an approach to compiler compiler, Systems, Computers, Controls 2: pp.4550.Google Scholar
Jones, N., Sestoft, P., Sondergaard, H. (1985) An Experiment in Partial Evaluation: The Generation of a Compiler Generator. Jouannaud, J.-P. (Ed.) Rewriting Techniques and Applications, Dijon, France, Lect.Notes in Comp. Sci. 202, Springer.Google Scholar
Jones, N., Sestoft, P., Sondergaard, H. (1989) MIX: a self-applicable partial evaluator for experiments in compiler generation. LISP and Symbolic Computation 2: pp.950.Google Scholar
Partsch, H. and Steinbrueggen, R. (1983) Program transformation systems. ACM Comput. Surv. 15: pp.199236.Google Scholar
Proietti, M. and Pettorossi, A. (1990) Synthesis of eureka predicates for developing logic programs. Lect. Notes in Comp. Sci., ESOP 90 432: pp.306325.Google Scholar
Proietti, M. and Pettorossi, A. (1991) Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs. Lecture Notes in Comp. Sci. PLILP 91 528 Springer: pp.347358.Google Scholar
Romanenko, A. (1991) Inversion and Metacomputation. Symposium on Partial Evaluation and Semantics-Based Program Manipulation,Yale University,USA pp. 1222.Google Scholar
Romanenko, S.A. (1988) A compiler generator produced by a self-applicable specializer can have a surprisingly natural and understandable structure. Partial Evaluation and Mixed Computation Elsevier Sci. Publ.: pp.445463.Google Scholar
Safra, S. and Shapiro, E. (1986) Metainterpreters for real. Information Processing 86, Kugler, H.-J. (ed.) IFIP Congress, Dublin, Ireland. North-Holland: pp.271278.Google Scholar
Sestoft, P., Sondergaard, H. (1988) A bibliography on partial evaluation, SIGPLAN Notices, 23 No.2: pp.1927.Google Scholar
Takeuchi, A. and Furukawa, K. (1986) Partial evaluation of Prolog programs and its application to metaprogramming. Information Processing 86, Kugler, H.-J. (ed.) IFIP Congress, Dublin, Ireland. North-Holland: pp.415420.Google Scholar
Turchin, V. F. (1977) The Phenomenon of Science, Columbia University Press, New York.Google Scholar
Turchin, V. F. (1980) The Language Refal, the Theory of Compilation and Metasystem Analysis, Courant Computer Science Report 20, New York University.Google Scholar
Turchin, V. F. (1986) The concept of a supercompiler, ACM Transactions on Programming Languages and Systems, 8: pp.292325.Google Scholar
Turchin, V. F. (1989) Refal-5, Programming Guide and Reference Manual, New England Publishing Co., Holyoke MA.Google Scholar
Weise, D., Conybear, R., Ruf, E., Seligman, S. (1991) Automatic online program specialization. 5th Intern. Conf. on Functional Progr. Languages and Computer Architecture. Lecture Notes in Comp. Sc. 523 Springer, pp.165191.Google Scholar
Submit a response

Discussions

No Discussions have been published for this article.