Abstract
We describe a method that automatically extracts a type checking semantics, encoded as a set of type inference rules, from an action semantics definition of a programming language. The type inference rules are guaranteed to enforce strong typing, since they are based on an underlying metasemantics for action semantics, which uses typing functions and natural transformations to give meaning. Next, we use the type checking semantics to extract a dynamic semantics definition from the original action semantics definition. We present an example.
Partially supported by NSF Grants CCR-8822378 and CCR-9102625.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
R. Barbuti and A. Martelli. A structured approach to static semantics correctness. Science of Computer Programming, 3:279–311, 1983.
Heuk Barendregt and Kees Hermerik. Types in lambda calculi and programming languages. In Neil D. Jones, editor, ESOP90, Proceedings of European Symposium on Programming, pages 1–35. Lecture Notes in Computer Science 432, Springer-Verlag, 1990.
D. Bjørner and O.N. Oest, editors. Towards a formal description of ADA. Lecture Notes in Computer Science 98. Springer, Berlin, 1980.
Deryck Brown, Hermano Moura, and David Watt. Towards a realistic semantics-directed compiler generator. In Proceedings of Glasgow Functional Programming Workshop, Isle of Skye, Scotland, 1991.
Luca Cardelli and Peter Wegner. On understanding types, data abstraction, and polymorphism. Computing Surveys, 17(4):471–522, 1985.
Charles Consel and Olivier Danvy. Static and dynamic semantics processing. In Proceedings of the 18th Annual ACM Symposium on Principles of Programming Languages, pages 14–24, 1991.
Luis Damas and Robin Milner. Principal type-schemes for functional programs. In Proceedings of the 9th Annual ACM Symposium on Principles of Programming Languages, pages 207–212, 1982.
N.G. de Bruijn. The Mathematical Language AUTOMATH, its usage, and some of its extensions, pages 29–61. Lecture Notes in Mathematics 125. Springer, Berlin, 1970.
Kyung-Goo Doh. Action semantics-directed prototyping. PhD thesis, Kansas State University, Manhattan, Kansas, USA, forthcoming.
J. Donahue. Complementary Definitions of Programming Language Semantics. Lecture Notes in Computer Science 42. Springer-Verlag, 1976.
A.P. Ershov. On the essence of compilation. In Formal Description of Programming Concepts, pages 391–420. IFIP, North-Holland, Amsterdam, 1978.
Susan Even and David A. Schmidt. Category-sorted algebra-based action semantics. Theoretical Computer Science, 77:71–95, 1990.
Susan Even and David A. Schmidt. Type inference for action semantics. In Neil D. Jones, editor, ESOP90, Proceedings of European Symposium on Programming, pages 118–133. Lecture Notes in Computer Science 432, Springer-Verlag, 1990.
Y. Futamura. Partial evaluation of computation process — an approach to a compiler-compiler. Systems, Computers, Controls, 2(5):45–50, 1971.
Neil D. Jones, Peter Sestoft, and Harald Sondergaard. Mix: a self-applicable partial evaluator for experiments in compiler generation. Journal of LISP and Symbolic Computation, 2(1):9–50, 1989.
Peter Lee. Realistic Compiler Generation. The MIT Press, Cambridge, Massachusetts, 1989.
Peter Lee and Uwe F. Pleban. A realistic compiler generator based on high-level semantics. In Proceedings of the 14th Annual ACM Symposium on Principles of Programming Languages, pages 284–295, 1987.
John C. Mitchell and Robert Harper. The essence of ML. In POPL88, Proceedings of the 15th Annual ACM Symposium on Principles of Programming Languages, pages 28–46. ACM, 1988.
Margaret Montenyohl and Mitchell Wand. Correct flow analysis in continuation semantics. In Conference Record of the 15th Annual ACM Symposium on Principles of Programming Languages, pages 204–218, 1988.
Peter D. Mosses. Abstract semantic algebras. In Formal Description of Programming Concepts II, Proceedings of the IFIP TC2 Working Conference, Garmisch-Partenkirchen, 1982, pages 45–72. IFIP, North-Holland, Amsterdam, 1983.
Peter D. Mosses. Unified algebras and action semantics. In STACS89, Proceedings of Symposium on Theoretical Aspects Computer Science, Paderborn. No. 349, Lecture Notes in Computer Science, Springer-Verlag, 1989.
Peter D. Mosses. Unified algebras and institutions. In LICS89, Proceedings of the 4th Annual Symposium on Logic in Computer Science, pages 304–312. IEEE, 1989.
Peter D. Mosses. Unified algebras and modules. In POPL89, Proceedings of the 16th Annual ACM Symposium on Principles of Programming Languages, pages 329–343. ACM, 1989.
Peter D. Mosses. An introduction to action semantics. In Lecture Notes for the Marktoberdorf Summer School, 1991.
Peter D. Mosses. Action Semantics. Tracts in Theoretical Computer Science. Cambridge University Press, Newton, Massachusetts, 1992.
Peter D. Mosses and David A. Watt. The use of action semantics. In Formal Description of Programming Concepts III. IFIP, North-Holland, Amsterdam, 1987.
P. Naur. Revised report on the algorithmic language Algol 60. Communications of the ACM, 6(1):1–17, 1963.
Flemming Nielson and Hanne Riis Nielson. Code generation from two level denotational meta-languages. In Neil D. Jones, editor, Programs as Data Objects, pages 192–205. Lecture Notes in Computer Science 217, Springer-Verlag, 1986.
Flemming Nielson and Hanne Riis Nielson. Pragmatic aspects of two-level denotational metalanguages. In Neil D. Jones, editor, ESOP86, Proceedings of European Symposium on Programming, pages 133–143. Lecture Notes in Computer Science 213, Springer-Verlag, 1986.
John Reynolds. Using category theory to design implicit conversions and generic operators. In Neil D. Jones, editor, Semantics-Directed Compiler Generation, pages 211–258. Lecture Notes in Computer Science 94, Springer-Verlag, 1980.
John Reynolds. The essence of Algol. In J. deBakker and J.C. van Vliet, editors, Algorithmic Languages, pages 345–372. North-Holland, Amsterdam, 1981.
John Reynolds. Semantics as a design tool. Course lecture notes, Computer Science Dept., Carnegie-Mellon University, Pittsburgh, PA, 1988.
David A. Schmidt. Denotational Semantics — A Methodology for Language Development. Allyn and Bacon, Newton, Massachusetts, 1986.
Robert D. Tennent. Principles of Programming Languages. Prentice-Hall International, Englewood Cliffs, New Jersey, 1981.
V.F. Turchin. The concept of a supercompiler. ACM Transactions on Programming Languages and Systems, 8(3):292–325, 1986.
David A. Watt. Programming Language Syntax and Semantics. Prentice-Hall International, Englewood Cliffs, New Jersey, 1991.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Doh, KG., Schmidt, D.A. (1992). Extraction of strong typing laws from action semantics definitions. In: Krieg-Brückner, B. (eds) ESOP '92. ESOP 1992. Lecture Notes in Computer Science, vol 582. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-55253-7_9
Download citation
DOI: https://doi.org/10.1007/3-540-55253-7_9
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55253-6
Online ISBN: 978-3-540-46803-5
eBook Packages: Springer Book Archive