GRAAL: A Functional Programming System with Uncurryfied Combinators and its Reduction Machine

This work presents a new programming language issued from Functional Programming systems of J.W. Backus. GRAAL is a functional programming language without variables. The basic tools provided for expressing functions are functional forms as in FP systems. The main change is that functional forms are constructed using uncurryfied combinators, that is polyadic combinators. The introduction of a new kind of functional form (user form) allows users of the system to define their own functional forms and to compute them dynamically. Another difference with FP systems is that functions are polyadic. The main consequence of these choices is an efficient reduction machine, implementing the language, which is described here. Independently of efficiency considerations, GRAAL seems to be a realistic programming language.