Results 1  10
of
12
Strict Intersection Types for the Lambda Calculus
, 2010
"... This paper will show the usefulness and elegance of strict intersection types for the Lambda Calculus; these are strict in the sense that they are the representatives of equivalence classes of types in the BCDsystem [15]. We will focus on the essential intersection type assignment; this system is a ..."
Abstract

Cited by 6 (5 self)
 Add to MetaCart
This paper will show the usefulness and elegance of strict intersection types for the Lambda Calculus; these are strict in the sense that they are the representatives of equivalence classes of types in the BCDsystem [15]. We will focus on the essential intersection type assignment; this system is almost syntax directed, and we will show that all major properties hold that are known to hold for other intersection systems, like the approximation theorem, the characterisation of (head/strong) normalisation, completeness of type assignment using filter semantics, strong normalisation for cutelimination and the principal pair property. In part, the proofs for these properties are new; we will briefly compare the essential system with other existing systems.
Completeness and Partial Soundness Results for Intersection & Union Typing for λµ ˜µ
 Annals of Pure and Applied Logic
"... This paper studies intersection and union type assignment for the calculus λµ ˜µ [17], a proofterm syntax for Gentzen’s classical sequent calculus, with the aim of defining a typebased semantics, via setting up a system that is closed under conversion. We will start by investigating what the minima ..."
Abstract

Cited by 6 (6 self)
 Add to MetaCart
This paper studies intersection and union type assignment for the calculus λµ ˜µ [17], a proofterm syntax for Gentzen’s classical sequent calculus, with the aim of defining a typebased semantics, via setting up a system that is closed under conversion. We will start by investigating what the minimal requirements are for a system for λµ ˜µ to be closed under subject expansion; this coincides with System M ∩ ∪ , the notion defined in [19]; however, we show that this system is not closed under subject reduction, so our goal cannot be achieved. We will then show that System M ∩ ∪ is also not closed under subjectexpansion, but can recover from this by presenting System M C as an extension of M ∩ ∪ (by adding typing rules) and showing that it satisfies subject expansion; it still lacks subject reduction. We show how to restrict M ∩ ∪ so that it satisfies subjectreduction as well by limiting the applicability to type assignment rules, but only when limiting reduction to (confluent) callbyname or callbyvalue reduction M ∩ ∪ ; in restricting the system, we sacrifice subject expansion. These results combined show that a sound and complete intersection and union type assignment system cannot be defined for λµ ˜µ with respect to full reduction.
Approximation Semantics and Expressive Predicate Assignment for ObjectOriented Programming (Extended Abstract)
"... Abstract. We consider a semantics for a classbased objectoriented calculus based upon approximation; since in the context of LC such a semantics enjoys a strong correspondence with intersection type assignment systems, we also define such a system for our calculus and show that it is sound and com ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
Abstract. We consider a semantics for a classbased objectoriented calculus based upon approximation; since in the context of LC such a semantics enjoys a strong correspondence with intersection type assignment systems, we also define such a system for our calculus and show that it is sound and complete. We establish the link with between type (we use the terminology predicate here) assignment and the approximation semantics by showing an approximation result, which leads to a sufficient condition for headnormalisation and termination. We show the expressivity of our predicate system by defining an encoding of Combinatory Logic (and so also LC) into our calculus. We show that this encoding preserves predicateability and also that our system characterises the normalising and strongly normalising terms for this encoding, demonstrating that the great analytic capabilities of these predicates can be applied to OO. 1
Semantic Predicate Types and Approximation for Classbased Object Oriented Programming
"... Abstract. We define a small functional calculus that expresses classbased object oriented features and is modelled on the similar calculi of Featherweight Java [34] and Middleweight Java [15], which are ultimately based upon the Java programming language. We define a predicate system, similar to th ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Abstract. We define a small functional calculus that expresses classbased object oriented features and is modelled on the similar calculi of Featherweight Java [34] and Middleweight Java [15], which are ultimately based upon the Java programming language. We define a predicate system, similar to the one defined in [10], and show subject reduction and expansion, and argue that program analysis systems can be built on top of this system. Generalising the concept of approximant from the Lambda Calculus, we show that all expressions that we can assign a predicate to have an approximant that satisfies the same predicate. From this, a characterisation of (head)normalisation follows. 1
Contents
, 2005
"... A summary of the motivation and theory behind abstract interpretation, including the accumulating semantics, Galois connections and widening. A complete demonstration of the use of abstract interpretation to define a safe and optimal sign analysis in the context of a simple imperative language is pr ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
A summary of the motivation and theory behind abstract interpretation, including the accumulating semantics, Galois connections and widening. A complete demonstration of the use of abstract interpretation to define a safe and optimal sign analysis in the context of a simple imperative language is presented. In addition, a example of widening is described to improve the termination properties of an interval analysis of the same language. Keywords: • Semantics • Program analysis
Type Systems for Programming Languages
, 2001
"... These notes belong to the course Type Systems for Programming Languages, given to fourth year students in Computing and Joint Mathematics and Computing with some experience in reasoning and logic, and students in the Advanced Masters programme at the Department of Computing, Imperial College, London ..."
Abstract
 Add to MetaCart
