|
ABSTRACT
We present an overview of the program transformation methodology, focusing our attention on the so-called “rules + strategies” approach in the case of functional and logic programs. The paper is intended to offer an introduction to the subject. The various techniques we present are illustrated via simple examples.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
AERTS, K. AND VAN BESIEN, D. 1991. Autolap: A system for transforming logic programs. Department of Electronics Rep. University of Rome, Tor Vergata, Rome, Italy.
|
| |
3
|
|
| |
4
|
ARAVINDAN, C. AND DUNG, P. M. 1993. On the Correctness of unfold/fold transformation of normal and extended logic programs. Tech. Rep., Computer Science Division, Asian Institute of Technology, Bangkok, Thailand.
|
 |
5
|
|
| |
6
|
AUBIN, R. 1979. Mechanizing structural induction: Part I and II. Theor. Comput. Sci. 9, 3, 329-362.
|
 |
7
|
|
 |
8
|
|
| |
9
|
F. L. Bauer , H. Ehler , A. Horsch , B. Moeller , H. Partsch , O. Paukner , P. Pepper, The/Munich Project CIP, Springer-Verlag New York, Inc., New York, NY, 1988
|
| |
10
|
F L Bauer , R Berghammer , M Broy , W Dosch , F Geiselbrechtinger , R Gnatz , E Hangel , W Hesse , B Krieg-Brückner , A Laut , T Matzner , B Möller , F Nickl , H Partsch , P Pepper , K Samelson , M Wirsing , H Wössner, The Munich Project CIP: Volume I: the wide spectrum language CIP-L, Springer-Verlag, London, 1986
|
| |
11
|
BERRY, G. 1976. Bottom-up computation of recursive programs. RAIRO Inf. Thgor. 10, 3, 47-82.
|
| |
12
|
BIRD, R. S. 1984a. Using circular programs to eliminate multiple traversal of data. Acta Inf. 21, 239 -250.
|
 |
13
|
|
 |
14
|
|
| |
15
|
|
| |
16
|
BJDRNER, D., ERSHOV, A. P., AND JONES, N. D., EDS. 1988. Partial evaluation and mixed computation. In Proceedings of the IFIP TC2 Workshop on Partial and Mixed Computation (Gammel Avernms, Denmark), North Holland.
|
| |
17
|
BOITEN, E. A. 1990. Views of formal program development. Catholic University of Nijmegen, Nijmegen, The Netherlands, Ph. D. Thesis.
|
| |
18
|
Bosco, P. G., GIOVANETTI, E., LEVI, G., MOISO, C., AND PALAMIDESSI, C. 1987. A complete semantic characterization of K-LEAF, a logic language with partial functions. In Proceedings of the Fourth Symposium on Logic Programming (San Francisco, CA), IEEE Computer Society Press, Los Alamitos, CA, 1-27.
|
| |
19
|
BossI, n. AND COCCO, N. 1993. Basic transformation operations for logic programs which preserve computed answer substitutions. J. Logic Program., Special Issue on Partial Deduction 16, 47-87.
|
| |
20
|
|
| |
21
|
|
| |
22
|
BOYLE, g. M. 1984. Lisp to Fortran--program transformation applied. In Proceedings of the Workshop on Program Transformation and Programming Environments. Nato ASI Series F, Computer and Systems Sciences 8, P. Pepper, Ed., Springer Verlag, 291-298.
|
 |
23
|
|
| |
24
|
|
| |
25
|
|
 |
26
|
|
 |
27
|
|
 |
28
|
|
| |
29
|
BURSTALL, R. M. ET AL. 1991. The Lego project. Computer Science Department, Edinburgh University, Edinburgh, Scotland.
|
| |
30
|
CAI, J. AND PAIGE, R. 1990. The RAPTS transformation system. Computer Science Department, New York University, New York.
|
| |
31
|
CHATELIN, P. 1976. Program manipulation: To duplicate is not to complicate. Rep. CNRS Laboratoire d'Informatique. Universit~ de Grenoble, France.
|
 |
32
|
|
 |
33
|
|
| |
34
|
CHIN, W.-N. 1990. Automatic methods for program transformation. Imperial College of Science, Technology and Medicine, University of London, London, U.K., Ph.D. Thesis.
|
| |
35
|
|
| |
36
|
|
 |
