Information Technology Reference
In-Depth Information
correspondant à une telle phrase ne peut pas être construit. En effet, la règle de
production relative à un objet de type affectation échoue sur le deuxième symbole.
En effet, le symbole « 5 » est rencontré à la place du symbole «
=
». Une erreur
syntaxique est donc levée (figure 3.5).
G 5 = 2 ;
- 17 5 - 5 2 - 6
<corps de programme>
<suite de declarations >
DEBUT
(- 8)
<suite d'affectations>
<affectation>
<identificateur>
G (- 17)
(- 5) ?
NON erreur
Figure 3.5
Arbre syntaxique impossible à construire sur l'analyse de G 5
=
2.
La construction des arbres syntaxiques fait apparaître la nécessité d'avoir défini la
grammaire du langage sans ambiguïté afin qu'à aucun moment, une suite de symboles
issue de l'analyse lexicale puisse correspondre à plusieurs règles de production diffé-
rentes, ce qui conduirait à une interprétation du sens du programme peut-être différente
de celle voulue par le programmeur.
3.1.4
Analyse sémantique
L'analyse sémantique constitue la troisième étape d'analyse du compilateur. Elle a
pour but d'associer un sens aux différentes phrases du programme source. Ce travail
recouvre principalement deux points différents :
- reconnaître les objets manipulés et analyser leurs propriétés : quel est le type de
l'objet, sa durée de vie, sa taille et son adresse ?
- contrôler que l'utilisation de ces objets se fait de manière cohérente : à ce niveau,
l'analyse sémantique recherche les erreurs de typage, les déclarations multiples,
absentes ou inutiles, les expressions incohérentes.
Soit, par exemple, le programme Ada suivant :
procedure prog_ada is
float i; -- variable i de type réel
integer A, B; -- variables A et B de type entier
tab : array(1.5) of float; -- tableau de 5 réels
 
 
Search WWH ::




Custom Search