Results

**21 - 27**of**27**### Before we begin: Thank you, thank you, thank you,... Walter.WassollmanzudiesemMannnochsagen?

"... Doctor rerum naturalium ..."

### Semantic Types and Approximation for Featherweight Java

"... We consider semantics for the class-based object-oriented 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 class-based object-oriented 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 head-normalisation 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 predicate-ability 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 class-based object orientation.

### TEACHING CURRIED FUNCTIONS

, 1995

"... Curried functions are an important topic in Computing courses that teach functional programming, including courses that study programming languages. Good motivating examples for teaching curried functions and their utility can be taken from Physics. BACKGROUND Curried functions and currying are an i ..."

Abstract
- Add to MetaCart

Curried functions are an important topic in Computing courses that teach functional programming, including courses that study programming languages. Good motivating examples for teaching curried functions and their utility can be taken from Physics. BACKGROUND Curried functions and currying are an important topic in computer science courses that teach functional programming [14, section 7.3]. Such courses include undergraduate courses in programming paradigms (unit PL11 in the ACM’s Computing Curricula 1991 [15]), with titles such as “Principles of Programming Languages ” [11, p. 388] [10, p. 100]. Also included are undergraduate and graduate courses in programming language semantics (unit PL10 in [15]), with titles such as “Essentials of Programming Languages ” [7, p.27]. Curried functions are also directly supported by some modern functional programming languages, such as Haskell [4]. Curry [2,3] and others [13] [5, pages 153-156] studying the concept of a function asked the question: “does a programming language need to provide functions with

### HISTORY AND PHILOSOPHY OF LOGIC, 24 (2003), 15–37 Russell’s 1903 – 1905 Anticipation of the Lambda Calculus

, 2002

"... It is well known that the circumflex notation used by Russell and Whitehead to form complex function names in Principia Mathematica played a role in inspiring Alonzo Church’s ‘Lambda Calculus ’ for functional logic developed in the 1920s and 1930s. Interestingly, earlier unpublished manuscripts writ ..."

Abstract
- Add to MetaCart

It is well known that the circumflex notation used by Russell and Whitehead to form complex function names in Principia Mathematica played a role in inspiring Alonzo Church’s ‘Lambda Calculus ’ for functional logic developed in the 1920s and 1930s. Interestingly, earlier unpublished manuscripts written by Russell between 1903 and 1905—surely unknown to Church—contain a more extensive anticipation of the essential details of the Lambda Calculus. Russell also anticipated Schönfinkel’s Combinatory Logic approach of treating multiargument functions as functions having other functions as value. Russell’s work in this regard seems to have been largely inspired by Frege’s theory of functions and ‘value-ranges’. This system was discarded by Russell due to his abandonment of propositional functions as genuine entities as part of a new tack for solving Russell’s paradox. In this article, I explore the genesis and demise of Russell’s early anticipation of the Lambda Calculus.

### A semantic approach to illative combinatory logic ∗

"... This work introduces the theory of illative combinatory algebras, which is closely related to systems of illative combinatory logic. We thus provide a semantic interpretation for a formal framework in which both logic and computation may be expressed in a unified manner. Systems of illative combinat ..."

Abstract
- Add to MetaCart

This work introduces the theory of illative combinatory algebras, which is closely related to systems of illative combinatory logic. We thus provide a semantic interpretation for a formal framework in which both logic and computation may be expressed in a unified manner. Systems of illative combinatory logic consist of combinatory logic extended with constants and rules of inference intended to capture logical notions. Our theory does not correspond strictly to any traditional system, but draws inspiration from many. It differs from them in that it couples the notion of truth with the notion of equality between terms, which enables the use of logical formulas in conditional expressions. We give a consistency proof for first-order illative combinatory algebras. A complete embedding of classical predicate logic into our theory is also provided. The translation is very direct and natural.

### Functional Type Assignment for Featherweight Java To Rinus Plasmeijer, in honour of his 61st birthday

"... We consider functional type assignment for the class-based object-oriented calculus Featherweight Java. We start with an intersection type assignment systems for this calculus for which types are preserved under conversion. We then define a variant for which type assignment is decidable, and define ..."

Abstract
- Add to MetaCart

We consider functional type assignment for the class-based object-oriented calculus Featherweight Java. We start with an intersection type assignment systems for this calculus for which types are preserved under conversion. We then define a variant for which type assignment is decidable, and define a notion of unification as well as a principal typeing algorithm. We show the expressivity of both our calculus and our type system by defining an encoding of Combinatory Logic into our calculus and showing that this encoding preserves typeability. We thus demonstrate that the great capabilities of functional types can be applied to the context of class-based object orientated programming.