Summary
The 1980s were a fertile time in the development of program transformation systems. Much of the experience we gained during those years, what we learned about designing, implementing, and using transformation systems, is written down in obscure places that today's researchers probably do not have access to, or probably will not find if they do. Moreover, many practical tidbits of information were understood, but never written down. I do not really think the community is aware of some of the problems they are revisiting today and solutions they are reinventing (some that do not work!). Bob Paige was a major contributor to the body of transformation research; he was also very concerned that his many results not be lost to successive generations of researchers. Late in his life he produced a compendium of his results and he encouraged his colleagues to do likewise. This is my effort towards that goal.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
R. M. Balzer: Transformational implementation: An example. IEEE Transactions on Software Engineering SE, 7(1):3–14, January 1981.
R. M. Balzer, T. E. Cheatham, and C. Green: Software technology in the 1990s: Using a new paradigm. Computer Magazine, 1983.
R. M. Balzer and N. M. Goldman: Principles of good software specification and their implications for specification languages. In Specification of Reliable Software, 58–67. IEEE Computer Society, 1979.
R. M. Balzer, N. M. Goldman, and D. S. Wile: On the transformational implementation approach to programming. In Proceedings of the Second International Conference on Software Engineering, 337–344, October 1976.
Don Batory and B. J. Geraci: Composition validation and subjectivity in GenVoca generators. IEEE Transactions on Software Engineering SE, February 1997.
F. L. Bauer. Programming as an evolutionary process: In Proceedings of the Second International Conference on Software Engineering, 223–234. IEEE Computer Society, October 1976.
R. S. Bird and L. G. L. T. Meertens, editors: Algorithmic Languages and Calculi. IFIP TC2/WG 2.1 International Workshop on Algorithmic Languages and Calculi, 17–22, Alsace, France. Chapman & Hall, February 1997.
J. M. Boyle: Program adaption and transformation. In Practice in Software Adaption and Maintenance: Proceedings of Workshop on Software Adaption and Maintenance, Berlin, 3–20. North-Holland, 1979.
M. Broy, H. Partsch, P. Pepper, and M. Wirsing: Semantic relations in programming languages. In Proceedings of IFIP Congress, Amsterdam, 101–106. North-Holland, 1983.
R. M. Burstall and J. Darlington: A transformation system for developing recursive programs. Journal of the ACM, 24(1):44–67, January 1977.
T. E. (Jr) Cheatham, G. H. Holloway, and J. A. Townley: Program refinement by transformation. In of the Fifth International Conference on Software Engineering, San Diego, CA, 430–437, March 1981.
CIP Language Group: The Munich Project CIP. Volume I: The Wide Spectrum Language CIP-L. Lecture Notes in Computer Science 183. Springer, 1985.
D. Cohen: Automatic compilation of logical specifications into efficient programs. In Proceedings of the5th National Conference on Artificial Intelligence AAAI-86, Philadelphia, PA, USA, 20–25, April 1986.
V. Donzeau-Gouge, G. Kahn, B. Lang, and B. Mélèse: Documents structure and modularity in Mentor. In Software Development Environments (SDE), 141–148, 1984.
M. S. Feather: A system for assisting program transformation. ACM Toplas, 4(1):1–20, 1982.
M. S. Feather: Language support for the specification and development of composite systems. ACM Trans. Program. Lang. Syst., 9(2):198–234, 1987.
M. S. Feather: A survey and classification of some program transformation techniques. In L. G. L. T. Meertens, editor, Proceedings IFIP TC2 Working Conference on Program Specification and Transformation, Bad Tölz, Germany, 165–195. North-Holland, 1987.
Susan L. Gerhart: Correctness-preserving program transformations. In 2nd ACM POPL Symposium, Palo Alto, CA, USA, 54–66, 1975.
M. J. Gordon, A. J. Milner, and C. P. Wadsworth: Edinburgh LCF. Lecture Notes in Computer Science 78. Springer, 1979.
C. Green: A summary of the PSI program synthesis system. In Proceedings of the Fifth International Conference on Artificial Intelligence, Cambridge, MA, USA, 380– 381, August 1977.
C. Green and D. R. Barstow: On program synthesis knowledge. Artificial Intelligence, 10(3):241–279, 1978.
W. L. Johnson and M. S. Feather: Using evolution transformations to construct specifications. In M. Lowry and R. McCartney, editors, Automating Software Design, 65–91. AAAI Press, 1991.
W. L. Johnson, M. S. Feather, and D. R. Harris: Representation and presentation of requirements knowledge. IEEE Trans. Software Eng., 18(10):853–869, 1992.
N. D. Jones, C. K. Gomard, and P. Sestoft: Partial Evaluation and Automatic Program Generation. Prentice-Hall, 1993.
E. Kant: On the efficient synthesis of efficient programs. Artif. Intell., 20(3):253–305, 1983.
D. F. Kibler: Power, Efficiency, and Correctness of Transformation Systems. PhD thesis, Computer Science Department, University of California at Irvine, CA, USA, 1978.
R. Kieburtz, F. Bellegarde, J. Bell, J. Hook, J. Lewis, D. Oliva, T. Sheard, T. Walton, and T. Zhou: Calculating software generators from solution specifications. Technical Report CS/E-94-032B, Oregon Graduate Center, USA, 1994.
Y. A. Liu: Incremental Computation: A Semantics-Based Systematic Transformational Approach. Ph.D. thesis, Department of Computer Science, Cornell University, Ithaca, New York, 1996.
L. G. L. T. Meertens, editor: Program Specification and Transformation. Proc. IFIP TC2/W.G. 2.1 Working Conference on Program Specification and Transformation, Bad Tölz, Germany. North-Holland, 1987.
K. Narayanaswamy: Static analysis-based program evolution in the common lisp frame¬work. In Proceedings of the10th International Conference on Software Engineering, Singapore, 222–230, April 1988.
J. Neighbors: Software Construction Using Components. Ph.D. thesis, Computer Science Department, University of California at Irvine, CA, USA, 1981.
R. Paige: Transformational programming — applications to algorithms and systems. In 10th POPL Symposium, Austin, TX, USA, 73–87, 1983.
P. Pepper, editor: Program Transformation and Programming Environments, Workshop Report. Nato ASI Series F 8. Springer, 1984.
A. Pettorossi and R. M. Burstall: Deriving very efficient algorithms for evaluating linear recurrence relations using the program transformation technique. Acta Informatica, 18:181–206, 1982.
A. Pettorossi and M. Proietti: Rules and strategies for transforming functional and logic programs. ACM Computing Surveys, 28(2):360–414, 1996.
J. C. Ramming and D. S. Wile: Guest editorial: Introduction to the special section “Domain-Specfic Languages (DSL)”. IEEE Trans. Software Eng., 25(3):289–290, 1999.
T. W. Reps and T. Teitelbaum: The Synthesizer Generator. Springer, New York, 1988.
G. Rich: A formal representation for plans in the programmer's apprentice. In Proceedings 7th International Joint Conference on Artificial Intelligence, 1981.
W. L. Scherlis: Program improvement by internal specialization. In Proc. 8th ACM Symposium on Principles of Programming Languages, Williamsburgh, Va, 41–49. ACM Press, 1981.
D. R. Smith: KIDS: A semi-automatic program development system. IEEE Transactions on Software Engineering — Special Issue on Formal Methods, 16(9):1024–1043, September 1990.
Y. V. Srinivas: Refinement of parameterized algebraic specifications. In R. S. Bird and L. G. L. T. Meertens, editors, Algorithmic Languages and Calculi, volume 95 of IFIP Conference Proceedings, 164–186. Chapman & Hall, 1997.
T. Standish: Arcturus. Seminar USC/Information Sciences Institute (Marina del Rey, CA, USA), Fall 1980.
E. Visser: Program transformation with Stratego/XT: Rules, strategies, tools, and systems. In C. Lengauer et al., editor, Domain-Specific Program Generation, Lecture Notes in Computer Science 3016, 216–238. Springer, 2004.
D. S. Wile: Type transformations. IEEE Trans. Software Eng., 7(1):32–39, 1981.
D. S. Wile: Program developments: Formal explanations of implementations. Commun. ACM, 26(11):902–911, 1983.
D. S. Wile: Local formalisms: Widening the spectrum of wide-spectrum languages. In L. G. L. T. Meertens, editor, Proceedings IFIP TC2 Working Conference on Program Specification and Transformation, Bad Tölz, Germany, 459–481. North-Holland, 1987.
D. S. Wile: Popart: Producers of parsers and related tools. Reference manual, USC/Information Sciences Institute, Marina del Rey, CA, USA, 1993.
D. S. Wile: Towards a calculus for abstract syntax trees. In R. Bird and L. Meertens, editors, Algorithmic Languages and Calculi, 324–335, February 1997.
D. S. Wile: Supporting the DSL spectrum. Journal of Computing and Information Technology. CIT, 9(4):263–287, 2001.
D. S. Wile: Lessons learned from real DSL experiments. Sci. Comput. Program., 51(3):265–290, 2004.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer Science + Business Media B.V.
About this chapter
Cite this chapter
Wile, D.S. (2008). Program Transformations: Some Lessons from the 1980s. In: Danvy, O., Henglein, F., Mairson, H., Pettorossi, A. (eds) Automatic Program Development. Springer, Dordrecht. https://doi.org/10.1007/978-1-4020-6585-9_18
Download citation
DOI: https://doi.org/10.1007/978-1-4020-6585-9_18
Publisher Name: Springer, Dordrecht
Print ISBN: 978-1-4020-6584-2
Online ISBN: 978-1-4020-6585-9
eBook Packages: Computer ScienceComputer Science (R0)