Results 1  10
of
13
Definitional interpreters for higherorder programming languages
 Reprinted from the proceedings of the 25th ACM National Conference
, 1972
"... Abstract. Higherorder programming languages (i.e., languages in which procedures or labels can occur as values) are usually defined by interpreters that are themselves written in a programming language based on the lambda calculus (i.e., an applicative language such as pure LISP). Examples include ..."
Abstract

Cited by 299 (2 self)
 Add to MetaCart
Abstract. Higherorder programming languages (i.e., languages in which procedures or labels can occur as values) are usually defined by interpreters that are themselves written in a programming language based on the lambda calculus (i.e., an applicative language such as pure LISP). Examples include McCarthy’s definition of LISP, Landin’s SECD machine, the Vienna definition of PL/I, Reynolds ’ definitions of GEDANKEN, and recent unpublished work by L. Morris and C. Wadsworth. Such definitions can be classified according to whether the interpreter contains higherorder functions, and whether the order of application (i.e., call by value versus call by name) in the defined language depends upon the order of application in the defining language. As an example, we consider the definition of a simple applicative programming language by means of an interpreter written in a similar language. Definitions in each of the above classifications are derived from one another by informal but constructive methods. The treatment of imperative features such as jumps and assignment is also discussed.
Complete restrictions of the intersection type discipline
 Theoretical Computer Science
, 1992
"... In this paper the intersection type discipline as defined in [Barendregt et al. ’83] is studied. We will present two different and independent complete restrictions of the intersection type discipline. The first restricted system, the strict type assignment system, is presented in section two. Its m ..."
Abstract

Cited by 103 (40 self)
 Add to MetaCart
In this paper the intersection type discipline as defined in [Barendregt et al. ’83] is studied. We will present two different and independent complete restrictions of the intersection type discipline. The first restricted system, the strict type assignment system, is presented in section two. Its major feature is the absence of the derivation rule (≤) and it is based on a set of strict types. We will show that these together give rise to a strict filter lambda model that is essentially different from the one presented in [Barendregt et al. ’83]. We will show that the strict type assignment system is the nucleus of the full system, i.e. for every derivation in the intersection type discipline there is a derivation in which (≤) is used only at the very end. Finally we will prove that strict type assignment is complete for inference semantics. The second restricted system is presented in section three. Its major feature is the absence of the type ω. We will show that this system gives rise to a filter λImodel and that type assignment without ω is complete for the λIcalculus. Finally we will prove that a lambda term is typeable in this system if and only if it is strongly normalizable.
Principal type schemes for the strict type assignment system
 Logic and Computation
, 1993
"... We study the strict type assignment system, a restriction of the intersection type discipline [6], and prove that it has the principal type property. We define, for a term, the principal pair (of basis and type). We specify three operations on pairs, and prove that all pairs deducible for can be obt ..."
Abstract

Cited by 35 (19 self)
 Add to MetaCart
We study the strict type assignment system, a restriction of the intersection type discipline [6], and prove that it has the principal type property. We define, for a term, the principal pair (of basis and type). We specify three operations on pairs, and prove that all pairs deducible for can be obtained from the principal one by these operations, and that these map deducible pairs to deducible pairs.
HMF: Simple type inference for firstclass polymorphism
, 2008
"... HMF is a conservative extension of HindleyMilner type inference with firstclass polymorphism. In contrast to other proposals, HML uses regular System F types and has a simple type inference algorithm that is just a small extension of the usual DamasMilner algorithm W. Given the relative simplicit ..."
Abstract

Cited by 14 (0 self)
 Add to MetaCart
HMF is a conservative extension of HindleyMilner type inference with firstclass polymorphism. In contrast to other proposals, HML uses regular System F types and has a simple type inference algorithm that is just a small extension of the usual DamasMilner algorithm W. Given the relative simplicity and expressive power, we feel that HMF can be an attractive type system in practice. There is a reference implementation of the type system available online together with
A formal calculus for informal equality with binding
 In WoLLIC’07: 14th Workshop on Logic, Language, Information and Computation, volume 4576 of LNCS
, 2007
"... Abstract. In informal mathematical usage we often reason using languages with binding. We usually find ourselves placing captureavoidance constraints on where variables can and cannot occur free. We describe a logical derivation system which allows a direct formalisation of such assertions, along w ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
Abstract. In informal mathematical usage we often reason using languages with binding. We usually find ourselves placing captureavoidance constraints on where variables can and cannot occur free. We describe a logical derivation system which allows a direct formalisation of such assertions, along with a direct formalisation of their constraints. We base our logic on equality, probably the simplest available judgement form. In spite of this, we can axiomatise systems of logic and computation such as firstorder logic or the lambdacalculus in a very direct and natural way. We investigate the theory of derivations, prove a suitable semantics sound and complete, and discuss existing and future research. 1
Normalisation, Approximation, and Semantics for Combinator Systems
 Theoretical Computer Science
, 2003
"... This paper studies normalization of typeable terms and the relation between approximation semantics and filter models for Combinator Systems. It presents notions of approximants for terms, intersection type assignment, and reduction on type derivations; the last will be proved to be strongly normali ..."
Abstract

