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

ISBN 0-321-49362-1 Chapitre 3 Syntaxe et sémantique.

Présentations similaires


Présentation au sujet: "ISBN 0-321-49362-1 Chapitre 3 Syntaxe et sémantique."— Transcription de la présentation:

1 ISBN Chapitre 3 Syntaxe et sémantique

2 1-2 Chapitre 3: Sujets Introduction Décrire la syntaxe Méthodes formelles de description Grammaires avec attributs Décrire la signification des programmes: la sémantique

3 1-3 Introduction Syntaxe: la forme ou la structure des expressions, énoncés, et autres composantes d'un langage Sémantique: la signification des expressions, énoncés, et autres composantes La définition d'un langage est donnée par sa syntaxe et sa sémantique – Qui utilise la définition? Les concepteurs Ceux qui effectuent l'implémentation Les programmeurs (usagers)

4 1-4 Décrire la syntaxe: Terminologie Un mot est une chaîne de caractère sur un alphabet donné Un langage est un ensemble de mots Un lexème est la plus petite unité lexicale d'un langage (e.g., *, somme, begin ). On peut voir un programme comme une suite de lexèmes. Les lexèmes sont divisés en groupes appelés token (e.g., identificateur, opérateur)

5 1-5 Décrire la syntaxe: exemple index = 2 * count + 17; lexèmestokens indexidentificateur =op_affectation 2litéral_int *op_mult countidentificateur +op_add 17litéral_int ;point_virgule

6 1-6 Définition formelle des langages Reconnaisseurs –Programme qui lit un mot d'entrée et décide si le mot appartient au langage –Exemple: l'analyseur syntaxique d'un compilateur –Chapitre 4 Générateurs –Système permettant de générer les mots du langage –On peut déterminer si la syntaxe d'un mot appartient au langage en le comparant à la structure du générateur. –Exemple: Grammaires formelles

7 1-7 Méthodes formelles pour décrire la syntaxe Grammaires hors-contextes –Méthode la plus utilisée pour décrire la syntaxe d'un langage Grammaire HC étendues –Améliore la lisibilité et la facilité d'écriture Grammaires et reconnaisseurs

8 1-8 Grammaire et forme de Backus-Naur Grammaires génératives –Développées par Noam Chomsky au milieu des années 50 –Les générateurs de langages servent à décrire la syntaxe des langues naturelles –Définie une classe de langages: les langages hors-contextes

9 1-9 Forme de Backus-Naur (BNF) métalangage utilisé pour décrire un autre langage Inventé par John Backus pour décrire Algol 58 (simplifié par la suite par Peter Naur) équivalent aux grammaires HC

10 1-10 Introduction aux grammaires Deux types de symboles: –Terminaux: lexèmes ou tokens –Non-terminaux: variables Grammaire: –collection de règles permettant de substituer un non- terminal par une suite de symboles (terminaux et non- terminaux)

11 1-11 Les règles Une règle possède une partie gauche et une partie droite (séparées par une flèche) –La partie droite est un non-terminal –La partie gauche est une suite de symboles (terminaux et non-terminaux) Une grammaire est un ensemble fini de règles et possède une variable particulière que l'on appelle symbole de départ. Une variable (ou non-terminal) peut apparaître à la gauche de plusieurs règles --> --> begin end

12 1-12 Description d'une liste Une liste de longueur variable peut être décrite en utilisant la récursion: | ; Une dérivation est l'application répétée de règles qui commence avec le symbole de départ et se termine avec une séquence de terminaux.

13 1-13 Exemple d'une grammaire | ; = a | b | c | d + | - | const

14 1-14 Exemple de dérivation | ; = a | b | c | d + | - | const => => => = => a = => a = + => a = b + => a = b + const

15 1-15 Dérivation À chaque étape d'une dérivation, on obtient un mot appelé forme sententielle. Une phrase est une forme sententielle ne contenenant que des terminaux Une dérivation à gauche (leftmost derivation) en est une où, à chaque étape, on applique une règle à la variable la plus à gauche de la forme sententielle.

16 1-16 Arbre syntaxique (Parse Tree) Représentation d'une dérivation const a = b +

17 1-17 Ambiguïté dans une grammaire Une grammaire est ambiguë s'il existe une forme sententielle pouvant être générée par deux arbres syntaxiques différents.

18 1-18 Exemple d'ambiguïté | const / | -

19 1-19 Exemple d'ambiguïté | const / | - const -/

20 1-20 Exemple d'ambiguïté | const / | - const --//

21 1-21 Enlever l'ambiguïté d'une grammaire On doit modifier la grammaire pour représenter la priorité des opérateurs: - | / const| const const / -

22 1-22 Associativité des opérateurs L'associativité des opérateurs peut aussi être représenté par la grammaire: -> + | const (ambiguë) -> + const | const (non ambiguë) const + +

23 1-23 Grammaires HC étendues Parties optionnelles placées entre crochets [ ] if ( ) [else ] Alternatives placées entre parenthèses et séparées par une barre verticale (+|-) const Répétitions (0 où plus) sont placées entre accolades { } letter {letter|digit}

24 1-24 Grammaires: HC vs HC étendue HC + | - | * | / | HC étendue {(+ | -) } {(* | /) }

25 1-25 Grammaires attribuées Les grammaires hors-contextes ne peuvent pas décrire tous les aspects syntaxiques d'un langage de programmation. Exemple 1: En Java un point-flottant ne peut pas être affecté dans un entier. Si on tenait compte de toutes les contraintes de ce type, alors on obtiendrait une grammaire énorme et inutilisable. Exemple 2: Il est impossible avec une grammaire HC de préciser qu'une variable doit être déclarée avant d'être utilisée.

26 1-26 Sémantique Contrairement à la syntaxe, il n'y a pas de formalisme largement répandu et accepté permettant de décrire la sémantique d'un langage de programmation. 3 principales méthodes: –Sémantique opérationelle: On traduit les instructions dans un langage clair s'exécutant sur une machine virtuelle. –Sémantique axiomatique: On utilise la logique mathématique pour indiquer la signification des instruction. Aussi utilisé pour démontrer l'exactitude des programmes. –Sémantique dénotationelle: La plus rigoureuse des méthodes. Utilise la théorie des fonctions récursives.


Télécharger ppt "ISBN 0-321-49362-1 Chapitre 3 Syntaxe et sémantique."

Présentations similaires


Annonces Google