Denotational engineering or from denotations to syntax

  • Andrzej Blikle
Foundations I
Part of the Lecture Notes in Computer Science book series (LNCS, volume 252)


This paper is devoted to the methodology of using denotational techniques in software design. Since denotations describe the mechanisms of a system and syntax is only a user-visible representation of these mechanisms, we suggest that denotations be developed in the first place and that syntax be derived from them later. That viewpoint is opposite to the traditional (descriptive) style where denotational techniques are used in assigning a meaning to some earlier defined syntax. Our methodology is discussed on an algebraic ground where both denotations and syntax constitute many-sorted algebras and where denotational semantics is a homomorphism between them. On that ground the construction of a denotational model of a software system may be regarded as a derivation of a sequence of algebras. We discuss some mathematical techniques which may support that process especially this part where syntax is derived from denotations. The suggested methodology is illustrated on an example where we develop a toy programming language with rendezvous mechanisms.


Parallel Composition Communicate Sequential Process Denotational Semantic Concrete Syntax Abstract Error 
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. AHO A.V., JOHNSON S.C., ULLMAN J.D. Deterministic parsing of ambiguous grammars, Com. ACM no 8, vol. 18 (1975), 441–452Google Scholar
  2. BJOERNER D., JONES C.B. The Vienna Development Method: The Meta Language, LNCS Vol.61,Springer Verlag 1978Google Scholar
  3. BJOERNER D., JONES C.B. Formal Specification and Software Development, Prentice Hall Int. 1982Google Scholar
  4. BJOERNER D., OEST O.N. (eds.) Towards a Formal Description of ADA, LNCS 98, Springer 1980Google Scholar
  5. BLIKLE A. Proving programs by sets of computations, MFCS Proc. Symp. Warsaw-Jadwisin 1974, LNCS 28, Springer 1975, 313–358Google Scholar
  6. BLIKLE A. Noninitial algebraic semantics, Proc. conf. Nyborg 1984, to be published by North HollandGoogle Scholar
  7. BLIKLE A. Denotational constructors, a manuscript 1986Google Scholar
  8. BLIKLE A., TARLECKI A. Naive denotational semantics, in: Information Processing 83 (Proc. IFIP Congress 1983, R.E.A.Manson ed.), North Holland 1983Google Scholar
  9. BROOKES S.D., HOARE C.A.R., ROSCOE A.W. A theory of communicating sequential processes, J.ACM 31 (1984), 560–599Google Scholar
  10. COHN P.M. Universal Algebra, D.Reidel Publishing Company 1981Google Scholar
  11. DERSHOWITZ N. Computing with rewrite systems, Information and Control 65 (1985), 122–157Google Scholar
  12. EHRIG H., MAHR B. Fundamentals of Algebraic Specification 1, Springer 1985Google Scholar
  13. GOGUEN J.A. Abstract errors for abstract data types, in: Formal Description of Programming Concepts (Proc. IFIP TC-2 Working Conf. 1977, ed. E.Neuhold), North-Holland 1978Google Scholar
  14. GOGUEN J., MESEGUER J., PLAISTED D. Programming with perameterized abstract objects in OBJ, in: Theory and Practice of Software Technology, North Holland 1983, 163–194Google Scholar
  15. GOGUEN J.A., THATCHER J.W., WAGNER E.G., WRIGHT J.B. Initial algebra semantics and continuous algebras, J. ACM 24 (1974), 68–95Google Scholar
  16. GORDON M.J.C. The Denotational Description of Programming Languages, Springer 1979Google Scholar
  17. HARRISON M.A. Introduction to Formal Language Theory, Addison-Wesley Publishing Company 1978Google Scholar
  18. HOARE C.A.R. Communicating Sequential Processes, Prentice Hall Int.1985Google Scholar
  19. INMOS Ltd. OCCAM™ Programming Manual, Prentice-Hall Int. 1984Google Scholar
  20. MAGGIOLO-SCHETTINI A., WINKOWSKI J. An algebra of processes, Journal of Computer and System Science, to appearGoogle Scholar
  21. MAZURKIEWICZ A. Recursive algorithms and formal languages, Bull. Acad. Polon. Sci., Sér. Sci. Math. Astronom. et Phys. 20 (1972), 799–803Google Scholar
  22. MAZURKIEWICZ A. Semantics of concurrent systems: a modular fixed-point trace approach, Advances in Petri Nets 1984 (G.Rozenberg ed.), LNCS 188, Springer 1984, 352–371Google Scholar
  23. MESEGUER J., GOGUEN A.J. Initiality, induction and computability, in: Application of Algebra to Language Definition and Compilation, (M.Nivat, J.Reynolds eds.), Cambridge Univ. Press 1985, 459–541Google Scholar
  24. MOSSES P. The mathematical semantics of Algol 60, Technical Monograph PRG-12, Oxford University 1974Google Scholar
  25. MCCARTHY J. A basis for a mathematical theory of computation, Western Joint Computer Conf. 1961, since then published in Computer Programming and Formal Systems (P. Braffort, D. Hirschberg eds.), North-Holland, Amstardam 1967, 33–70Google Scholar
  26. SCOTT D., STRACHEY Ch. Toward a mathematical semantics for computer languages, Technical Monograph PRG-6, Oxford University 1971Google Scholar
  27. STOY J.E. Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory, The MIT Press, Cambridge Mass. 1977Google Scholar
  28. TENNENT R.D. The denotational semantics of programming languages, Communication of ACM, Vol.19 (1976), 437–453Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Andrzej Blikle
    • 1
  1. 1.Project MetaSoft Institute of Computer Science Polish Academy of Sciences PKiNWarsaw

Personalised recommendations