ACM Home Page
Please provide us with feedback. Feedback
Rules and strategies for transforming functional and logic programs
Full text PdfPdf (764 KB)
Source ACM Computing Surveys (CSUR) archive
Volume 28 ,  Issue 2  (June 1996) table of contents
Pages: 360 - 414  
Year of Publication: 1996
ISSN:0360-0300
Authors
Alberto Pettorossi  Univ. of Rome Tor Vergata, Rome, Italy
Maurizio Proietti  IASI CNR, Rome, Italy
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 80,   Citation Count: 25
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/234528.234529
What is a DOI?

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
 
10
 
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


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...

Collaborative Colleagues:
Alberto Pettorossi: colleagues
Maurizio Proietti: colleagues