Results 1  10
of
93
The Lazy Lambda Calculus
 Research Topics in Functional Programming
, 1990
"... Introduction The commonly accepted basis for functional programming is the calculus; and it is folklore that the calculus is the prototypical functional language in puri ed form. But what is the calculus? The syntax is simple and classical; variables, abstraction and application in the pure cal ..."
Abstract

Cited by 239 (3 self)
 Add to MetaCart
Introduction The commonly accepted basis for functional programming is the calculus; and it is folklore that the calculus is the prototypical functional language in puri ed form. But what is the calculus? The syntax is simple and classical; variables, abstraction and application in the pure calculus, with applied calculi obtained by adding constants. The further elaboration of the theory, covering conversion, reduction, theories and models, is laid out in Barendregt's already classical treatise [Bar84]. It is instructive to recall the following crux, which occurs rather early in that work (p. 39): Meaning of terms: rst attempt The meaning of a term is its normal form (if it exists). All terms without normal forms are identi ed. This proposal incorporates such a simple and natural interpretation of the calculus as
Domain Theory in Logical Form
 Annals of Pure and Applied Logic
, 1991
"... The mathematical framework of Stone duality is used to synthesize a number of hitherto separate developments in Theoretical Computer Science: • Domain Theory, the mathematical theory of computation introduced by Scott as a foundation for denotational semantics. • The theory of concurrency and system ..."
Abstract

Cited by 231 (10 self)
 Add to MetaCart
The mathematical framework of Stone duality is used to synthesize a number of hitherto separate developments in Theoretical Computer Science: • Domain Theory, the mathematical theory of computation introduced by Scott as a foundation for denotational semantics. • The theory of concurrency and systems behaviour developed by Milner, Hennessy et al. based on operational semantics. • Logics of programs. Stone duality provides a junction between semantics (spaces of points = denotations of computational processes) and logics (lattices of properties of processes). Moreover, the underlying logic is geometric, which can be computationally interpreted as the logic of observable properties—i.e. properties which can be determined to hold of a process on the basis of a finite amount of information about its execution. These ideas lead to the following programme:
Full Abstraction for PCF
 Information and Computation
, 1996
"... An intensional model for the programming language PCF is described, in which the types of PCF are interpreted by games, and the terms by certain "historyfree" strategies. This model is shown to capture definability in PCF. More precisely, every compact strategy in the model is definable in a certai ..."
Abstract

Cited by 192 (14 self)
 Add to MetaCart
An intensional model for the programming language PCF is described, in which the types of PCF are interpreted by games, and the terms by certain "historyfree" strategies. This model is shown to capture definability in PCF. More precisely, every compact strategy in the model is definable in a certain simple extension of PCF. We then introduce an intrinsic preorder on strategies, and show that it satisfies some remarkable properties, such that the intrinsic preorder on function types coincides with the pointwise preorder. We then obtain an orderextensional fully abstract model of PCF by quotienting the intensional model by the intrinsic preorder. This is the first syntaxindependent description of the fully abstract model for PCF. (Hyland and Ong have obtained very similar results by a somewhat different route, independently and at the same time.) We then consider the effective version of our model, and prove a Universality Theorem: every element of the effective extensional model is definable in PCF. Equivalently, every recursive strategy is definable up to observational equivalence.
Games and Full Abstraction for the Lazy lambdacalculus
 In Proceedings, Tenth Annual IEEE Symposium on Logic in Computer Science
, 1995
"... ion for the Lazy calculus Samson Abramsky Guy McCusker Department of Computing Imperial College of Science, Technology and Medicine 180 Queen's Gate London SW7 2BZ United Kingdom Abstract We define a category of games G, and its extensional quotient E . A model of the lazy calculus, a typefre ..."
Abstract

Cited by 134 (9 self)
 Add to MetaCart
ion for the Lazy calculus Samson Abramsky Guy McCusker Department of Computing Imperial College of Science, Technology and Medicine 180 Queen's Gate London SW7 2BZ United Kingdom Abstract We define a category of games G, and its extensional quotient E . A model of the lazy calculus, a typefree functional language based on evaluation to weak head normal form, is given in G, yielding an extensional model in E . This model is shown to be fully abstract with respect to applicative simulation. This is, so far as we know, the first purely semantic construction of a fully abstract model for a reflexivelytyped sequential language. 1 Introduction Full Abstraction is a key concept in programming language semantics [9, 12, 23, 26]. The ingredients are as follows. We are given a language L, with an `observational preorder'  on terms in L such that P  Q means that every observable property of P is also satisfied by Q; and a denotational model MJ\DeltaK. The model M is then said to be f...
Stack Inspection: Theory and Variants
 ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
, 2001
"... Stack inspection is a security mechanism implemented in runtimes such as the JVM and the CLR to accommodate components with diverse levels of trust. Although stack inspection enables the finegrained expression of access control policies, it has rather a complex and subtle semantics. We present a ..."
Abstract

Cited by 90 (4 self)
 Add to MetaCart
Stack inspection is a security mechanism implemented in runtimes such as the JVM and the CLR to accommodate components with diverse levels of trust. Although stack inspection enables the finegrained expression of access control policies, it has rather a complex and subtle semantics. We present a formal semantics and an equational theory to explain how stack inspection a#ects program behaviour and code optimisations. We discuss the security properties enforced by stack inspection, and also consider variants with stronger, simpler properties.
Parametric Polymorphism and Operational Equivalence
 MATHEMATICAL STRUCTURES IN COMPUTER SCIENCE
