A study on transformational semantics

  • P. Pepper
III. Program Development By Transformation
Part of the Lecture Notes in Computer Science book series (LNCS, volume 69)


The semantics of a programming language is specified — relative to a kernel language — by reducing certain constructs of the language to more elementary ones by means of definitional transformations. Parallels to the algebraic specification of abstract data types are discussed. This approach of "transformational semantics" is illustrated by explaining program variables in terms of purely applicative constructs.


Abstract Syntax Congruence Relation Program Variable Denotational Semantic Language Construct 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [ADJ 76]
    J. W. Thatcher, E.G. Wagner, J.B. Wright: Specification of Abstract Data Types Using Conditional Axioms. IBM Research Report RC-6214, September 1976Google Scholar
  2. [ADJ 76a]
    A.J. Goguen, J.W. Thatcher, E.G. Wagner: An Initial Algebra Approach to the Specification, Correctness, and Implementation of Abstract Data Types. IBM Research Report RC-6487, October 1976Google Scholar
  3. [ADJ 77]
    J.A. Goguen, J.W. Thatcher, E.G. Wagner, J.B. Wright: Initial Algebra Semantics and Continuous Algebras. JACM 24, 1, 68–95 (1977)Google Scholar
  4. [ADJ 78]
    J.W. Thatcher, E.G. Wagner, J.B. Wright: Data Type Specification: Parametrization and the Power of Specification Techniques. Proc. SIGACT loth Annual Symposium on Theory of Computation, 1978Google Scholar
  5. [Backus 78]
    J. Backus: Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs. CACM 21, 8, 613–641 (1978)Google Scholar
  6. [de Bakker 67]
    J.W. de Bakker: Formal Definition of Programming Languages. Mathematical Center Tracts 16, Mathematisch Centrum, Amsterdam (1967)Google Scholar
  7. [de Bakker 69]
    J.W. de Bakker: Semantics of Programming Languages. In: Tou (ed.): Advances in Information System Science 2, New York: Plenum Press, 1969Google Scholar
  8. [de Bakker 76]
    J.W. de Bakker: Least Fixed Points Revisited. Theoretical Computer Science 2, 155–181 (1976)Google Scholar
  9. [Bauer et al. 79]
    F.L. Bauer, H. Wössner: Algorithmic Language and Program Development. Prentice Hall International, London 1979 (to appear)Google Scholar
  10. [Berkling 76]
    K.J. Berkling: Reduction Languages for Reduction Machines. GMD, Institut für Informationsforschung, Interner Bericht ISF-76-8, Sept. 1976Google Scholar
  11. [Birkhoff, Lipson 70]
    G. Birkhoff, J.D. Lipson: Heterogeneous Algebras. Journal of Combinatorial Theory, 8, 115–133 (1970)Google Scholar
  12. [Böhm, Jacopini 66]
    C. Böhm, G. Jacopini: Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules. CACM 9, 5, 366–371 (1966)Google Scholar
  13. [Burstall 68]
    R.M. Burstall: Semantics of Assignment. In: E. Dale, D. Michie (eds.): Machine Intelligence 2, 3–20, Oliver and Boyd, Edinburgh (1968)Google Scholar
  14. [Burstall 70]
    R.M. Burstall: Formal Description of Program Structure and Semantics in First Order Logic. In: B. Meltzer, E. Michie (eds.): Machine Intelligence 5, 79–98, Edinburgh University Press 1970Google Scholar
  15. [Burstall, Darlington 75]
    R.M. Burstall, J. Darlington: Some Transformations for Developing Recursive Programs. Proc. of 1975 Int. Conf. on Reliable Software, Los Angeles 1975, 465–472. Also (revised version) JACM 24: 1, 44–67 (1977)Google Scholar
  16. [Burstall, Goguen 77]
    R.M. Burstall, J.A. Goguen: Putting Theories Together to Make Specifications. Proc. Int. Joint Conf. on Artificial Intelligence 1977Google Scholar
  17. [Christensen, Shaw 69]
    C. Christensen, C.J. Shaw (eds.): Proc. of the Extensible Languages Symposium, Boston, Mass., May 1969, SIGPLAN Notices 4, 8 (1969)Google Scholar
  18. [CIP 76]
    F.L. Bauer, H. Partsch, P. Pepper, H. Wössner: Techniques for Program Development. Technische Universität München, Institut für Informatik, Internal Report, Sept. 1976. Also in: Software Engineering Techniques. Infotech State of the Art Report 34, 1977Google Scholar
  19. [CIP 77]
    F.L. Bauer, H. Partsch, P. Pepper, H. Wössner: Notes on the Project CIP: Outline of a Transformation System. Technische Universität München, Institut für Informatik, TUM-INFO-7729, July 1977Google Scholar
  20. [CIP 78]
    F.L. Bauer, M. Broy, R. Gnatz, W. Hesse, B. Krieg-Brückner, H. Partsch, P. Pepper, H. Wössner: Towards a Wide Spectrum Language to Support Program Specification and Program Development. SIGPLAN Notices 13 (12), 15–24 (1978). See also this volume.Google Scholar
  21. [CIP 78a]
    M. Broy, W. Dosch, H. Partsch, P. Pepper, M. Wirsing: Abstract Data Types: Some Theoretical Aspects and their Practical Consequences. Technische Universität München (to appear)Google Scholar
  22. [CIP 78b]
    M. Broy, R. Gnatz, M. Wirsing: Semantics of Nondeterministic and Noncontinuous Constructs. Proc. International Summer School on Program Construction, Marktoberdorf 1978. This volume.Google Scholar
  23. [Cooper 66]
    D.C. Cooper: The Equivalence of Certain Computations. Comp. J. 9, 45–52 (1966)Google Scholar
  24. [Darlington, Burstall 76]
    J. Darlington, R.M. Burstall: A System which Automatically Improves Programs. Acta Informatica 6, 41–60 (1976)Google Scholar
  25. [Dijkstra 75]
    E.W. Dijkstra: Guarded Commands, Nondeterminacy and Formal Derivation of Programs. CACM 18, 453–457 (1975)Google Scholar
  26. [Dijkstra 76]
    E.W. Dijkstra: A Discipline of Programming. Prentice Hall, Englewood Cliffs, N.J., 1976Google Scholar
  27. [Ershov 76]
    A.P. Ershov: Problems in Many-Language Systems. Proc. International Summer School on Language Hierarchies and Interfaces, Marktoberdorf 1975, LNCS 46, Berlin-Heidelberg-New York: Springer 1976Google Scholar
  28. [Floyd 67]
    R.W. Floyd: Assigning Meanings to Programs. Proc. American Math. Society Symp. in Appl. Math. 19, 19–32 (1967)Google Scholar
  29. [Gill 65]
    S. Gill: Automatic Computing: Its Problems and Prizes. Comp. J. 8, 177–189 (1965)Google Scholar
  30. [Goguen 77]
    J.A. Goguen: Abstract Errors for Abstract Data Types. Univ. of California at Los Angeles, Comp. Sc. Dept., Semantics and Theory of Computation Report No. 6, May 1977Google Scholar
  31. [Gries 78]
    D. Gries: The Multiple Assignment Statement. IEEE Trans. on Software Eng., SE-4, 89–91, March 1978Google Scholar
  32. [Gries 78a]
    D. Gries: Current Ideas in Programming Methodology. In: P. Wegner (ed.): Research Directions in Software Technology. (to appear)Google Scholar
  33. [Guttag 75]
    J.V. Guttag: The Specification and Application to Programming of Abstract Data Types. Univ. of Toronto, Comp. Syst. Research Group, Techn. Report CSRG-59, Sept. 1975Google Scholar
  34. [Hoare 69]
    C.A.R. Hoare: An Axiomatic Basis for Computer Programming. CACM 12, 10, 576–581 (1969)Google Scholar
  35. [Hoare 78]
    C.A.R. Hoare: Some Properties of Predicate Transformers. JACM 25, 3, 461–480 (1978)Google Scholar
  36. [Hoare, Lauer 74]
    C.A.R. Hoare, P.E. Lauer: Consistent and Complementary Formal Theories of the Semantics of Programming Languages. Acta Informatica, 3, 135–153 (1974)Google Scholar
  37. [Hoare, Wirth 73]
    C.A.R. Hoare, N. Wirth: An Axiomatic Definition of the Programming Language PASCAL. Acta Informatica 2, 335–355 (1973)Google Scholar
  38. [Igarashi 64]
    S. Igarashi: An Axiomatic Approach to the Equivalence Problems of Algorithms with Applications. PhD Thesis, University of Tokyo (1964). Reprinted in: Report of the Computer Center Univ. of Tokyo 1, 1-1o1 (1968)Google Scholar
  39. [Kaplan 68]
    D.M. Kaplan: Some Completeness Results in the Mathematical Theory of Computation. JACM 15, 124–134 (1969)Google Scholar
  40. [Knuth 74]
    D.E. Knuth: Structured Programming with goto Statements. Computing Surveys 8, 261–301 (1974)Google Scholar
  41. [Landin 64]
    P.J. Landin: The Mechanical Evaluation of Expressions. Comp. J. 6, 4, 308–320 (1964)Google Scholar
  42. [Landin 66]
    P.J. Landin: A Formal Description of ALGOL 60. In: T.B. Steel jr. (ed.): Formal Language Description Languages for Computer Programming. Proc. IFIP Working Conf. 1964, 266–294, North Holland, Amsterdam (1966)Google Scholar
  43. [Landin 66a]
    P.J. Landin: The Next 700 Programming Languages. CACM 9, 157–166 (1966)Google Scholar
  44. [Lukas, Walk 70]
    P. Lukas, K. Walk: On the Formal Description of PL/1. In: M.I. Halpern, C.J. Shaw (eds.): Annual Review in Automatic Programming 6, 105–182 (1970)Google Scholar
  45. [McCarthy 60]
    J. McCarthy: Recursive Functions of Symbolic Expressions and Their Computation by Machine, pt. 1. CACM 3, 4, 184–195 (1960)Google Scholar
  46. [McCarthy 62]
    J. McCarthy: Towards a Mathematical Science of Computation. In: C.M. Popplewell (ed.): Information Processing 1962, Proc. IFIP Congress 1962, Amsterdam: North-Holland Publishing Co., 21–28, 1963Google Scholar
  47. [McCarthy 63]
    J. McCarthy: A Basis for a Mathematical Theory of Computation. In: P. Braffort, D. Hirschberg (eds.): Computer Programming and Formal Systems. North-Holland Publishing Co., Amsterdam 1963Google Scholar
  48. [McCarthy 66]
    J. McCarthy: A Formal Description of a Subset of ALGOL. In: T.B. Steel jr. (ed.): Formal Language Description Languages for Computer Programming. Proc. IFIP Working Conference 1964, 1–12, North Holland, Amsterdam (1966)Google Scholar
  49. [Milne, Strachey 76]
    R. Milne, C. Strachey: A Theory of Programming Language Semantics. (2 Volumes) London: Chapman and Hall 1976Google Scholar
  50. [Naur 66]
    P. Naur: Proof of Algorithms by General Snapshots. BIT 6, 4, 310–316 (1966)Google Scholar
  51. [Quine 60]
    W.V.D. Quine: Word and Object. MIT Press, Cambridge, Mass. (1960)Google Scholar
  52. [Pepper 74]
    P. Pepper: Theoretische Ansätze für den Entwurf von Prozessoren für wohlstrukturierten Steuerfluß. Technische Universität München, Diplomarbeit 1974Google Scholar
  53. [Perlis, Samelson 58]
    A.J. Perlis, K. Samlson: Preliminary Report — International Algebraic Language. CACM 1, 12, 8–22 (1958)Google Scholar
  54. [Salomaa 73]
    A. Salomaa: Formal Languages. New York: Academic Press 1973Google Scholar
  55. [Schuman, Jorrand 70]
    S.A. Schuman, Ph. Jorrand: Definition Mechanisms in Extensible Programming Languages. Proc. AFIPS 1970 Fall Joint Computer Conf., 33, 2, 9–20, 1970Google Scholar
  56. [Scott 72]
    D. Scott: Continuous Lattices. Proc. 1971 Dalhousie Conference, Lecture Notes in Mathematics 274. New York: Springer 1972, 97–136Google Scholar
  57. [Scott 76]
    D. Scott: Data Types as Lattices. Siam J. Comp. 5, 3, 522–587 (1976)Google Scholar
  58. [Scott, Strachey 71]
    D. Scott, C. Strachey: Towards a Mathematical Semantics for Computer Languages. Oxford University, Computing Lab. Techn. Monograph PRG 6, 1971. Also in: J. Fox (ed.): Computers and Automata. Wiley, New York, 1971. pp. 19–46Google Scholar
  59. [Steel 66]
    T.B. Steel jr. (ed.): Formal Language Description Languages for Computer Programming. Proc. IFIP Working Conf. 1964, North Holland, Amsterdam (1966)Google Scholar
  60. [Steinbrüggen 77]
    R. Steinbrüggen: Reguläre Baumbereiche. Technische Universität München, Internal Report, August 1977Google Scholar
  61. [Stoy 77]
    J.E. Stoy: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. The MIT Press, Cambridge, Mass. and London, 1977Google Scholar
  62. [Strachey 66]
    C. Strachey: Towards a Formal Semantics. In: T.B. Steel jr. (ed.): Formal Language Description Languages for Computer Programming. North Holland, Amsterdam, 198–220, 1966Google Scholar
  63. [Tennent 76]
    R.D. Tennent: The Denotational Semantics of Programming Languages. CACM 19, 8, 437–453 (1976)Google Scholar
  64. [Tennent 77]
    R.D. Tennent: A Denotational Definition of the Programming Language PASCAL. Queen's University, Kingston, Ontario, Dept. of Computing and Information Sc., Techn. Report 77–47, July 1977Google Scholar
  65. [Whitehead, Russell]
    A.N. Whitehead, B. Russell: Principia Mathematica. Cambridge (1910–1913), (2nd ed. 1925–1927)Google Scholar
  66. [van Wijngaarden 63]
    A. van Wijngaarden: Generalized ALGOL. In: Symbolic Languages in Data Processing, Proc. ICC Symp. Rome, 409–419, Gordon and Breach, New York (1962). Also in: R. Goodman (ed.): Annual Review in Automatic Programming 3, 17–26, Pergamon Press, New York (1963)Google Scholar
  67. [van Wijngaarden 66]
    A. van Wijngaarden: Recursive Definition of Syntax and Semantics. In: T.B. Steel jr. (ed.): Formal Language Description Languages for Computer Programming. Proc. IFIP Working Conf. 1964, 13–24, North Holland, Amsterdam (1966)Google Scholar
  68. [van Wijngaarden 75]
    A. van Wijngaarden et al.: Revised Report on the Algorithmic Language ALGOL 68. Acta Informatica 5, 1–236 (1975)Google Scholar
  69. [Wirth 63]
    N. Wirth: A Generallization of ALGOL. CACM 6, 547–554 (1963)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1979

Authors and Affiliations

  • P. Pepper
    • 1
  1. 1.Institut für InformatikTechnische Universität MünchenMünchen

Personalised recommendations