37
|
|
| |
38
|
DARLINGTON, J. 1981. An experimental program transformation system. Artif. Intell. 16, 1-46.
|
| |
39
|
DARLINGTON, g. 1972. A semantic approach to automatic program improvement. Department of Machine Intelligence, Edinburgh University, Edinburgh, U.K., Ph.D. Thesis.
|
| |
40
|
DARLINGTON, J. AND GUO, Y. 1979. The unification of functional and logic languages, towards constraint functional programming. Tech. Rep., Imperial College, London, U.K.
|
| |
41
|
DEBRAY, S. K., ED. 1992. Special Issue of J. Logic Program. Abstract Interpretation. 12, 2 & 3.
|
 |
42
|
|
| |
43
|
|
| |
44
|
DERSHOWITZ, N. 1985. Synthesis by completion. In Proceedings of the Ninth International Joint Conference on Artificial Intelligence 1,208-214.
|
| |
45
|
|
| |
46
|
DEVILLE, Y. AND BURNAY, J. 1989. Generalization and Program Schemata. In Proceedings of NACLP '89, MIT Press, Cambridge, MA, 409-425.
|
| |
47
|
DEVILLE, Y. AND LAU, K.-K. 1994. Logic program synthesis. J. Logic Program. 19 & 20, 321-350.
|
| |
48
|
|
| |
49
|
ERSHOV, A. P. 1982. Mixed computation: Potential applications and problems for study. Theor. Comput. Sci. 18, 41-67.
|
| |
50
|
|
 |
51
|
|
| |
52
|
FRIBOURG, L. 1985. SLOG: A logic programming language interpreter based on clausal superposition and rewriting. In Proceedings of the IEEE International Symposium on Logic Programming, (Boston, MA), IEEE Computer Society Press, Los Alamitos, CA, 172-184.
|
| |
53
|
FUCHS, N. E. AND FROMHERZ, M. P. J. 1992. Schema-based transformations of logic programs. In Logic Program Synthesis and Transformation, Proceedings LOPSTR '91 (Manchester, UK), T. Clement and K. K. Lau, Eds., Springer-Verlag, 111-125.
|
| |
54
|
FUTAMURA, Y. 1971. Partial evaluation of computation process--an approach to a compiler-compiler. Syst. Comput. Controls 2, 5, 45-50.
|
 |
55
|
|
| |
56
|
GALMICHE, D. 1991. Proofs and program development in AF2. In Notes of the IFIP W.G. 2.1 Meeting (Louvain-la-Neuve, Belgium).
|
| |
57
|
|
| |
58
|
GARDNER, P. A. AND SHEPHERDSON, J.C. 1991.Unfold/fold transformations of logic programs. In Computational Logic, Essays in Honor of Alan Robinson, J.-L. Lassez and G. Plotkin, Eds., MIT Press, Cambridge, MA, 565-583.
|
| |
59
|
GOGUEN J. AND MESEGUER J. 1986. Eqlog: Equality, types, and generic modules for logic programming. In Logic Programming: Functions, Relations, and Equations, D. De Groot and G. Lindstrom, Eds., Prentice-Hall, Englewood Cliffs, NJ, 295-363. An earlier version appears in J. Logic Program. 1, 2, 179-210.
|
 |
60
|
|
| |
61
|
HUET, G. AND LANG, B. 1978. Proving and applying program transformation expressed with secondorder patterns. Acta Inf. 11, 31-55.
|
 |
62
|
|
| |
63
|
|
| |
64
|
|
| |
65
|
JONES, N. D. 1987. Automatic program specialization: A re-examination from basic principles. In Proceedings of the IFIP TC2 Working Conference on Partial and Mixed Computation (Ebberup, Denmark), D. Bjcrner and A. P. Ershov, Eds., 225-282.
|
| |
66
|
|
| |
67
|
JONES, N. AND SONDERGAARD, H. 1987. A semantics-based framework for the abstract interpretation of Prolog. In Abstract Interpretation of Declarative Languages, S. Abramsky and C. Hankin, Eds., Ellis Horwood, Chichester, UK, 123-142.
|
 |
