CSI 3525, Grammaires, page 1 - PowerPoint PPT Presentation

About This Presentation
Title:

CSI 3525, Grammaires, page 1

Description:

De gauche a droite, le jardin contient: un mur, au moin une grosse fleure, un autre mur, des petite fleurs (plus nombreuse que les grosses), et une maison. ... – PowerPoint PPT presentation

Number of Views:73
Avg rating:3.0/5.0
Slides: 38
Provided by: alanwi8
Category:
Tags: csi | grammaires | moin | page

less

Transcript and Presenter's Notes

Title: CSI 3525, Grammaires, page 1


1
Description des langages
  • Syntaxe et sémantique
  • Grammaires
  • Sémantique axiomatique

2
Syntaxe et sémantique
  • - Syntaxe le format du langage
  • - Sémantique la signification des programmes
  • - Analyse des langages
  • - Hiérarchie des langages formels

3
Syntaxe
  • La syntaxe dun langage détermine comment les
    programmes sont construit à partir des éléments
    de base (mots clef, identificateurs, nombres,
    parenthèses, etc.).
  • Un programme syntaxiquement correct peut ne pas
    être acceptable, ou peut fonctionner dune façon
    autre que celle voulu.
  • Une syntaxe formelle est un system décrivant la
    structure exacte des programmes.
  • Ceux-ci incluent les grammaires, BNF, diagrammes
    syntaxiques (graphes de syntaxe).

4
Grammaires
  • Il existe un nombre infini de programmes
    possible,mais chacun est fini et sa syntaxe doit
    pouvoir être vérifiée en temps fini.
  • Une grammaire permet une description finie de
    langages infinies.

5
Sémantique
  • La Sémantique dun langage détermine le sens des
    éléments de base et de leurs combinaisons
  • Comment la signification dun programme est
    déterminée par la signification de ses fragments?
  • Leffet des instructions composées (ex boucles,
    "if") devraient dépendre uniquement le leffet
    des instructions élémentaires quelles
    contiennent (ex assignations).

6
Méthodes de description sémantique
  • Sémantique opérationnelle
  • Les instructions sont décrite de façon
    informelle, en terme dopérations simple, ayant
    un effet sur létat de la machine.
  • Sémantique dénotationelle
  • Les instructions sont mis en correspondance avec
    des objet mathématiques pouvant être manipulés
    rigoureusement
  • Un programme décrit une fonction données ?
    résultats
  • Sémantique axiomatique
  • Linférence est utilisé pour vérifier que le
    programme satisfait les postconditions en partant
    des préconditions
  • Un programme décrit une relation données ?
    résultats

7
Analyse lexicale
  • Lanalyse lexicale pré-traite le fichier
    contenant le code source
  • Reconnaît les éléments lexicaux (mots-clef, noms
    prédéfini, identificateurs, nombres, parenthèses,
    opérateurs, ).
  • - enlève les espaces.
  • Ceci rend la traduction plus simple en éliminant
    les détails de bas niveau.

8
Analyse syntaxique
  • Lanalyse syntactique, basée sur les grammaires,
    peut vouloir dire deux choses
  • Décision (le programme est correcte ou non)
  • Décomposition syntactique  parsing  (une
    représentation de la structure syntactique est
    construite pour les programmes correctes).
  • Lanalyse syntactique est une composante
    essentielle de limplémentation dun langage de
    programmation.
  • La génération syntactique, également basée sur
    les grammaires, fait linverse passe de la
    structure syntactique au code. Important en
    technologie des langages, mais pas pour les
    langages de programmation.

9
Quest-ce quun langage?
  • Un langage est un ensemble de phrases.
  • Une phrase est une séquence déléments de base,
    places en accord avec des règles bien défini.
    (habituellement des règles de grammaire).
  • En langage naturel, lidée de phrase est bien
    connue.
  • Pour les langages de programmation, différentes
    structures syntaxiques peuvent être considères
    comme des phrases.
  • Par exemple, dans lensemble de toutes les
    expressions, chaque expression valide est une
    phrase.
  • Dans lensemble de tout les programmes, chaque
    programme complet et valide est une phrase...

10
Une hiérarchie des langages formels
  • Les langages formels sont classés selon leur
    complexité.
  • Une hiérarchie a 4 niveaux, du plus simple au
    plus compliqué
  • régulier lt
  • indépendant du contexte lt
  • contextuel (dépendant du contexte) lt
  • récursivement énumérable.
  • Les grammaires sont également classifiées de
    cette manière.

11
Une hiérarchie des langages formels (2)
  • Les langages de programmation ont habituellement
  • Une syntaxe indépendante du contexte,
  • Une sémantique contextuelle.
  • Indépendance du contexte (important pour
    lanalyse syntactique) signifie que les fragments
    qui sont analysés ne dépendent pas de dautres
    fragments du même programme.
  • Par exemple, loccurrence dune variable nest
    pas reliée a sa déclaration (la validité de la
    syntaxe du programme ne dépend pas de la relation
    entre les deux).
  • Un appel à une méthode et la définition de cette
    méthode sont analysé séparément.

