Action Algebras and Model Algebras in Denotational Semantics

  • Luiz Carlos Castro Guedes
  • Edward Hermann Haeusler
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5700)


This article describes some results concerning the conceptual separation of model dependent and language inherent aspects in a denotational semantics of a programming language. Before going into the technical explanation, the authors wish to relate a story that illustrates how correctly and precisely posed questions can influence the direction of research. By means of his questions, Professor Mosses aided the PhD research of one of the authors of this article and taught the other, who at the time was a novice supervisor, the real meaning of careful PhD supervision. The student’s research had been partially developed towards the implementation of programming languages through denotational semantics specification, and the student had developed a prototype [12] that compared relatively well to some industrial compilers of the PASCAL language. During a visit to the BRICS lab in Aarhus, the student’s supervisor gave Professor Mosses a draft of an article describing the prototype and its implementation experiments. The next day, Professor Mosses asked the supervisor, “Why is the generated code so efficient when compared to that generated by an industrial compiler?” and “You claim that the efficiency is simply a consequence of the Object- Orientation mechanisms used by the prototype programming language (C++); this should be better investigated. Pay more attention to the class of programs that might have this good comparison profile.” As a result of these aptly chosen questions and comments, the student and supervisor made great strides in the subsequent research; the advice provided by Professor Mosses made them perceive that the code generated for certain semantic domains was efficient because it mapped to the “right aspect” of the language semantics. (Certain functional types, used to represent mappings such as Stores and Environments, were pushed to the level of the object language (as in gcc). This had the side-effect of generating code for arrays in the same way as that for functional denotational types. For example, PASCAL arrays belong to the “language inherent” aspect, while the Store domain seems to belong to the “model dependent” aspect. This distinction was important because it focussed attention on optimizing the model dependent semantic domains to obtain a more efficient implementation.) The research led to a nice conclusion: The guidelines of Action Semantics induce a clear separation of the model and language inherent aspects of a language’s semantics. A good implementation of facets, particularly the model dependent ones, leads to generation of an efficient compiler. In this article we discuss the separation of the language inherent and model-inherent domains at the theoretical and conceptual level. In doing so, the authors hope to show how Professor Mosses’s influence extended beyond his technical advice to his professional and personal examples on the supervision of PhD research.


Semantic Function Semantic Description Action Semantic Denotational Semantic Semantic Domain 
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. 1.
    Doh, K.-G., Schmidt, D.A.: Action Semantics-Directed Prototyping. Computer Language 19(4), 213–233 (1993)CrossRefGoogle Scholar
  2. 2.
    Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification 2. EATCS Monographs in Theoretical Computer Science. Springer, Heidelberg (1990)CrossRefzbMATHGoogle Scholar
  3. 3.
    Guedes, L.C.C.: An Objected Oriented Model for Semantics Directed Compiler Generation. D.Sc. Thesis PUC-RIO (1995) (in Portuguese)Google Scholar
  4. 4.
    Goguen, J.A., Thatcher, J.W., Wagner, E.G.: An Initial Algebra Approach to the Specification, Correctness, and Implementation of Abstract Data Types. In: Current Trends in Programming Methodology, vol. 4, Prentice-Hall, Englewood Cliffs (1979)Google Scholar
  5. 5.
    Goguen, J., Malcolm, G.: Algebraic Semantics of Imperative Programs. MIT Press, Cambridge (1996)zbMATHGoogle Scholar
  6. 6.
    Lee, P.: Realistic Compiler Generation. MIT Press, Cambridge (1989)Google Scholar
  7. 7.
    Mosses, P.D.: Action Semantics. Cambridge tracts in Computer Science, vol. (26). Cambridge University Press, Cambridge (1992)CrossRefzbMATHGoogle Scholar
  8. 8.
    Mosses, P.D.: Abstract Semantic Algebras. In: Proc. of the IFIP Conference on Formal Description of Programming Concepts II, pp. 45–70. North-Holland Publishing Co., Amsterdam (1983)Google Scholar
  9. 9.
    Mosses, P.D.: Basic Abstract Semantic Algebras. In: Plotkin, G., MacQueen, D.B., Kahn, G. (eds.) Semantics of Data Types 1984. LNCS, vol. 173, pp. 87–107. Springer, Heidelberg (1984)CrossRefGoogle Scholar
  10. 10.
    Mosses, P.D.: The Operational Semantics of Action Semantics. DAIMI PB-418, Computer Science Department Aarhus University (1992)Google Scholar
  11. 11.
    Palsberg, J.: Provably Correct Compiler Generation. Ph.D. Thesis Aarhus University (1992)Google Scholar
  12. 12.
    Pleban, U.F., Lee, P.: On the Use of LISP in Implementing Denotational Semantics. In: Proc. ACM Conf on LISP and Functional Programmming, pp. 233–248 (1986)Google Scholar
  13. 13.
    Goguen, J.: A Hidden Agenda. Theoretical Computer Science 245, 55–101 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  14. 14.
    Guedes, L.C., Haeusler, E.H., Rangel, J.L.: Object Oriented Semantics Directed Compiler Generation: A Prototype. In: Mosses, P.D., Schwartzbach, M.I., Nielsen, M. (eds.) TAPSOFT 1995. LNCS, vol. 915, pp. 807–808. Springer, Heidelberg (1995)CrossRefGoogle Scholar
  15. 15.
    Nielson, F., Nielson, H.R.: Two-level semantics and code generation. Theoretical Computer Science 56, 59–133 (1988)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Luiz Carlos Castro Guedes
    • 1
  • Edward Hermann Haeusler
    • 2
  1. 1.Instituto de ComputaçãoUFFNiteroiBrasil
  2. 2.Departamento de InformáticaPUC-RioRio de JaneiroBrasil

Personalised recommendations