The program was developed with Caml Light language and the Camllex and Camlyacc tools. The compilation must be made in the Caml Light version 0.7 because the program uses several new characteristics of this version. Caml Light is a functional language researched by Xavier Leroy and Damien Doligez at Institut National de Recherche en Informatique et en Automatique (INRIA) in France. Programming languages are said to be functional when the basic way of structuring programs is the notion of function and their essential control structure is function application. For example, the Lisp language, and more precisely its modern succesor Scheme, has been called functional because it has these two properties. However, we want the programming notion of function to be as close as possible to the usual mathematical notion of function. In mathematics, function are "first class" objects : they can be arbitrarilly manipulated. For example, they can be composed, and the composition function is itself a function. In mathematics one would present the sucessor function in the following way:
sucessor :
Three especial characteristics are :
The notion of type; a mathematical function has always a domain and a codomain. They will correspond to the programming notion of type.
Lexical biding : when we write the mathematical definition of successor, we have assumed that the addition function + have been previously defined, mapping a pair of natural numbers to a natural number; the meaning of the successor function is
defined using the meaning of the addition : whatever + denotes in the future, this successor function will remain the same.
The notion of functional abstraction, allowing to express the behavior of f o g as .
For more information about Caml Light consult :