These notes belong to the course Type Systems for Programming Languages, given to fourth year students in Computing and Joint Mathematics and Computing with some experience in reasoning and logic, and students in the Advanced Masters programme at the Department of Computing, Imperial College, London. The course is intended for students interested in theoretical computer science, who possess some knowledge of logic. No prior knowledge on type systems or proof techniques is assumed, other than being familiar with the principle of induction. Aims • To lay out in detail the design of type assignment systems for programming languages. • To focus on the importance of a sound theoretical framework, in order to be able to reason about properties of a typed program. • To understand the concepts of: type checking, type reconstruction, polymorphism, type derivation, typeability, typing of recursive functions, termination in the context of typeability, and undecidable systems. • To study various systems and various languages, and to compare those and to select.
A Typebased Trace Analysis for Java
"... The intersection type discipline (ITD) is a well established one in the field of the Lambda Calculus (LC) and the functional programming paradigm. It has also been extended to Term Rewriting Systems (TRS) and more recently to object calculi and sequent calculi. We continue this trend by applying the ..."
Abstract
 Add to MetaCart
The intersection type discipline (ITD) is a well established one in the field of the Lambda Calculus (LC) and the functional programming paradigm. It has also been extended to Term Rewriting Systems (TRS) and more recently to object calculi and sequent calculi. We continue this trend by applying the techniques of ITD to the analysis of the (class based) objectoriented (OO) programming paradigm: specifically, we study a small core calculus for Java which is a restriction of Featherweight Java by removing casts, for which using ITD we define an intersection type system that traces method and field calls. Type assignment in this system is closed under reduction and expansion, allowing for a typebased semantics for programs. The main contribution of this paper is an approximation result for this programming model, linking approximation semantics with trace semantics, which we achieve by defining a notion of reduction on type derivations that is strongly normalising (as for LC and TRS). This result demonstrates a direct correspondence between a trace semantics for programs and their types, and opens up the possibility of both abstract interpretation and detailed typebased analyses for OO. We show how the approximation result facilitates one such analysis a characterisation of normalisation and termination. In order to demonstrate that our framework constitutes a practical approach to program analysis, we define a restriction of our type system which is essentially equivalent to Curry’s system for the Lambda Calculus (functional programming), and show that a principal typings property holds. We show that our system is expressive by giving an encoding of Combinatory Logic (and thereby, indirectly, the Lambda Calculus) into our calculus which preserves type assignment. The definition of principal typings for this system leads straightforwardly to a decidable type inference algorithm, for which we have a reference implementation in ML.
AN APPROXIMATION RESULT FOR JAVA VIA STRONGLY NORMALISING INTERSECTION TYPE DERIVATIONS (Extended Abstract)
"... The intersection type discipline (ITD) is wellestablished for the Lambda Calculus (LC) and the functional programming paradigm. It has also been extended to Term Rewriting Systems (TRS) and more recently to object calculi and sequent calculi. We continue this trend by applying the techniques of ITD ..."
Abstract
 Add to MetaCart
