Home

Observable sequentiality and full abstraction


Author(s) : Matthias Felleisen Robert Cartwright, 
Publisher : N/A
Publication Date : 1992
ISSN : N/A
Abstract : One of the major challenges in denotational semantics is the construction of fully abstract models for sequential programming languages. For the past fifteen years, research on this problem has focused on developing models for PCF, an idealized functional programming language based on the typed lambda calculus. Unlike most practical languages, PCF has no facilities for observing and exploiting the evaluation order of arguments in procedures. Since we believe that such facilities are crucial for understanding the nature of sequential computation, this paper focuses on a sequential extension of PCF (called SPCF) that includes two classes of control operators: error generators and escape handlers. These model for SPCF that interprets higher types as sets of error-sensitive functions instead of continuous functions. The error-sensitive functions form a Scott domain that is isomorphic to a domain of decision trees. We believe that the same construction will yield fully abstract models for functional languages with different control operators for observing the order of evaluation. 1 Full Abstraction and Sequentiality A denotational semantics for a programming language determines two natural equivalence relations on program phrases. The first relation, denotational equivalence, equates two phrases if and only if they denote the same element in the model. The second relation, observational equivalence, equates two phrases if and only if they have the same "observable behavior". In the denotational framework, observable behavior refers to the concrete output produced by entire programs. Thus, two phrases are observationally equivalent if and,