Information Technology Reference
In-Depth Information
- des phrases ou instructions : une phrase est un groupe de lexèmes du langage dont
la structure est elle aussi donnée par une grammaire. Cette structure peut être décrite
par un arbre qualifié d'arbre syntaxique .
Par exemple, A1 est un mot du langage composé des symboles élémentaires A et 1.
A1
3 ; constitue une phrase du langage.
Finalement, un programme est constitué comme étant une suite de phrases du
langage, chacune des phrases respectant une syntaxe donnée par la grammaire asso-
ciée au langage. Formellement, une grammaire est définie par :
- un ensemble de symboles terminaux qui sont les symboles élémentaires admis dans
le langage (exemples : DEBUT, FIN, *,
=
, …) ;
- un ensemble de symboles non terminaux (exemples :
+
,
=
, …) ;
- un ensemble de règles syntaxiques encore appelées productions (exemple :
<
<
nombre
>
,
<
terme
>
).
Pour décrire la syntaxe d'un langage et spécifier les règles de production de la
grammaire associée, on utilise couramment la notation dite notation de Backus-Naur
ou BNF ( Backus-Naur Form ), développée à l'origine pour décrire la syntaxe du langage
Algol 60. Avec ce formalisme, une règle de production s'écrit :
<
nombre
>
::
=
<
chiffre
>
|
<
nombre
>
<
chiffre
>
>
et décrit la syntaxe de l'objet_1 du langage comme étant soit l'objet_2 du langage,
soit l'objet_3 du langage. « | » code l'alternative et « ::
objet_1 du langage
>
::
=
<
objet_2 du langage
>
|
<
objet_3 du langage
=
» sépare un objet de sa
description.
Exemple
Soient les deux règles suivantes :
-
<
nombre
>
::
=
<
chiffre
>
|
<
nombre
>
<
chiffre
>
-
<
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Le nombre 125 peut être décomposé comme suit :
chiffre
>
::
=
-
<
nombre
>
125 ::
=
<
nombre
>
12
<
chiffre
>
5
-
<
nombre
>
12 ::
=
<
nombre
>
1
<
chiffre
>
2
-
<
nombre
>
1 ::
=
<
chiffre
>
1
Un exemple
Les règles de Backus-Naur suivantes permettent la description d'un langage de
programmation que nous appellerons L_exemple contenant deux types d'instruc-
tions : d'une part des instructions permettant d'opérer des déclarations de variables,
d'autre part des instructions de type affectation.
<programme> :: = PROGRAM <identificateur> <corps de programme>
<corps de programme> :: = <suite de déclarations> DEBUT <suite
d'affectations> FIN
<suite de déclarations> :: = <déclaration> | <déclaration> <suite
de déclarations>
 
Search WWH ::




Custom Search