“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 28 — #38
i
i
i
i
i
i
i
i
28
2
• La programmation déclarative
calcul, le modèle déclaratif. Nous continuerons à utiliser ces bases pour définir les
autres modèles.
2.1.1 La syntaxe d’un langage
La syntaxe d’un langage définit quels sont les programmes légaux, c’est-à-dire les
programmes qui peuvent être exécutés. Pour l’instant nous ne nous intéressons pas à
ce que font ces programmes. Le comportement des programmes lors de leur exécution
est donné par la sémantique. Celle-ci sera traitée dans la section 2.1.2.
Les grammaires
Une grammaire est un ensemble de règles qui définit comment construire des
« phrases » à partir des « mots ». Les grammaires peuvent être utilisées pour les
langages naturels, comme le français ou le suédois, tout comme les langages artificiels, comme les langages de programmation. Pour les langages de programmation,
les « phrases » sont appelées des « instructions » et les « mots » sont appelés des
« jetons ». Tout comme les mots sont construits de lettres, les jetons sont faits de
caractères. Il y a deux niveaux de structure :
instruction (« phrase ») = séquence de jetons (« mots »)
jeton (« mot »)
= séquence de caractères (« lettres »)
Les grammaires sont utiles pour définir les instructions et les jetons. La figure 2.1
contient un exemple qui montre comment une séquence de caractères est transformée
en instruction. L’exemple dans la figure est la définition de Fact :
fun {Fact N}
if N==0 then 1 else N * {Fact N-1} end
end
L’entrée est une séquence de caractères où ´ ´ représente un espace et ´\n´ représente un saut de ligne. Cette séquence est d’abord transformée en une séquence de
jetons et ensuite en un arbre syntaxique. (La syntaxe des deux séquences dans la figure
est compatible avec la syntaxe des listes du langage Oz.)
Alors que les séquences sont « plates », l’arbre syntaxique montre la structure de
l’instruction. Un programme qui prend une séquence de caractères et renvoie une
séquence de jetons s’appelle un analyseur de jetons ou un analyseur lexical. Un
programme qui prend une séquence de jetons et renvoie un arbre syntaxique s’appelle
un parseur.
Précédent

- 43/370

Suivant