Introduction
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Doh, K.-G., Schmidt, D.A.: Action Semantics-Directed Prototyping. Computer Language 19(4), 213–233 (1993)
Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification 2. EATCS Monographs in Theoretical Computer Science. Springer, Heidelberg (1990)
Guedes, L.C.C.: An Objected Oriented Model for Semantics Directed Compiler Generation. D.Sc. Thesis PUC-RIO (1995) (in Portuguese)
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)
Goguen, J., Malcolm, G.: Algebraic Semantics of Imperative Programs. MIT Press, Cambridge (1996)
Lee, P.: Realistic Compiler Generation. MIT Press, Cambridge (1989)
Mosses, P.D.: Action Semantics. Cambridge tracts in Computer Science, vol. (26). Cambridge University Press, Cambridge (1992)
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)
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)
Mosses, P.D.: The Operational Semantics of Action Semantics. DAIMI PB-418, Computer Science Department Aarhus University (1992)
Palsberg, J.: Provably Correct Compiler Generation. Ph.D. Thesis Aarhus University (1992)
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)
Goguen, J.: A Hidden Agenda. Theoretical Computer Science 245, 55–101 (2000)
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)
Nielson, F., Nielson, H.R.: Two-level semantics and code generation. Theoretical Computer Science 56, 59–133 (1988)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Guedes, L.C.C., Haeusler, E.H. (2009). Action Algebras and Model Algebras in Denotational Semantics. In: Palsberg, J. (eds) Semantics and Algebraic Specification. Lecture Notes in Computer Science, vol 5700. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-04164-8_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-04164-8_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-04163-1
Online ISBN: 978-3-642-04164-8
eBook Packages: Computer ScienceComputer Science (R0)