Results 11  20
of
45
A Physical Example For Teaching Curried Functions
 Chapter 8 of Parallel and Distributed Computing Handbook (A.Y. Zomaya,Editor), McGrawHill
, 1996
"... 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 ..."
Abstract

Cited by 1 (0 self)
 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 153156] studying the concept of a function asked the question...
CallbyValue Combinatory Logic and the LambdaValue Calculus
 PROCEEDINGS OF THE CONFERENCE ON THE MATHEMATICAL FOUNDATIONS OF PROGRAMING SEMANTICS, LECTURE NOTES IN COMPUTER SCIENCE, 517
, 1991
"... Since it is unsound to reason about callbyvalue languages using callby name equational theories, we present two byvalue combinatory logics and translations from the value ( v ) calculus to the logics. The first byvalue logic is constructed in a manner similar to the v calculus: it is base ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Since it is unsound to reason about callbyvalue languages using callby name equational theories, we present two byvalue combinatory logics and translations from the value ( v ) calculus to the logics. The first byvalue logic is constructed in a manner similar to the v calculus: it is based on the byname combinatory logic, but the combinators are strict. The translation is nonstandard to account for the strictness of the input program. The second byvalue logic introduces laziness to K terms so that the translation can preserve the structure of functions that do not use their argument. Both logics include constants and delta rules, and we prove their equivalence with the v calculus.
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.
Before we begin: Thank you, thank you, thank you,... Walter.WassollmanzudiesemMannnochsagen?
"... Doctor rerum naturalium ..."
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 153156] studying the concept of a function asked the question: “does a programming language need to provide functions with
Russell’s 1903 – 1905 Anticipation of the Lambda Calculus
 HISTORY AND PHILOSOPHY OF LOGIC, 24 (2003), 15–37
, 2003
"... 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 ‘valueranges’. 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.
Functional Type Assignment for Featherweight Java To Rinus Plasmeijer, in honour of his 61st birthday
"... We consider functional type assignment for the classbased objectoriented 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 classbased objectoriented 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 classbased object orientated programming.