Previous Page Next Page

3.5 Forme normale de Backus-Naur (étendue)

Un moyen symbolique pour décrire la grammaire d'un langage de programmation est la forme normale de BACKUS-NAUR (BNF) encore qualifiée de métalangage. Il s'agit ici du métalangage le plus ancien, développé en 1960 et utilisé pour la définition syntaxique formelle du langage de programmation ALGOL 60.

Le vocabulaire du métalangage consiste en noms de métavariables entourées de métasymboles.

On définit les métasymboles suivants:

" " les symboles terminaux sont placés entre guillemets,
::= signifie "se construit de la manière suivante",
| signifie "ou" (réunion au sens des ensembles),
< > les chevrons encadrent les métavariables,
[ ] les parties encadrées par des crochets sont optionnelles,
{ } les parties encadrées par des accolades peuvent être répétées zéro ou plusieurs fois.

Cet ensemble de métasymboles est connu sous le nom de forme normale de Backus-Naur étendue.

Ce vocabulaire permet de préciser des règles de production ou règles de réécriture.

Une unité syntaxique se note:

<unité syntaxique> ::= côté droit

Par côté droit on entend la composée d'autres unités syntaxiques.

Exemples:

1) Pour spécifier qu'un nombre décimal est une suite de chiffres décimaux on définit:

<Chiffre décimal> ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"

puis on énonce la règle de production:

<Nombre décimal> ::= <Chiffre décimal> {<Chiffre décimal>}

2) Un identificateur est un nom symbolique d'un langage de programmation servant à désigner des données ou des variables dans un programme. Souvent, un identificateur doit commencer par une lettre, suivie d'un nombre quelconque de lettres ou de chiffres décimaux:

<Lettre> ::= "A" | "B" | . . . "Z" | "a" | "b" | . . . "z"
<Identificateur> ::= <Lettre> {<Lettre> | <Chiffre décimal>}

Par exemple: AQX, DORA2, S_475, etc.

3) Pour spécifier une constante réelle on définit par exemple:

<RealConst> ::= <Mantisse> [<Exposant>]

<Mantisse> ::= ["+" | "-"] <Nombre décimal> ["."] [<Nombre décimal>]

<Exposant> ::= "E" ["+" | "-"] <Nombre décimal>

Par exemple: 3.14, 6E-5, 0.573E12

Les exemples précédents montrent que la forme normale de BACKUS-NAUR est un moyen très utile pour décrire la syntaxe correcte des énoncés - une syntaxe, qui change d'ailleurs d'un langage de programmation à l'autre.

Termes techniques

forme normale de Backus-Naur (étendue)
grammaire
identificateur
métalangage
métasymbole
métavariable
règle de production
règle de réécriture
unité syntaxique

Previous Page Next Page


© Aflo Informatique , 2003-2004