12
Grammaires formelles
  • - Concepts des grammaires formelles
  • - Un exemple de grammaire en BNF
  • - Dérivation de larbre syntaxique
  • - Ambiguïté des grammaires

13
Quatre composantes des grammaires formelles
  • Symboles terminaux Les éléments du langage
    (comme les noms de variables en Java, ou les mots
    en français).
  • Symboles non-terminaux symboles auxiliaires
    dénotant la sorte de construction (par exemple
    boucle, expression_booléenne).
  • Le but (symbole de départ) dénote nimporte
    quelle phrase.
  • Productions Les règles de réécriture utilisés
    pour reconnaître et générer des phrases

14
Deux façons de réécrire
  • À partir du but (symbole de départ), produire des
    approximations more de plus en plus spécifiques
    dune phrase, en replaçant les symboles
    non-terminaux par leur définition.
  • Réduire une phrase en un format de plus en plus
    général, en replaçant les définitions par des
    symboles non-terminaux, et en atteignant le but
    (revient au même).
  • Les productions ce qui différencient les
    grammaires régulières, indépendantes du contexte
    ou contextuelles.

15
Exemple Une grammaire pour les expressions
  • Sept symboles terminaux
  • - ( ) x y
  • Quatre non-terminaux
  • expr term factor var
  • On peut nommer ces symboles comme on veut comme
    quand on choisit les noms de variables dans un
    programme, il est bon de choisir des symboles
    non-terminaux ayant un nom qui aide à comprendre
    leur sens.
  • But/symbole de départ
  • expr

16
Notation
  • Les lt gt servent à distinguer les symboles
    non-terminaux des terminaux.
  • Coté gauche ? Coté droit signifie Le coté
    droit consiste en ce qui se trouve du coté
    droit".
  • Une barre sépare les différent coté droit
    possibles pour un coté gauche particulier.

17
Productions de notre grammaire
  • expr ? term expr term
    expr - term
  • term ? factor term factor
  • factor ? var ( expr )
  • var ? x y

18
De haut en bas et de bas en haut
  • Comme mentionne précédemment, pour une phrase ?,
    les productions peuvent être appliqués de deux
    façons
  • De haut en bas
  • Dérive ? a partir du but (symbole de départ).
  • ? sera alors un exemple de lexpression.
  • De bas en haut
  • Réduit ? aux but.

19
Dérivations
  • Prenons comme exemple la suite de symboles
    terminaux suivante
  • ( x - y ) x y
  • Nous allons montrer que cest une expression
    quelle suit la syntaxe des expressions
  • Deux dérivations sont présentées dans les pages
    suivantes.
  • À chaque ligne, la partie de couleur est
    impliquée dans la réécriture de la prochaine
    ligne, selon une production de la grammaire.

20
Dérivation de haut en bas
  • expr ?
  • expr term ?
  • term term ?
  • term factor term ?
  • factor factor term ?
  • ( expr ) factor term ?
  • ( expr - term ) factor term ?
  • ( term - term ) factor term ?
  • ( factor - term ) factor term ?
  • ( var - term ) factor term ?
  • ( x - term ) factor term ?
  • ( x - factor ) factor term ?
  • ( x - var ) factor term ?
  • ( x - y ) factor term ?
  • ( x - y ) var term ?
  • ( x - y ) x term ?
  • ( x - y ) x factor ?
  • ( x - y ) x var ?
  • ( x - y ) x y

21
Dérivation de bas en haut
  • ( x - y ) x y ?
  • ( var - y ) x y ?
  • ( factor - y ) x y ?
  • ( term - y ) x y ?
  • ( expr - y ) x y ?
  • ( expr - var ) x y ?
  • ( expr - factor ) x y ?
  • ( expr - term ) x y ?
  • ( expr ) x y ?
  • factor x y ?
  • term x y ?
  • term var y ?
  • term factor y ?
  • term y ?
  • expr y ?
  • expr var ?
  • expr factor ?
  • expr term ?
  • expr

22
Lun à coté de lautre
  • ( x - y ) x y ?
  • ( var - y ) x y ?
  • ( factor - y ) x y ?
  • ( term - y ) x y ?
  • ( expr - y ) x y ?
  • ( expr - var ) x y ?
  • ( expr - factor ) x y ?
  • ( expr - term ) x y ?
  • ( expr ) x y ?
  • factor x y ?
  • term x y ?
  • term var y ?
  • term factor y ?
  • term y ?
  • expr y ?
  • expr var ?
  • expr factor ?
  • expr term ?
  • expr

