This Article 
 Bibliographic References 
 Add to: 
A Language for Specifying Program Transformations
June 1990 (vol. 16 no. 6)
pp. 630-638

A language is described for specifying program transformations, from which programs can be generated to perform the transformations on sequences of code. The main objective of this work has been to develop a language that would allow the user to quickly and easily specify a wide range of transformations for a variety of programming languages. The rationale for the language constructs is given, as well as the details of an implementation which was prototyped using Prolog. Numerous examples of the language usage are provided.

[1] A. V. Aho, R. Sethi, and J. D. Ullman,Compilers: Principles, Techniques, and Tools. Reading, MA: Addison-Wesley, 1986.
[2] R. G. G. Cattel, "Automatic derivation of code generators from machine descriptions,"ACM Trans. Program. Lang. Syst., vol. 4, pp. 173-190, Jan. 1982.
[3] W. F. Clocksin and C. S. Mellish,Programming in Prolog. New York: Springer-Verlag, 1984.
[4] J. Cohen and T. J. Hickey, "Parsing and compiling using Prolog,"ACM Trans. Program. Lang. Syst., vol. 9, pp. 125-163, Apr. 1987.
[5] J. Cohen, R. Sitver, and D. Auty, "Evaluating and improving recursive descent parsers,"IEEE Trans. Software Eng., vol. SE-5, pp. 472-480, Sept. 1979.
[6] J. Cohen, "Computer-assisted microanalysis of programs,"Commun. ACM, vol. 25, no. 10, Oct. 1982.
[7] R. E. Griswold, "Bibliography of documents related to the SNOBOL programming languages," Dep. Comput. Sci., Univ. Arizona, Tucson, Tech. Rep. TR 78-18a, 1979.
[8] R. E. Griswold, "The control of searching and backtracking in string pattern matching," inImplementations of Prolog, J. A. Campbell, Ed. New York: Wiley, 1984, pp. 50-64.
[9] D. F. Kibler, J. M. Neighbors, and T. A. Standish, "Program manipulation via an efficient production system," inProc. Symp. Artificial Intelligence and Programming Languages, 1977, pp. 163-173.
[10] D. B. Loveman, "Program improvement by source to source transformation,"JACM, vol. 24, no. 1, pp. 121-145, Jan. 1977.
[11] W. M. McKeeman, "Peephole optimization,"Commun. ACM, vol. 8, no. 7, pp. 443-444, 1965.
[12] H. Partsch and R. Steinbrüggen, "Program transformation systems,"ACM Comput. Surveys, vol. 15, no. 3, pp. 199-236, Sept. 1983.
[13] F. C. N. Pereira and D. H. D. Warren, "Definite clause grammars for language analysis,"Artificial Intell., vol. 13, pp. 231-278, 1980.
[14] T. A. Standish, D. C. Harriman, D. F. Kibler, and J. M. Neighbors,The Irvine Program Transformation Catalogue. Irvine, CA: Dep. Comput. Sci., Univ. California, Jan. 1976.
[15] L. Sterling and E. Shapiro,The Art of Prolog. Cambridge, MA: MIT Press, 1986.
[16] A. S. Tanenbaum, H. Staveren, and J. W. Stevenson, "Using peephole optimization on intermediate code,"ACM Trans. Program. Lang. Syst., vol. 4, pp. 21-36, Jan. 1982.
[17] D. H. D. Warren, "Logic programming and compiler writing,"Software Practice and Experience, vol. 10, pp. 97-125, Feb. 1980.

Index Terms:
specification language; program transformations; language constructs; Prolog; specification languages.
D. Hildum, J. Cohen, "A Language for Specifying Program Transformations," IEEE Transactions on Software Engineering, vol. 16, no. 6, pp. 630-638, June 1990, doi:10.1109/32.55091
Usage of this product signifies your acceptance of the Terms of Use.