eerke@cs.kun.nl (Eerke Boiten) (02/01/91)
In article <9883@discus.technion.ac.il> ses@techunix.BITNET (Simon E Spero) writes: >Cookbook: > Can anybody give me a reference for a transformation cook-book; >something covering various tried and tested transformation tactics? Does one >exist; if not can anyone suggest a good set of review papers? There is a matter of taste involved. If you like a calculational approach, you might look at Backus' paper introducing FP: @ARTICLE{ Bac78, Author= {Backus, J.}, Title= {Can Programming be Liberated from the {V}on {N}eumann Style? {A} Functional Style and its Algebra of Programs}, Journal= cacm, Volume= 21, Pages= {613--641}, Month= Aug, Year= 1978} or at the Bird-Meertens formalism (there are other and maybe better references): @INCOLLECTION{ Bir89b, Author= {Bird, R.S.}, Title= {Lectures on Constructive Functional Programming}, Crossref= {NATO.ASI.F55}, Pages= {151--218}} (Marktoberdorf 1988; crossref's: see at the end of this article). Both of the above methods are concerned with functional formalisms only. An alternative is the wide-spectrum approach of the CIP project in Munich: @string{sv= {Springer-Verlag}} @BOOK{ Bau82a, Author= {Bauer, F.L. and W{\"o}ssner, H.}, Title= {Algorithmic Language and Program Development}, Publisher= sv, Address= {Berlin}, Year= 1982} %% Bau82a: an early textbook on the transformational development of %% programs according to the CIP method. @BOOK{ CIP85, Author= {Bauer, F.L. and Berghammer, R. and Broy, M. and Dosch, W. and Geiselbrechtinger, F. and Gnatz, R. and Hangel, E. and Hesse, W. and Krieg-Br{\"u}ckner, B. and Laut, A. and Matzner, T. and M{\"o}ller, B. and Nickl, F. and Partsch, H. and Pepper, P. and Samelson, K. and Wirsing, M. and W{\"o}ssner, H.}, Title= {The {M}unich Project {CIP}. Volume {I}: The Wide Spectrum Language {CIP-L}}, Series= lncs, Volume= 183, Publisher= sv, Address= {Berlin/Heidelberg/New York}, Year= 1985} %% CIP85: defining report of the wide spectrum language CIP-L, including %% (definitional) transformations. @BOOK{ Par90a, Author= {Partsch, H.}, Title= {Specification and Transformation of Programs - a Formal Approach to Software Development}, Address= {Berlin}, Publisher= sv, Year= 1990} %% Par90a: recent textbook on transformational development, CIP method, %% contains a large number of transformations. Below I've included some other interesting references: @CONFERENCE{ Fea87, Author= {Feather, M.S.}, Title= {A Survey and Classification of some Program Transformation Approaches and Techniques}, Crossref= {Mee87}, Pages= {165--196}} %% Useful reference article. Contains no transformations as such, but %% surveys classifies transformations and strategies in literature. @TECHREPORT{ Sta76, Author= {T. A. Standish and D. C. Harriman and D. F.Kibler and J. M. Neighbors}, Title= {The Irvine Program Transformation Catalogue}, Institution= {Department of Information and Computer Science, University of California at Irvine}, Type= {Technical Report}, Month= jan, Year= 1976} %% I haven't seen this; maybe someone from Irvine can tell more about %% this. (I know you're out there ...) @ARTICLE{ Dar76, Author= {J. Darlington and R.M. Burstall}, Title= {A system which automatically improves programs}, Journal= acta, Volume= 6, Number= 1, Pages= {41--60}, Year= 1976} %% Dar76: early paper about unfold-fold methodology. Contains a number %% of transformation rules. Now for crossref'd proceedings: @PROCEEDINGS{ Mee87, Booktitle= {Program Specification and Transformation. Proceedings of the {IFIP} {TC2}/{WG2.1} Working Conference on Program Specification and Transformation}, Title= {Program Specification and Transformation. Proceedings of the {IFIP} {TC2}/{WG2.1} Working Conference on Program Specification and Transformation}, Editor= {Meertens, L.G.L.T.}, Publisher= nhpc, Address= {Amsterdam}, Year= 1987} @PROCEEDINGS{ NATO.ASI.F55, Title= {Constructive Methods in Computing Science. {NATO ASI} Series Vol. {F}55}, Booktitle= {Constructive Methods in Computing Science. {NATO ASI} Series Vol. {F}55}, Editor= {M. Broy}, Publisher= sv, Address= {Berlin}, Year= 1989} -- Eerke Boiten Department of Informatics (STOP Project), K.U.Nijmegen Toernooiveld, 6525 ED Nijmegen, The Netherlands Tel. +31-80-652236. Email: eerke@cs.kun.nl