La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

CSI 3525, Grammaires, page 1 Les langages –Syntaxe et sémantique –Grammaires –Sémantique axiomatique.

Présentations similaires


Présentation au sujet: "CSI 3525, Grammaires, page 1 Les langages –Syntaxe et sémantique –Grammaires –Sémantique axiomatique."— Transcription de la présentation:

1 CSI 3525, Grammaires, page 1 Les langages –Syntaxe et sémantique –Grammaires –Sémantique axiomatique

2 CSI 3525, Grammaires, page 2 - Syntaxe: le format du langage - Sémantique: la signification des programmes - Analyse des langages - Hiérarchie des langages formels

3 CSI 3525, Grammaires, page 3 Syntaxe La syntaxe dun langage détermine comment les programmes sont construits à partir des éléments de base (mots clés, identificateurs, nombres, parenthèses, etc.). Un programme syntaxiquement correct peut ne pas être acceptable, ou peut fonctionner dune façon autre que celle voulu.

4 CSI 3525, Grammaires, page 4 Colorless green ideas sleep furiously Illustre phrase composee par Noam Chomsky en 1957 Example de phrase dont la grammaire est correcte mais dont la sémantique est nonsensical, et donc sans signification

5 CSI 3525, Grammaires, page 5 Exercise (5 minutes): Composez une phrase: grammatiquement correcte qui ne veut rien dire

6 CSI 3525, Grammaires, page 6 Syntaxe Formelle Une syntaxe formelle est un système décrivant la structure exacte des programmes. –Ceux-ci incluent les grammaires, BNF, diagrammes syntaxiques (graphes de syntaxe).

7 CSI 3525, Grammaires, page 7 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.

8 CSI 3525, Grammaires, page 8 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 de leffet des instructions élémentaires quelles contiennent (ex: assignations).

9 CSI 3525, Grammaires, page 9 Quelle est linterpretation s/mantique de la phrase: Cette phrase est fausse

10 CSI 3525, Grammaires, page 10 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

11 CSI 3525, Grammaires, page 11 Analyse lexicale Lanalyse lexicale pré-traite le fichier contenant le code source: Reconnaît les éléments lexicaux (mots- clés, 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.

12 CSI 3525, Grammaires, page 12 Analyse syntaxique (parsing) Le programme est il correct ? Une représentation de la structure syntactique est construite pour les programmes correctes

13 CSI 3525, Grammaires, page 13 Analyse syntaxique 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.]

14 CSI 3525, Grammaires, page 14 Lex et Yacc sont des outils de génération d'analyseurs lexicaux (Lex) et syntaxiques (Yacc) en langage C.

15 CSI 3525, Grammaires, page 15 Langage Est un ensemble de phrases. Phrase == séquence déléments de base, places en accord avec des règles bien défini. En langage naturel, lidée de phrase est bien connue.

16 CSI 3525, Grammaires, page 16 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...

17 CSI 3525, Grammaires, page 17 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 < indépendant du contexte < contextuel (dépendant du contexte) < récursivement énumérable. Les grammaires sont également classifiées de cette manière.

18 CSI 3525, Grammaires, page 18 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 à 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. Une hiérarchie des langages formels (2)

19 CSI 3525, Grammaires, page 19 Grammaires formelles -Concepts des grammaires formelles -Un exemple de grammaire en BNF -Dérivation de larbre syntaxique -Ambiguïté des grammaires

20 CSI 3525, Grammaires, page 20 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

21 CSI 3525, Grammaires, page 21 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 remplaçant les symboles non-terminaux par leur définition. Réduire une phrase en un format de plus en plus général, en remplaç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.

22 CSI 3525, Grammaires, page 22 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

23 CSI 3525, Grammaires, page 23 Notation Les 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.

24 CSI 3525, Grammaires, page 24 Productions de notre grammaire expr term | expr + term | expr - term term factor | term * factor factor var | ( expr ) var x | y

25 CSI 3525, Grammaires, page 25 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.

26 CSI 3525, Grammaires, page 26 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. Dérivations

27 CSI 3525, Grammaires, page 27 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

28 CSI 3525, Grammaires, page 28 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

29 CSI 3525, Grammaires, page 29 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 + 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

30 CSI 3525, Grammaires, page 30 Pour les deux dérivations, il faut deviner à 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. Est-ce si facile?

31 CSI 3525, Grammaires, page 31 + * () y x x y Larbre ne dépend pas de lordre dans lequel les productions ont été appliquées lors de la dérivation. Le résultat des deux dérivations peut être résumé par le même arbre syntaxique Arbre syntaxique (parse trees)

32 CSI 3525, Grammaires, page 32 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 * peut engendrer deux arbres de dérivation.

33 CSI 3525, Grammaires, page 33 Deux arbres syntaxiques... * * E E + E | E * E | N 6 *

34 CSI 3525, Grammaires, page 34 …leur signification... Ces deux arbres résultent en des évaluations différentes! Les Ambiguïtés doivent être évites * * * ( ) ( 6 * 17 ) + 23

35 CSI 3525, Grammaires, page 35 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 | + T N | *... Et quoi faire des ambiguïtés

36 CSI 3525, Grammaires, page 36 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...

37 CSI 3525, Grammaires, page Une grammaire pour les long phrases the [ that ] cat | chair | dog | fruit | mouse | shoe |... caught | chased | chewed | squashed | stained |...

38 CSI 3525, Grammaires, page 38 Une clause the dog that chased the cat that caught the mouse that chewed the shoe that squashed the fruit that stained the chair grabbed the sausage that tempted the wolf that fought the fox that scared the squirrel that bit the twig that cracked the nut that hit the boy that lifted the hat

39 CSI 3525, Grammaires, page une grammaire pour les clauses the [ that ] boy | cat |... bit | caught |... (Avec encore 1500 règles on aura une grammaire raisonnable pour langlais. )

40 CSI 3525, Grammaires, page 40 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 )

41 CSI 3525, Grammaires, page une grammaire pour les listes ( ) | |

42 CSI 3525, Grammaires, page 42 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 moins une grosse fleure, un autre mur, des petite fleurs (plus nombreuse que les grosses), et une maison.

43 CSI 3525, Grammaires, page quelques exemples... un jardin

44 CSI 3525, Grammaires, page Une grammaire pour les jardins | |


Télécharger ppt "CSI 3525, Grammaires, page 1 Les langages –Syntaxe et sémantique –Grammaires –Sémantique axiomatique."

Présentations similaires


Annonces Google