** Abstract.**
The label-selective lambda-calculus, in its different variants, and
its offspring, the transformation calculus, are the results of a
research on the role of Currying in the lambda calculus.

Currying is the simple trick by which functions of multiple arguments
can be written in the lambda calculus, which is essentialy
mono-argument. The idea is to transform a function on a pair, into a
function whose result, once applied to its first argument, must be
applied to its second one. That is *f(a,b) =
( f(a))(b)*.

In our first system, the label-selective lambda-calculus, we give a method to curry starting from a labeled record, in place of a simple pair. The calculus we encode in has to be more complex than simple lambda-calculus, because of these labels, but it appears to keep the quasi totality of its properties. We have of course confluence, and models similar to lambda calculus; and we can apply both simple and polymorphic typings, for which we get strong normalization, as we had with lambda calculus. An immediate application of such a system is to add out-of-order labeled application to curried functional languages, like ML. Since Currying introduces partial applications, we combinatorically augment the number of possible partial applications.

The second extension, which results in the transformation calculus,
introduces the idea of a Currying-compliant composition of terms.
Classical functional composition is incompatible with Currying, but
ours is, by intuitively making multiple connections at once. Again
this system is confluent, and we defined typings for it. Selective
lambda-calculus is already included, but the new power of this
calculus is in viewing arguments as a flow of data, which can be
manipulated by composed *transformations*. It allows one to write
imperative algorithms, changing variables, in a purely functional
framework. By this it provides a syntactical view on previous works
done on the semantics of Algol, and other imperative extensions of
functional languages.

Finally we present a third calculus, that of symmetrical transformations, which extends the transformation calculus to n-ary relations. This can give interesting insights on problems like distributed computation or, more mathematically, function inversion.

These three systems are studied from the three points of view of their syntactial properties, their typing, and their semantics.

You can get the postcript versions of this thesis Garrigue-PhD-letter.ps.gz(282533 bytes) and Garrigue-PhD-a4.ps.gz(282578 bytes), and its PDF version Garrigue-PhD-a4.pdf(678381 bytes).

JG 2011.11.08