68
|
|
| |
69
|
KANAMORI, T. AND HORIUCHI, K. 1987. Construction of logic programs based on generalized unfold/fold rules. In Proceedings of the Fourth International Conference on Logic Programming, MIT Press, Cambridge, MA, 744-768.
|
| |
70
|
KANAMORI, T. AND MAEJI, M. 1986. Derivation of logic programs from implicit definition. Tech. Rep. TR-178, ICOT, Tokyo.
|
| |
71
|
KAWAMURA, T. AND KANAMORI, T. 1988. Preservation of stronger equivalence in unfold/fold logic program transformation. In Proceedings of the International Conference on Fifth Generation Computer Systems (Tokyo), 413-422.
|
| |
72
|
KOTT, L. 1982. The McCarthy's induction principle: "Oldy" but "Goody." Calcolo 19, 1, 59-69.
|
| |
73
|
KOTT, L. 1978. About Transformation System: A Theoretical Study. In Troisi~me Colloque International sur la Programmation, Dunod, Paris, France, 232-247.
|
| |
74
|
KRIEG-BR~CKNER, B., ED. 1989. COMPASS, A comprehensive algebraic approach to system specification and development. ESPRIT Basic Research Working Group 3264, Objectives, State of the Art, References. University of Bremen, Germany, Bericht no. 6/89.
|
| |
75
|
|
| |
76
|
|
| |
77
|
LINCOLN, P., MARTI-OLIET, N., AND MESEGUER, g. 1994. Specification, transformation, and programming of concurrent systems in rewriting logic. In Proceedings of the DIMACS Conference on Specification of Parallel Algorithms (Princeton, NJ), G. Blelloch, K. M. Chandy, and S. Jagannathan, Eds., American Mathematical Society, Providence, RI, 309-339.
|
| |
78
|
|
| |
79
|
|
| |
80
|
|
| |
81
|
|
| |
82
|
MANNA, Z. AND WALDINGER, R. 1991. Fundamentals of deductive program synthesis. In Logic, Algebra, and Computation. F. L. Bauer, Ed., Springer-Verlag, 41-107.
|
| |
83
|
|
| |
84
|
MEERTENS, L. G. L. T., ED. 1987. Program specification and transformation. In Proceedings of the IFIP TC2 W.G. 2.1 Working Conference on Program Specification and Transformation (Bad Ti31z, Germany), North Holland.
|
| |
85
|
MOGENSEN, T. AND BONDORF, A. 1993. Logimix: A self-applicable partial evaluator for Prolog. In Logic Program Synthesis and Transformation, Proceedings LOPSTR '92 (Manchester, UK), K.-K. Lau and T. Clement, Eds., Springer-Verlag, 214-227.
|
| |
86
|
|
| |
87
|
MOLLER, B. 1991. Relations as a program development language. In Proceedings of the IFIP TC2 Working Conference on Constructing Programs from Specifications (Pacific Grove, CA), North Holland.
|
| |
88
|
|
| |
89
|
|
| |
90
|
MYCROFT, A. 1981. Abstract interpretation and optimizing transformations for applicative programs. CTS 15-81, University of Edinburgh, Scotland, Ph.D. Thesis.
|
| |
91
|
|
 |
92
|
|
| |
93
|
PAIGE, R., REIF, J., AND WACHTER, R., EDS. 1993. Parallel algorithm derivation and program transformation. In Proceedings of the Workshop at Courant Institute of Mathematical Sciences (New York), Kluwer Academic Publishers.
|
| |
94
|
|
 |
95
|
|
| |
96
|
PATERSON, M. S. AND HEWITT, C. E. 1970. Comparative schematology. In Conference on Concurrent Systems and Parallel Computation Project MAC (Woods Hole, MA), 119-127.
|
| |
97
|
|
| |
98
|
|
| |
99
|
|
| |
100
|
|
| |
101
|
PETTOROSSI, A. 1984. Methodologies for transformations and memoing in applicative languages. Edinburgh University, Edinburgh, Scotland, Ph.D. Thesis.
|
| |
102
|
PETTOROSSI, A. AND BURSTALL, R. M. 1982. Deriving very efficient algorithms for evaluating linear recurrence relations using the program transformation technique. Acta Inf. 18, 181-206.
|
| |
103
|
PETTOROSSI, A. AND PROIETTI, M. 1994. Transformation of logic programs: Foundations and techniques. J. Logic Program. 19, 20, 261-320.
|
| |
104
|
PETTOROSSI, A. AND PROIETTI, M. 1987. Importing and exporting information in program development. In Proceedings of the IFIP TC2 Workshop on Partial Evaluation and Mixed Computation (Gammel Avernaes, Denmark), North Holland, 405-425.
|
| |
105
|
|
| |
106
|
|
 |
