A label-selective lambda-calculus with optional arguments and its compilation method

Jun P. Furuse and Jacques Garrigue. RIMS Preprint 1041, Research Institute for Mathematical Sciences, Kyoto University, October 1995.

Abstract. The use of labels for argument passing has proved to be a useful extension to programming languages, particularly when we introduce optional arguments.

We propose here an adaptation of such a system, as can be found in Common LISP, to strongly-typed curried functional languages. For this we extend ML-style polymorphic typing to labeled arguments, out-of-order application, and optional arguments. We also provide a compilation method towards polymorphic lambda-calculus, which is proved syntactically sound for free reduction, and semantically correct for call-by-name semantics.

We implemented it, and showed the overhead caused by using this extension to be negligible when out-of-order parameter passing is used, and null when it is not.

This report is available in DVI , PDF and Postscript format.

JG 96.1.31