Précédent Index Suivant

3.1   Arbres de syntaxe abstraite de mini-ML

Mini-ML est uniquement un langage d'expression. Il ne contient pas de déclarations de variables globales, d'exceptions ou de types. Néanmoins, les expressions de mini-ML sont assez riches par rapport au l-calcul. Elles correspondent à une extension du l-calcul par les constantes numériques, de chaînes de caractères et des booléens, des couples et des listes, de la structure de contrôle conditionnelle, de la déclaration locale let qui introduit le polymorphisme et de la récursion. Voici les types Caml-light des expressions et des déclarations :

type ml_expr = Const of ml_const
* 2 Var of string
* 2 Pair of ml_expr * ml_expr
* 2 Cons of ml_expr * ml_expr
* 2 Cond of ml_expr * ml_expr * ml_expr
* 2 App of ml_expr * ml_expr
* 2 Abs of string * ml_expr
* 2 Letin of string * ml_expr * ml_expr
* 2 Letrecin of string * ml_expr * ml_expr
* and ml_const = Int of int
* 2 Float of float
* 2 Bool of bool
* 2 String of string
* 2 Emptylist
* 2 Unit
* ;;
* Type ml_expr defined.
* Type ml_const defined.


Précédent Index Suivant