Rapid development of a program transformation system with attribute grammars and dynamic transformations

  • Harald Vogt
  • Aswin van den Berg
  • Arend Freije
Interactive Applications
Part of the Lecture Notes in Computer Science book series (LNCS, volume 461)

Abstract

Using the attribute grammar based Synthesizer Generator a prototype program transformation system has been developed in four man-months. This is very fast, compared with the development-time of other program transformation systems. The prototype supports the construction and manipulation of equational algorithm proofs and making derivations interspersed with text. Its intended use is in writing papers on algorithm design, automatic checking of the derivation and providing mechanic help during the derivation.

The editor supports dynamic transformations: they can be inserted and deleted during an edit-session, which is currently not supported by the Synthesizer Generator. Also the applicability and direction of applicability of a dynamic transformation on a formula in the program derivation is indicated and updated incrementally. Dynamic transformations were, until now, never implemented in any other proof- or program transformation system. The prototype, including the dynamic transformations, was written as a pure attribute grammar.

Keywords

Abstract Syntax Linear Time Algorithm Proof Obligation Derivation Tree Base View 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [Bird 87]
    Bird, R. An introduction to the theory of lists. Logic of Programming and Calculi of Discrete Design (M. Broy,ed.), NATO ASI Series Vol. F.36, Springer Verlag 1987.Google Scholar
  2. [Knuth 84]
    Knuth, D.E. Literate Programming. The Computer Journal, Vol. 27, 1984.Google Scholar
  3. [Lindsay 88]
    Lindsay, P.A. A survey of mechanical support for formal reasoning. Software Engineering Journal, January 1988.Google Scholar
  4. [MRT 86]
    Meertens, L.G.L.T. Algorithmics — towards programming as a mathematical activity. In: de Bakker, J.W., Hazewinkel, M., Lenstra, J.K. (eds.), Proc. CWI Symposium on Mathematics and Computer Science, CWI Monographs Vol. 1, 1986.Google Scholar
  5. [Partsch & Steinbruggen 83]
    Partsch, H. and R. Steinbruggen. Program Transformation Systems. Computing Surveys, Vol. 15, No.3, September 1983.Google Scholar
  6. [Prospectra 86]
    Krieg-Brückner, B., B. Hoffmann, H. Ganzinger, M. Broy, R. Wilhelm, U. Möncke, B. Weisberger, A. McGettrick, I.G. Campbell and G. Winterstein. PROgram development by SPECification and TRAnsformation. Proc. ESPRIT Conf. 86, North-Holland 1987.Google Scholar
  7. [Reps & Alpern 84]
    Reps, T. and B. Alpern. Interactive Proof Checking. In the 11th Ann. ACM Symp. on Principles Of Programming Languages, pages 36–45, 1984.Google Scholar
  8. [RTD 83]
    Reps, T., T. Teitelbaum and A. Demers. Incremental Context-Dependent Analysis for Language Based Editors. In ACM Transactions on Progr. Lang. and Systems, Vol. 5, No. 3, pages 449–477, July 1983.CrossRefGoogle Scholar
  9. [Ritchie 88]
    Ritchie, B. The Design and Implementation of an Interactive Proof Editor. Tech. Rep. CSF-57-88 and PhD. dissertation, Dept. of Computer Science, Univ. of Edinburgh, Oct. 1988.Google Scholar
  10. [Santos 88]
    Santos, R.G. Conditional and parameterized transformations in CSG. PROSPECTRA Study Note S.1.5.C2-SN-2.0, 1988-24-5.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • Harald Vogt
    • 1
  • Aswin van den Berg
    • 1
  • Arend Freije
    • 1
  1. 1.Department of Computer ScienceUtrecht UniversityUtrechtThe Netherlands

Personalised recommendations