Skip to main content

Action Algebras and Model Algebras in Denotational Semantics

  • Chapter
  • 405 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5700))

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.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Doh, K.-G., Schmidt, D.A.: Action Semantics-Directed Prototyping. Computer Language 19(4), 213–233 (1993)

    Article  Google Scholar 

  2. Ehrig, H., Mahr, B.: Fundamentals of Algebraic Specification 2. EATCS Monographs in Theoretical Computer Science. Springer, Heidelberg (1990)

    Book  MATH  Google Scholar 

  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 

  5. Goguen, J., Malcolm, G.: Algebraic Semantics of Imperative Programs. MIT Press, Cambridge (1996)

    MATH  Google Scholar 

  6. Lee, P.: Realistic Compiler Generation. MIT Press, Cambridge (1989)

    Google Scholar 

  7. Mosses, P.D.: Action Semantics. Cambridge tracts in Computer Science, vol. (26). Cambridge University Press, Cambridge (1992)

    Book  MATH  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 

  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)

    Chapter  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 

  13. Goguen, J.: A Hidden Agenda. Theoretical Computer Science 245, 55–101 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  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)

    Chapter  Google Scholar 

  15. Nielson, F., Nielson, H.R.: Two-level semantics and code generation. Theoretical Computer Science 56, 59–133 (1988)

    Article  MathSciNet  MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics