Nothing Special   »   [go: up one dir, main page]

Skip to main content

Program Transformations: Some Lessons from the 1980s

  • Chapter
Automatic Program Development
  • 342 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

eBook
USD 15.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. R. M. Balzer: Transformational implementation: An example. IEEE Transactions on Software Engineering SE, 7(1):3–14, January 1981.

    Article  Google Scholar 

  2. R. M. Balzer, T. E. Cheatham, and C. Green: Software technology in the 1990s: Using a new paradigm. Computer Magazine, 1983.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  5. Don Batory and B. J. Geraci: Composition validation and subjectivity in GenVoca generators. IEEE Transactions on Software Engineering SE, February 1997.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  10. R. M. Burstall and J. Darlington: A transformation system for developing recursive programs. Journal of the ACM, 24(1):44–67, January 1977.

    Article  MATH  MathSciNet  Google Scholar 

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

    Google Scholar 

  12. CIP Language Group: The Munich Project CIP. Volume I: The Wide Spectrum Language CIP-L. Lecture Notes in Computer Science 183. Springer, 1985.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  15. M. S. Feather: A system for assisting program transformation. ACM Toplas, 4(1):1–20, 1982.

    Article  MATH  Google Scholar 

  16. M. S. Feather: Language support for the specification and development of composite systems. ACM Trans. Program. Lang. Syst., 9(2):198–234, 1987.

    Article  Google Scholar 

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

    Google Scholar 

  18. Susan L. Gerhart: Correctness-preserving program transformations. In 2nd ACM POPL Symposium, Palo Alto, CA, USA, 54–66, 1975.

    Google Scholar 

  19. M. J. Gordon, A. J. Milner, and C. P. Wadsworth: Edinburgh LCF. Lecture Notes in Computer Science 78. Springer, 1979.

    Google Scholar 

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

    Google Scholar 

  21. C. Green and D. R. Barstow: On program synthesis knowledge. Artificial Intelligence, 10(3):241–279, 1978.

    Article  Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

  24. N. D. Jones, C. K. Gomard, and P. Sestoft: Partial Evaluation and Automatic Program Generation. Prentice-Hall, 1993.

    Google Scholar 

  25. E. Kant: On the efficient synthesis of efficient programs. Artif. Intell., 20(3):253–305, 1983.

    Article  Google Scholar 

  26. D. F. Kibler: Power, Efficiency, and Correctness of Transformation Systems. PhD thesis, Computer Science Department, University of California at Irvine, CA, USA, 1978.

    Google Scholar 

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

    Google Scholar 

  28. Y. A. Liu: Incremental Computation: A Semantics-Based Systematic Transformational Approach. Ph.D. thesis, Department of Computer Science, Cornell University, Ithaca, New York, 1996.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  31. J. Neighbors: Software Construction Using Components. Ph.D. thesis, Computer Science Department, University of California at Irvine, CA, USA, 1981.

    Google Scholar 

  32. R. Paige: Transformational programming — applications to algorithms and systems. In 10th POPL Symposium, Austin, TX, USA, 73–87, 1983.

    Google Scholar 

  33. P. Pepper, editor: Program Transformation and Programming Environments, Workshop Report. Nato ASI Series F 8. Springer, 1984.

    Google Scholar 

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

    Article  MATH  MathSciNet  Google Scholar 

  35. A. Pettorossi and M. Proietti: Rules and strategies for transforming functional and logic programs. ACM Computing Surveys, 28(2):360–414, 1996.

    Article  Google Scholar 

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

    Article  Google Scholar 

  37. T. W. Reps and T. Teitelbaum: The Synthesizer Generator. Springer, New York, 1988.

    Google Scholar 

  38. G. Rich: A formal representation for plans in the programmer's apprentice. In Proceedings 7th International Joint Conference on Artificial Intelligence, 1981.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  42. T. Standish: Arcturus. Seminar USC/Information Sciences Institute (Marina del Rey, CA, USA), Fall 1980.

    Google Scholar 

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

    Google Scholar 

  44. D. S. Wile: Type transformations. IEEE Trans. Software Eng., 7(1):32–39, 1981.

    Article  Google Scholar 

  45. D. S. Wile: Program developments: Formal explanations of implementations. Commun. ACM, 26(11):902–911, 1983.

    Article  Google Scholar 

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

    Google Scholar 

  47. D. S. Wile: Popart: Producers of parsers and related tools. Reference manual, USC/Information Sciences Institute, Marina del Rey, CA, USA, 1993.

    Google Scholar 

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

    Google Scholar 

  49. D. S. Wile: Supporting the DSL spectrum. Journal of Computing and Information Technology. CIT, 9(4):263–287, 2001.

    Article  MATH  Google Scholar 

  50. D. S. Wile: Lessons learned from real DSL experiments. Sci. Comput. Program., 51(3):265–290, 2004.

    Article  MathSciNet  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics