Fully Abstract Semantics for Observably Sequential Languages

Abstract One of the major challenges in denotational semantics is the construction of a fully abstract semantics for a higher-order sequential programming language. For the past fifteen years, research on this problem has focused on developing a semantics for PCF, an idealized functional programming language based on the typed λ-calculus. Unlike most practical languages, PCF has no facilities for observing and exploiting the evaluation order of arguments to procedures. Since we believe that these facilities play a crucial role in sequential computation, this paper focuses on a sequential extension of PCF, called SPCF, that includes two classes of control operators: a possibly empty set of error generators and a collection of catch and throw constructs. For each set of error generators, the paper presents a fully abstract semantics for SPCF. If the set of error generators is empty, the semantics interprets all procedures-including catch and throw-as Berry-Curien sequential algorithms. If the language contains error generators, procedures denote manifestly sequential functions. The manifestly sequential functions form a Scott domain that is isomorphic to a domain of decision trees, which is the natural extension of the Berry-Curien domain of sequential algorithms in the presence of errors.

[1]  Matthias Felleisen,et al.  The theory and practice of first-class prompts , 1988, POPL '88.

[2]  Matthias Felleisen,et al.  SPCF: Its Model, Calculus, and Computational Power (Preliminary Version) , 1992, REX Workshop.

[3]  Matthias Felleisen,et al.  Observable sequentiality and full abstraction , 1992, POPL '92.

[4]  Alley Stoughton,et al.  Studying the Fully Abstract Model of PCF within its Continuous Function Model , 1993, TLCA.

[5]  Pierre-Louis Curien On the Symmetry of Sequentiality , 1993, MFPS.

[6]  K. Mulmuley Full Abstraction and Semantic Equivalence , 1987 .

[7]  Dana S. Scott,et al.  Some Domain Theory and Denotational Semantics in Coq , 2009, TPHOLs.

[8]  Albert R. Meyer,et al.  Towards a fully abstract semantics for local variables: Preliminary report , 1988 .

[9]  Gerard Berry,et al.  Theory and practice of sequential algorithms: the kernel of the applicative language CDS , 1986 .

[10]  Matthias Felleisen,et al.  A Syntactic Theory of Sequential Control , 1987, Theor. Comput. Sci..

[11]  Albert R. Meyer,et al.  Full Abstraction and the Context Lemma , 1991, TACS.

[12]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[13]  Kurt Sieber,et al.  Relating Full Abstraction Results for Different Programming Languages , 1990, FSTTCS.

[14]  Robin Milner,et al.  Fully Abstract Models of Typed lambda-Calculi , 1977, Theor. Comput. Sci..

[15]  Pierre-Louis Curien,et al.  Sequential Algorithms on Concrete Data Structures , 1982, Theor. Comput. Sci..

[16]  P.-L. Curien Applications of Categories in Computer Science: Sequentiality and full abstraction , 1992 .

[17]  Matthias Felleisen,et al.  Reasoning with continuations II: full abstraction for models of control , 1990, LISP and Functional Programming.

[18]  Gerald Jay Sussman,et al.  The Revised Report on SCHEME: A Dialect of LISP. , 1978 .

[19]  Robert Hieb,et al.  The Revised Report on the Syntactic Theories of Sequential Control and State , 1992, Theor. Comput. Sci..

[20]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[21]  Alley Stoughton,et al.  Fully abstract models of programming languages , 1986, Research Notes in Theoretical Computer Science.

[22]  Matthias Felleisen,et al.  Control operators, the SECD-machine, and the λ-calculus , 1987, Formal Description of Programming Concepts.

[23]  Pierre-Louis Curien Categorical Combinators, Sequential Algorithms, and Functional Programming , 1993, Progress in Theoretical Computer Science.

[24]  J. Vuillemin Proof techniques for recursive programs , 1973 .

[25]  V. Yu. Sazonov Expressibility of functions in D. Scott's LCF language , 1976 .

[26]  Jean-Jacques Lévy,et al.  Full abstraction for sequential languages : The states of the art , 1983 .

[27]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[28]  Dana S. Scott,et al.  Lectures on a Mathematical Theory of Computation , 1982 .

[29]  Pierre-Louis Curien Observable algorithms on concrete data structures , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.