Action Algebras and Model Algebras in Denotational Semantics
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  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.
KeywordsSemantic Function Semantic Description Action Semantic Denotational Semantic Semantic Domain
Unable to display preview. Download preview PDF.
- 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.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
- 6.Lee, P.: Realistic Compiler Generation. MIT Press, Cambridge (1989)Google Scholar
- 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
- 10.Mosses, P.D.: The Operational Semantics of Action Semantics. DAIMI PB-418, Computer Science Department Aarhus University (1992)Google Scholar
- 11.Palsberg, J.: Provably Correct Compiler Generation. Ph.D. Thesis Aarhus University (1992)Google Scholar
- 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