Results 1 
5 of
5
Notions of computability at higher types I
 In Logic Colloquium 2000
, 2005
"... We discuss the conceptual problem of identifying the natural notions of computability at higher types (over the natural numbers). We argue for an eclectic approach, in which one considers a wide range of possible approaches to defining higher type computability and then looks for regularities. As a ..."
Abstract

Cited by 19 (5 self)
 Add to MetaCart
(Show Context)
We discuss the conceptual problem of identifying the natural notions of computability at higher types (over the natural numbers). We argue for an eclectic approach, in which one considers a wide range of possible approaches to defining higher type computability and then looks for regularities. As a first step in this programme, we give an extended survey of the di#erent strands of research on higher type computability to date, bringing together material from recursion theory, constructive logic and computer science. The paper thus serves as a reasonably complete overview of the literature on higher type computability. Two sequel papers will be devoted to developing a more systematic account of the material reviewed here.
Notions of computability at higher types II
 In preparation
, 2001
"... ntroduce some simple general theory to allow us to talk about notions of highertype computable functional. The following definitions (with minor variations) appear frequently in the literature. Definition 1.1 (Weak partial type structures) A weak partial type structure, or weak PTS A [over a set X ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
(Show Context)
ntroduce some simple general theory to allow us to talk about notions of highertype computable functional. The following definitions (with minor variations) appear frequently in the literature. Definition 1.1 (Weak partial type structures) A weak partial type structure, or weak PTS A [over a set X], consists of the following data: . for each type #, a set A # of elements of type # [equipped with a canonical bijection A 0 # = X], . for each #, # , a partial application function ## : A ### A # # A # . We usually omit type subscripts from application operations, and often write x y simply as xy. By convention, w
Semantic Orthogonality of Type Disciplines
, 1997
"... We consider a version of PCF, and prove, using both syntactic and semantic means, that the operational equivalences of the base language are preserved when the language is extended with sum and product types, with polymorphic types, and with recursive types. These theorems show that the additions to ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We consider a version of PCF, and prove, using both syntactic and semantic means, that the operational equivalences of the base language are preserved when the language is extended with sum and product types, with polymorphic types, and with recursive types. These theorems show that the additions to the type systems are orthogonal to the original language. 1 Introduction Type systems for programming languages are rarely monolithic: although a type system may be composed of many parts, each part can usually be understood on its own. Consider, for instance, the programming language Standard ML (SML) [22]. SML's type system includes base types of integers, reals, strings, and characters, and type constructors for lists, functions, tuples, references, exceptions, userdefined recursive datatypes, and polymorphism. On a syntactic level, the type rules of the parts do not interfere with one another: the typechecking rule for application, for example, uses only the fact that the operator is...
LOGIC & COMPUTATION 38
, 1991
"... We examine the problem of finding fully abstract translations between programming languages, i.e., translations that preserve code equivalence and nonequivalence. We present three examples of fully abstract translations: one from callbyvalue to lazy PCF, one from callbyname to callbyvalue PCF, ..."
Abstract
 Add to MetaCart
(Show Context)
We examine the problem of finding fully abstract translations between programming languages, i.e., translations that preserve code equivalence and nonequivalence. We present three examples of fully abstract translations: one from callbyvalue to lazy PCF, one from callbyname to callbyvalue PCF, and one from lazy to callbyvalue PCF. The translations yield upper and lower bounds on decision procedures for proving equivalences of code. We finally define a notion of "functional translation " that captures the essence of the proofs of full abstraction, and show that some languages cannot be translated into others. 1