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.
[1]
Luca Cardelli,et al.
Compiling a functional language
,
1984,
LFP '84.
[2]
Patrick Bellot,et al.
High Order Programming in Extended FP
,
1985,
FPCA.
[3]
Pierre-Louis Curien,et al.
The Categorical Abstract Machine
,
1987,
Sci. Comput. Program..
[4]
Françoise Bellegarde.
Rewriting systems on FP expressions that reduce the number of sequences they yield
,
1984,
LFP '84.
[5]
John H. Williams,et al.
Formal Representations for Recursively Defined Functional Programs
,
1981,
International Colloquium on Formalization of Programming Concepts.