Constructive Action Semantics for Core ML

Usually, the majority of language constructs found in a programming language can also be found in many other languages, because language design is based on reuse. This should be reflected in the way we give semantics to programming languages. It can be achieved by making a language description consist of a collection of modules, each defining a single language construct. The description of a single language construct should be language independent, so that it can be reused in other descriptions without any changes. We call a language description framework 'constructive' when it supports independent description of individual constructs. We present a case study in constructive semantic description. The case study is a description of Core ML, consisting of a mapping from it to BAS (Basic Abstract Syntax) and action semantic descriptions of the individual BAS constructs. The latter are written in ASDF (Action Semantics Definition Formalism), a formalism specially designed for writing action semantic descriptions of single language constructs. Tool support is provided by the ASF+SDF Meta-Environment and by the Action Environment, which is a new extension of the ASF+SDF Meta-Environment.

[1]  Christian Kirkegaard,et al.  A Runtime System for XML Transformations in Java , 2004, XSym.

[2]  John H. Reppy,et al.  Concurrent programming in ML , 1999 .

[3]  Jørgen Iversen Type Checking Semantic Functions in ASDF , 2004 .

[4]  Peter D. Mosses Action Semantics , 1986, ADT.

[5]  Peter D. Mosses,et al.  The use of action semantics , 1986, Formal Description of Programming Concepts.

[6]  Philipp Gerhardy,et al.  Strongly uniform bounds from semi-constructive proofs , 2004, Ann. Pure Appl. Log..

[7]  Peter D. Mosses,et al.  An Action Environment , 2004, LDTA@ETAPS.

[8]  Philipp Gerhardy A Quantitative Version of Kirk's Fixed Point Theorem for Asymptotic Contractions , 2004 .

[9]  Peter D. Mosses,et al.  Theory and Practice of Action Semantics , 1996, MFCS.

[10]  Paul Klint,et al.  Semantics of programming languages: a tool-oriented approach , 1999, SIGP.

[11]  Arie van Deursen,et al.  The ASF+SDF Meta-environment: A Component-Based Language Development Environment , 2001 .

[12]  Anders Møller,et al.  The Design Space of Type Checkers for XML Transformation Languages , 2004, ICDT.

[13]  Martin A. Musicante,et al.  An Action Semantics for ML Concurrency Primitives , 1994 .

[14]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[15]  Peter D. Mosses,et al.  Composing programming languages by combining action-semantics modules , 2001, Sci. Comput. Program..

[16]  Arie van Deursen,et al.  The Asf+Sdf Meta-Environment: a Component-Based Language Development Environment , 2001, LDTA@ETAPS.

[17]  Olivier Danvy,et al.  An Operational Foundation for Delimited Continuations in the CPS Hierarchy , 2005, Log. Methods Comput. Sci..

[18]  Arie van Deursen,et al.  Language Prototyping: An Algebraic Specification Approach , 1996, AMAST Series in Computing.

[19]  Robin Milner,et al.  Definition of standard ML , 1990 .

[20]  David A. Watt Programming language syntax and semantics , 1991, Prentice Hall International Series in Computer Science.