, 2000
"... Studies of the mathematical properties of impredicative polymorphic types have for the most part focused on the polymorphic lambda calculus of Girard–Reynolds, which is a calculus of total polymorphic functions. This paper considers polymorphic types from a functional programming perspective, where ..."
Abstract

Cited by 75 (2 self)
 Add to MetaCart
Studies of the mathematical properties of impredicative polymorphic types have for the most part focused on the polymorphic lambda calculus of Girard–Reynolds, which is a calculus of total polymorphic functions. This paper considers polymorphic types from a functional programming perspective, where the partialness arising from the presence of fixpoint recursion complicates the nature of potentially infinite (‘lazy’) data types. An approach to Reynolds' notion of relational parametricity is developed that works directly on the syntax of a programming language, using a novel closure operator to relate operational behaviour to parametricity properties of types. Working with an extension of Plotkin's PCF with ∀types, lazy lists and existential types, we show by example how the resulting logical relation can be used to prove properties of polymorphic types up to operational equivalence.
Full Abstraction for PCF (Extended Abstract)
 THEORETICAL ASPECTS OF COMPUTER SOFTWARE. INTERNATIONAL SYMPOSIUM TACS'94, NUMBER 789 IN LECTURE NOTES IN COMPUTER SCIENCE
, 1994
"... The Full Abstraction Problem for PCF [23, 20, 7, 11] is one of the longeststanding problems in the semantics of programming languages. There is quite widespread agreement that it is one of the most difficult; there is much less agreement as to what exactly the problem is, or more particularly as ..."
Abstract

Cited by 66 (11 self)
 Add to MetaCart
The Full Abstraction Problem for PCF [23, 20, 7, 11] is one of the longeststanding problems in the semantics of programming languages. There is quite widespread agreement that it is one of the most difficult; there is much less agreement as to what exactly the problem is, or more particularly as to the precise criteria for a solution. The usual formulation is that one wants a "semantic characterization" of the fully abstract model (by which we mean the inequationally fully abstract orderextensional model, which Milner proved to be uniquely specified up to isomorphism by these properties [20]). The problem is to understand what should be meant by a "semantic characterization". Our view is that the essential content of the problem, what makes it important, is that it calls for a semantic characterization of sequential, functional computation at hig...
Game Theoretic Analysis Of CallByValue Computation
, 1997
"... . We present a general semantic universe of callbyvalue computation based on elements of game semantics, and validate its appropriateness as a semantic universe by the full abstraction result for callbyvalue PCF, a generic typed programming language with callbyvalue evaluation. The key idea is ..."
Abstract

Cited by 59 (20 self)
 Add to MetaCart
. We present a general semantic universe of callbyvalue computation based on elements of game semantics, and validate its appropriateness as a semantic universe by the full abstraction result for callbyvalue PCF, a generic typed programming language with callbyvalue evaluation. The key idea is to consider the distinction between callbyname and callbyvalue as that of the structure of information flow, which determines the basic form of games. In this way the callbyname computation and callbyvalue computation arise as two independent instances of sequential functional computation with distinct algebraic structures. We elucidate the type structures of the universe following the standard categorical framework developed in the context of domain theory. Mutual relationship between the presented category of games and the corresponding callbyname universe is also clarified. 1. Introduction The callbyvalue is a mode of calling procedures widely used in imperative and function...
Equational properties of mobile ambients
 MATHEMATICAL STRUCTURES IN COMPUTER SCIENCE
, 1999
"... ..."
Semantics of Types for Mutable State
, 2004
"... Proofcarrying code (PCC) is a framework for mechanically verifying the safety of machine language programs. A program that is successfully verified by a PCC system is guaranteed to be safe to execute, but this safety guarantee is contingent upon the correctness of various trusted components. For in ..."
Abstract

Cited by 55 (5 self)
 Add to MetaCart
Proofcarrying code (PCC) is a framework for mechanically verifying the safety of machine language programs. A program that is successfully verified by a PCC system is guaranteed to be safe to execute, but this safety guarantee is contingent upon the correctness of various trusted components. For instance, in traditional PCC systems the trusted computing base includes a large set of lowlevel typing rules. Foundational PCC systems seek to minimize the size of the trusted computing base. In particular, they eliminate the need to trust complex, lowlevel type systems by providing machinecheckable proofs of type soundness for real machine languages. In this thesis, I demonstrate the use of logical relations for proving the soundness of type systems for mutable state. Specifically, I focus on type systems that ensure the safe allocation, update, and reuse of memory. For each type in the language, I define logical relations that explain the meaning of the type in terms of the operational semantics of the language. Using this model of types, I prove each typing rule as a lemma. The major contribution is a model of System F with general references — that is, mutable cells that can hold values of any closed type including other references, functions, recursive types, and impredicative quantified types. The model is based on ideas from both possible worlds and the indexed model of Appel and McAllester. I show how the model of mutable references is encoded in higherorder logic. I also show how to construct an indexed possibleworlds model for a von Neumann machine. The latter is used in the Princeton Foundational PCC system to prove type safety for a fullfledged lowlevel typed assembly language. Finally, I present a semantic model for a region calculus that supports typeinvariant references as well as memory reuse. iii