expr ? expr term ? term term
? term factor term ? factor
factor term ? ( expr ) factor
term ? ( expr - term ) factor term
? ( term - term ) factor term ? (
factor - term ) factor term ? ( var
- term ) factor term ? ( x - term )
factor term ? ( x - factor ) factor
term ? ( x - var ) factor term ? ( x
- y ) factor term ? ( x - y ) var
term ? ( x - y ) x term ? ( x - y ) x
factor ? ( x - y ) x var ? ( x - y ) x
y
23
Est-ce si facile?
  • Pour les deux dérivations, il faut deviner a
    chaque étape laquelle des productions devrait
    être utilisée.
  • La stratégie est au cœur des algorithmes
    danalyse syntaxique. Idéalement, ont voudrais
    toujours deviner correctement, mais en pratique
    il faut tenter une production, et si elle échoue,
    retourner en arrière et en choisir une autre.
  • Les deux approches ont reconnue la suite de
    symboles
  • ( x - y ) x y
  • comme une expression bien formée de la grammaire.

24
Arbre syntaxique (parse trees)
Le résultat des deux dérivations peut être résumé
par le même arbre syntaxique
Larbre ne dépend pas de lordre dans lequel les
productions ont été appliquées lors de la
dérivation.
25
Ambiguïté
  • Une grammaire est ambiguë quand une expression de
    cette grammaire possède plus dun arbre de
    dérivation ayant une structure différente.
  • Par exemple, voici une grammaire pour les
    expressions arithmétiques
  • E ? E E E E N
  • où N indique un entier.
  • Lexpression 6 17 23 peut engendrer deux
    arbres de dérivation.

26
Deux arbres syntaxiques...
E ? E E E E N
6 17 23
27
leur signification...
  • Ces deux arbres résultent en des évaluations
    différentes!
  • Les Ambiguïtés doivent être évites

28
... Et quoi faire des ambiguïtés
  • Au lieu, on aurait dû définir une grammaire a
    deux niveaux, pour ne pas avoir et au même
    niveau.
  • Un expression E est une somme de termes T.
  • Un terme est un produit de nombres N.
  • E ? T ltEgt ltTgt
  • T ? N ltTgt ltNgt

29
long phrase
  • the dog
  • the dog that chased the cat
  • the dog that chased the cat that caught the mouse
  • the dog that chased the cat that caught the
    mouse that chewed the shoe
  • the dog that chased the cat that caught the
    mouse that chewed the shoe that squashed the
    fruit
  • the dog that chased the cat that caught the
    mouse that chewed the shoe that squashed the
    fruit that stained the chair
  • et ainsi de suite...

30
... Une grammaire pour les long phrases
  • ltlong phrasegt ?
  • the ltnoungt
  • that ltverbgt ltlong phrasegt
  • ltnoungt ?
  • cat chair dog
  • fruit mouse shoe ...
  • ltverbgt ?
  • caught chased chewed
  • squashed stained ...

31
Une clause
  • the dog that chased the catthat caught the mouse
    that chewed the shoethat squashed the fruit that
    stained the chairgrabbed the sausage that
    tempted the wolfthat fought the fox that scared
    the squirrelthat bit the twig that cracked the
    nutthat hit the boy that lifted the hat

32
... une grammaire pour les clauses
  • ltclausegt ?
  • ltlongPhrasegt ltverbgt ltlongPhrasegt
  • ltlongPhrasegt ?
  • the ltnoungt
  • that ltverbgt ltlongPhrasegt
  • ltnoungt ? boy cat ...
  • ltverbgt ? bit caught ...
  • (Avec encore 1500 règles on aura une grammaire
    raisonnable pour langlais. ?)

33
listes en Scheme...
  • Une liste peut être vide
  • ()
  • Ou une séquence déléments séparés par des
    espaces, le tout entre parenthèses
  • ( element ... element )
  • Chaque élément est soit une liste, ou une atome.
    Une atome est un identificateur formé de lettres
    minuscules. Nous supposons quun analyseur
    lexicale convertie texte un une séquence
    déléments de base atomes et parenthèses.
  • Exemple ( ab ( xyz br ) () ( no ) yes )

34
... une grammaire pour les listes
  • ltlistgt ? ( ltelementsgt )
  • ltelementsgt ? ltelementgt
  • ltelementgt ltelementsgt
  • ltelementgt ? ltatomgt ltlistgt
  • ltatomgt ? ltlettergt
  • ltlettergt ltatomgt

35
Un jardin...
  • Les jardins sont constitués de 4 éléments
  • ? mur
  • ? grosse fleur
  • ? petite fleur
  • ? maison
  • De gauche a droite, le jardin contient un mur,
    au moin une grosse fleure, un autre mur, des
    petite fleurs (plus nombreuse que les grosses),
    et une maison.

36
... quelques exemples ...
  • ??????????????? un jardin?
  • ??????????????? un jardin?
  • ??????????????? un jardin ?
  • ????????????? un jardin?

37
... Une grammaire pour les jardins
  • ltgardengt ?
  • ? ltlargeAndSmallgt ltmoreSmallgt ?
  • ltlargeAndSmallgt ?
  • ? ? ?
  • ? ltlargeAndSmallgt ?
  • ltmoreSmallgt ?
  • ? ? ltmoreSmallgt
Write a Comment
User Comments (0)
About PowerShow.com