Mémento

abstraction concrète

Syntaxe Caml

Les définitons syntaxiques décrivent les mecanismes de construction des expressions du langage Caml.

La syntaxe des phrases du langage Caml est présentée en notation B.N.F. (Backus-Naur Form), sous la forme :
    identificateur_de_phrase ::= forme_syntaxique
Dans la suite, la syntaxe d'une phrase Caml quelconque est décrite par une règle de réécriture selon le modèle :
    partie gauche de la règle ::= partie droite.
Le symbole «::=» est appelé symbole de réécriture.

La syntaxe de la phrase désignée par un identificateur de phrase en italique dans la partie gauche est décrite par la partie droite de la forme B.N.F.

La partie droite de la règle de réécriture exprime la syntaxe de la phrase par une suite de symboles qui sont : Pour éviter les confusions et les ambiguités avec les symboles utilisés dans le langage Caml, les symboles B.N.F., autres que le symbole de réécriture, ne sont pas employés. Par conséquent, les formes syntaxiques alternatives ou optionnelles, et les répétitions d'occurrences, seront définies de manière explicite, et parfois informelle.

Exemple de syntaxe

    expression_fonctionnelle ::= function filtrage
Dans cet exemple «expression_fonctionnelle» est l'identificateur de la forme de phrase expliquée par la description B.N.F., «function» est un mot-clé de Caml et «filtrage» est un identificateur de phrase.

Typage Caml

Règles de typage appliquées par le synthétiseur de types Caml.

Le typage des expressions du langage Caml est présenté en langage Caml, sous la forme :
    expression caml : expression de type caml
L'expression Caml «expression caml» de la partie à gauche du symbole de typage : est typée par une expression de type «expression de type caml» dans la partie droite.

Une expression de type en Caml est formée à partir d'identificateurs de types Caml et d'expressions de types Caml combinés par des opérateurs sur les types.

Exemples de typage

"bonjour" : string
`z` : char
function x -> x + 8 : int -> int
Dans ces exemples "bonjour", `z`, et (function x -> x+8) sont des expressions Caml, string, char et (int -> int), sont des expressions de type en langage Caml.

Règles de typage

Les règles de trypage sont données sous la forme :

Hypothèses
----------
Conclusion

Exemple de règle de typage

Dans notre exemple, E1:bool, E2:T et E3:T sont les hypothèses. Tandis que (if E1 then E2 else E3):T est la conclusion de la règle.

E1:bool E2:T E3:T
-------------------------
(if E1 then E2 else E3):T

Evaluation Caml

Principes d'évaluation des expressions Caml.

L'évaluation des expressions du langage Caml est présentée sous la forme :
    Evaluation(expression_caml) => valeur_caml
L'expression Caml (expression_caml) de la partie à gauche du symbole d'évaluation Þ est évaluée à la valeur qu'elle exprime (valeur_caml) dans la partie droite.

Exemple d'évaluation

# let a = 40 ;;
a : int = 40

Evaluation(a)
 => Evaluation(40)
 => 40
Evaluation(a + 5)
 => Evaluation(Evaluation(a) + Evaluation(5))
 => Evaluation(Evaluation(40) + 5)
 => Evaluation(40 + 5)
 => Evaluation(45)
 => 45

Notation et symboles

Symboles utilisés pour décrire le modèle de la machine Caml

Grammaire Caml

Les définitions syntaxiques du langage Caml rassemblées.

dernière modification : 06/12/96