The Expressive Power of Structural Operational Semantics with Explicit Assumptions

We explore the expressive power of the formalism called Natural Operational Semantics, NOS, introduced by Burstall and Honsell for defining the operational semantics of programming languages. This formalism is derived from the Natural Semantics of Despeyroux and Kahn. It arises if we take seriously the possibility of deriving assertions in Natural Semantics under assumptions, i.e. using hypothetico-general premises in the sense of Martin-Lof. We investigate to what extent we can reduce to hypothetical premises the notions of store and environment of Plotkin's Structural Operational Semantics. We use this formalism to define the semantics of a functional language which features commands, blocks, procedures, complex declarations, structures and Abstract Data Types. We give the NOS together with the denotational semantics and prove the adequacy of the former w.r.t. the latter. We discuss some other difficulties which arose in the previous treatment of variables in connection with procedures.

[1]  M.N. Sastry,et al.  Structure and interpretation of computer programs , 1986, Proceedings of the IEEE.

[2]  G. Kreisel The Collected Papers of Gerhard Gentzen , 1971 .

[3]  Frank Pfenning,et al.  Natural Semantics and Some of Its Meta-Theory in Elf , 1992, ELP.

[4]  James H. Morris,et al.  Types are not sets , 1973, POPL.

[5]  F. Honsell,et al.  Operational semantics in a natural deduction setting , 1991 .

[6]  Rudolf Carnap,et al.  Notes on semantics , 1972 .

[7]  Arnon Avron,et al.  Simple Consequence Relations , 1988, Inf. Comput..

[8]  Frank Pfenning,et al.  Elf: a language for logic definition and verified metaprogramming , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[9]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.

[10]  Gerald J. Sussman,et al.  Structure and interpretation of computer programs , 1985, Proceedings of the IEEE.

[11]  Bengt Nordström,et al.  Programming in Martin-Lo¨f's type theory: an introduction , 1990 .

[12]  John Hannan,et al.  Proof-Theoretic Methods for Analysis of Functional Programs , 1989 .

[13]  Gerhard Gentzen,et al.  Investigations into Logical Deduction , 1970 .

[14]  Bengt Nordström,et al.  Programming in Martin-Löf's Type Theory , 1990 .

[15]  John Hannan,et al.  Compiler verification in LF , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[16]  Peter D. Mosses,et al.  Denotational semantics , 1995, LICS 1995.

[17]  Furio Honsell,et al.  A framework for defining logics , 1993, JACM.

[18]  Joëlle Despeyroux,et al.  Proof of Translation in Natural Semantics , 1986, LICS.

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

[20]  Samuel B. Williams,et al.  ASSOCIATION FOR COMPUTING MACHINERY , 2000 .

[21]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[22]  Eugenio Moggi,et al.  Notions of Computation and Monads , 1991, Inf. Comput..

[23]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.