107
|
|
| |
108
|
|
| |
109
|
PROIETTI, M. AND PETTOROSSI, A. 1994. Synthesis of programs from unfold/fold proofs. In Proceedings LOPSTR '93 (Louvain-la-Neuve, Belgium), Workshops in Computing Series, Springer Verlag, 141-158.
|
| |
110
|
|
| |
111
|
|
| |
112
|
REDDY, U. S. 1984. Transformation of logic programs into functional programs. In Proceedings of the IEEE International Symposium on Logic Programming, IEEE Computer Society Press, Los Alamitos, CA, 187-197.
|
| |
113
|
|
| |
114
|
SANDS, D. 1994. Total correctness and improvement in the transformation of functional programs. Tech. Rep. DIKU, University of Copenhagen, Denmark.
|
| |
115
|
|
 |
116
|
|
| |
117
|
SCHWARZ, J. 1982. Using annotations to make recursive equations behave. IEEE Trans. Softw. Eng. SE 8, 1, 21-33.
|
| |
118
|
SEKI, H. 1993. Unfold/fold transformation of general logic programs for the well-founded semantics. J. Logic Program., Special Issue on Partial Deduction 16, 1 & 2, 5-23.
|
| |
119
|
|
| |
120
|
SEKI, H. AND FURUKAWA, K. 1987. Notes on transformation techniques for generate and test logic programs. In Proceedings of the International Symposium on Logic Programming, (San Francisco), IEEE Press, Piscataway, NJ, 215-223.
|
| |
121
|
SINTZOFF, M., WEBER, M., DE GROOTE, P., AND CAZIN, J. 1989. Definition 1.1 of the generic development language Deva. Tech. Rep., Unit~ d'Informatique, Universit~ Catholique de Louvain, Louvain-La- Neuve, Belgium.
|
| |
122
|
|
| |
123
|
|
| |
124
|
|
| |
125
|
SUBRAHMANYAM, P. A. AND YOU, J. H. 1986. FUNLOG: A computational model integrating logic programming and functional programming. In Logic Programming: Functions, Relations, and Equations, D. De Groot, and G. Lindstrom, Eds., Prentice-Hall, Englewood Cliffs, NJ, 157-198.
|
| |
126
|
|
| |
127
|
TAMAKI, H. AND SATO, T. 1984. Unfold/fold transformation of logic programs. In Proceedings of the Second International Conference on Logic Programming (Uppsala, Sweden), 127-138.
|
| |
128
|
|
| |
129
|
|
| |
130
|
TURNER, D. A. 1979. A new implementation technique for applicative languages. Softw. Pract. Exper. 9, 31-49.
|
| |
131
|
|
 |
132
|
|
| |
133
|
WEGBREIT, B. 1976. Goal-directed program transformation. IEEE Trans. Softw. Eng. SE 2, 69-79.
|
| |
134
|
WILE, D. 1982. POPART: Producer of parser and related tools. Tech. Rep. RR-82-21, ISI, 4676 Admiralty Way, Marina del Rey, CA.
|
| |
135
|
|
| |
136
|
ZHU, H. 1994. How powerful are folding/unfolding transformations? J. Funct. Program. 4, 1, 89-112.
|
CITED BY 25
|
|
|
|
|
Tarvo Raudvere , Ingo Sander , Ashish Kumar Singh , Axel Jantsch, Verification of design decisions in ForSyDe, Proceedings of the 1st IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis, October 01-03, 2003, Newport Beach, CA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yoshihiko Futamura , Zenjiro Konishi , Robert Glück, WSDFU: program transformation system based on generalized partial computation, The essence of computation: complexity, analysis, transformation, Springer-Verlag New York, Inc., New York, NY, 2002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REVIEW
"D. John Cooke : Reviewer"
The subject under consideration is the transformation of programs
to improve their efficiency, not the construction of programs
ab initio, although the two are
closely related. Here, efficiency is related to
more...
|