Cited by 12 (11 self)
 Add to MetaCart
This paper studies normalization of typeable terms and the relation between approximation semantics and filter models for Combinator Systems. It presents notions of approximants for terms, intersection type assignment, and reduction on type derivations; the last will be proved to be strongly normalizable. With this result, it is shown that, for every typeable term, there exists an approximant with the same type, and a characterization of the normalization behaviour of terms using their assignable types is given. Then the two semantics are defined and compared, and it is shown that the approximants semantics is fully abstract but the filter semantics is not.
Partial Type Assignment in Left Linear Applicative Term Rewriting Systems  Theory, Applications and Implementation
, 1992
"... This paper introduces a notion of partial type assignment on left linear applicative term rewriting systems that is based on the extension defined by Mycroft of Curry’s type assignment system. The left linear applicative TRS we consider are extensions to those suggested by most functional programmin ..."
Abstract

Cited by 11 (10 self)
 Add to MetaCart
This paper introduces a notion of partial type assignment on left linear applicative term rewriting systems that is based on the extension defined by Mycroft of Curry’s type assignment system. The left linear applicative TRS we consider are extensions to those suggested by most functional programming languages in that they do not discriminate against the varieties of function symbols that can be used in patterns. As such there is no distinction between function symbols (such as append and plus) and constructor symbols (such as cons and succ). Terms and rewrite rules will be written as trees, and type assignment will consist of assigning types to function symbols, nodes and edges between nodes. The only constraints on this system are imposed by the relation between the type assigned to a node and those assigned to its incoming and outgoing edges. We will show that every typeable term has a principal type, and formulate a needed and sufficient condition typeable rewrite rules should satisfy in order to gain preservance of types under rewriting. As an example we will show that the optimisation function performed after bracket abstraction is typeable. Finally we will present a type check algorithm that checks if rewrite rules are correctly typed, and finds the principal pair for typeable terms.
Essential intersection type assignment
 Proceedings of FST&TCS '93. 13 th Conference on Foundations of Software Technology and Theoretical Computer Science
, 1993
"... This paper introduces a notion of intersection type assignment on the Lambda Calculus that is a restriction of the BCDsystem as presented in [4]. This restricted system is essential in the following sense: it is an almost syntax directed system that satisfies all major properties of the BCDsystem. ..."
Abstract

Cited by 10 (6 self)
 Add to MetaCart
This paper introduces a notion of intersection type assignment on the Lambda Calculus that is a restriction of the BCDsystem as presented in [4]. This restricted system is essential in the following sense: it is an almost syntax directed system that satisfies all major properties of the BCDsystem. The set of typeable terms can be characterized in the same way, the system is complete with respect to the simple type semantics, and it has the principal type property.
The Implementation of a System Description Language and its Semantic Functions
, 1991
"... Contents 1 Introduction 9 1.1 Current system description languages . . . . . . . . . . . . . . . . . 9 1.2 Formal function theory . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Interpretation of formal functions . . . . . . . . . . . . . . . . . . . . 11 1.4 Semantic functions . . . . . . ..."
Abstract

Cited by 7 (6 self)
 Add to MetaCart
Contents 1 Introduction 9 1.1 Current system description languages . . . . . . . . . . . . . . . . . 9 1.2 Formal function theory . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 Interpretation of formal functions . . . . . . . . . . . . . . . . . . . . 11 1.4 Semantic functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5 System semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.6 Adirectional systems . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.7 Applications of system semantics . . . . . . . . . . . . . . . . . . . . 14 1.8 The ESPRIT project FORFUN . . . . . . . . . . . . . . . . . . . . . 14 1.9 The contents of this thesis . . . . . . . . . . . . . . . . . . . . . . . . 16 2 Mathematical background 17 2.1 Overview of mathematical notation used . . . . . . . . . . . . . . . . 18 2.2 Formal function theory . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.3 Formal language theory . . . . . . . . . . . . . . . . . . . . .
On Explicit Substitutions and Names
 In Proc. ICALP
, 1997
"... Calculi with explicit substitutions have found widespread acceptance as a basis for abstract machines for functional languages. In this paper we investigate the relations between variants with de Bruijnnumbers, with variable names, with reduction based on raw expressions and calculi with equational ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Calculi with explicit substitutions have found widespread acceptance as a basis for abstract machines for functional languages. In this paper we investigate the relations between variants with de Bruijnnumbers, with variable names, with reduction based on raw expressions and calculi with equational judgements. We show the equivalence between these variants, which is crucial in establishing the correspondence between the semantics of the calculus and its implementations. 1 Introduction Explicit substitution calculi (or oecalculi for short) first appeared in a seminal paper by Abadi et al. [1]. The basic idea is that instead of having substitutions as a metalevel operation, as in traditional calculus, we should make them part of the objectlevel calculus. The advantages of this approach are twofold. Firstly, it makes it possible to design much more efficient abstract machines as we are allowed to delay substitutions, and secondly it makes it much easier to prove them correct since...