The intersection type discipline (ITD) is wellestablished for the Lambda Calculus (LC) and the functional programming paradigm. It has also been extended to Term Rewriting Systems (TRS) and more recently to object calculi and sequent calculi. We continue this trend by applying the techniques of ITD to the analysis of the (class based) objectoriented (OO) programming paradigm: specifically, we study a small core calculus for Java which is a restriction of Featherweight Java by removing casts. Our main contribution is an approximation result for this programming model, demonstrating a direct correspondence between types and the functional behaviour of programs. This opens the possibility for typebased abstract interpretation and termination analysis for OO. We achieve this result by defining a notion of reduction on type derivations that is strongly normalising, a technique which has also been used for LC and TRS. Finally, we show how the approximation result facilitates a typebased characterisation of (weak) normalisation and termination. We also discuss the relationship between our calculus and TRS, highlighting how our result extends previous work in this area.
Semantic Types and Approximation for Featherweight Java
"... We consider semantics for the classbased objectoriented calculus Featherweight Java based upon approximation. We also define an intersection type assignment systems for this calculus and show that it is sound and complete, i.e. types are preserved under conversion. We establish the link with betwe ..."
Abstract
 Add to MetaCart
We consider semantics for the classbased objectoriented calculus Featherweight Java based upon approximation. We also define an intersection type assignment systems for this calculus and show that it is sound and complete, i.e. types are preserved under conversion. We establish the link with between type assignment and the approximation semantics by showing an approximation result, which leads to a sufficient condition for headnormalisation and termination. We show the expressivity of our predicate system by defining an encoding of Combinatory Logic into our calculus. We show that this encoding preserves predicateability and also that our system characterises the normalising and strongly normalising terms for this encoding. We thus demonstrate that the great analytic capabilities of intersection types can be applied to the context of classbased object orientation.
0 Least Upper Bounds on the Size of Confluence and ChurchRosser Diagrams in Term Rewriting and λCalculus 1
"... We study confluence and the ChurchRosser property in term rewriting and λcalculus with explicit bounds on term sizes and reduction lengths. Given a system R, we are interested in the lengths of the reductions in the smallest valleys t → ∗ s ′ ∗ ← t ′ expressed as a function: — for confluence a ..."
Abstract
 Add to MetaCart
We study confluence and the ChurchRosser property in term rewriting and λcalculus with explicit bounds on term sizes and reduction lengths. Given a system R, we are interested in the lengths of the reductions in the smallest valleys t → ∗ s ′ ∗ ← t ′ expressed as a function: — for confluence a function vsR(m, n) where the valleys are for peaks t ∗ ← s → ∗ t ′ with s of size at most m and the reductions of maximum length n, and — for the ChurchRosser property a function cvsR(m, n) where the valleys are for conversions t ↔ ∗ t ′ with t and t ′ of size at most m and the conversion of maximum length n. For confluent term rewriting systems (TRSs), we prove that vsR is a total computable function, and for linear such systems that cvsR is a total computable function. Conversely, we show that every total computable function is the lower bound on the functions vsR(m, n) and cvsR(m, n) for some TRS R: In particular, we show that for every total computable function ϕ: N − → N there is a TRS R with a single term s such that vsR(s, n) ≥ ϕ(n) and cvsR(n, n) ≥ ϕ(n) for all n. For orthogonal TRSs R we prove that there is a constant k such that (a) vsR(m, n) is bounded from above by a function exponential in k and (b) cvsR(m, n) is bounded from above by a function in the fourth level of the Grzegorczyk hierarchy. Similarly, for λcalculus, we show that vsR(m, n) is bounded from above by a function in the fourth level of the Grzegorczyk hierarchy.