Diagramme syntaxique

Un article de Wikipédia, l'encyclopédie libre.

Les diagrammes syntaxiques sont un moyen de représentation graphique pour les grammaires formelles. Elles constituent une alternative à une représentation en forme de Backus-Naur. Le principal intérêt des diagrammes syntaxiques est d'ordre pédagogique car elles donnent un moyen souvent plus intuitif de percevoir la notion de grammaire que les représentations textuelles, qui elles sont mieux adaptés aux outils d'analyse syntaxique comme les compilateurs.

Sommaire

[modifier] Principe

Une grammaire exprimée sous la forme de diagrammes syntaxiques regroupent généralement un ensemble de diagrammes. Chaque diagramme correspond à un non-terminal. Un diagramme correspond au non-terminal principal auquel le texte doit correspondre pour faire partie du langage décrit par l'ensemble de diagramme.

Chaque diagramme relie un point d'entrée à un point de sortie. Le diagramme décrit les chemins possibles entre ces deux points en passant par d'autres non-terminaux et des terminaux. Les non-terminaux sont représentés par des boites carrées alors que les terminaux sont représentés dans des boites arrondies.

[modifier] Exemple

Un exemple classique de grammaire est celui des expressions arithmétiques. Donnons d'abord une grammaire simplifiée en BNF :

<expression> ::= <terme> | <terme> "+" <expression>

<terme> ::= <facteur> | <facteur> "*" <terme>

<facteur> ::= <constante> | <variable> | "(" <expression> ")"
 
<variable> ::= "x" | "y" | "z" 

<constante> ::= <chiffre> | <chiffre> <constante>

<chiffre> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"


Cette grammaire peut aussi être exprimée en EBNF:

expression = terme , {"+" terme};

terme = facteur , {"*" facteur};

facteur = constante | variable | "(" , expression , ")";
 
variable = "x" | "y" | "z"; 

constante = chiffre , {chiffre};

chiffre = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9";

Un ensemble de diagrammes syntaxiques équivalent :

Diagrammes pour une grammaire d'expressions simples

[modifier] Voir aussi

[modifier] Articles connexes

[modifier] Liens et documents externes

Autres langues