1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages.

Slides:



Advertisements
Présentations similaires
L-System et modélisation de plantes…
Advertisements

Traitement sémantique et grammaire dattributs Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)
DTD Sylvain Salvati
Algorithmique Résume.
Analyse syntaxique (intro)
UML - Présentation.
Introduction à Java - les paquetages -
Chap 1 Grammaires et dérivations.
INTRODUCTION.
Introduction à la POO: Les classes vs les objets
CSI3525: Concepts des Langages de Programmation Notes # 5: Langages de Programmation Fonctionelle I: Introduction au Scheme.
IFT313 Introduction aux langages formels
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
IFT313 Introduction aux langages formels
Pédagogie par Objectifs
IFT313 Introduction aux langages formels
Introduction : Compilation et Traduction
Microsoft® Lync™ 2010 Formation sur l’application Response Group
OCaml – Les arbres L3 MI.
Analyse lexicale Généralités Expressions rationnelles Automates finis
Initiation à la conception de systèmes d'information
IFT313 Introduction aux langages formels
Notions de base de la théorie des langages
1 CSI3525: Concepts des Languages de Programmation Notes # 2: Criteres d Evaluation des Languages.
Le codage des nombres en informatique
Calcul Relationnel Chapitre 4, Section 4.3.
Bases de données lexicales
Algorithmique et Programmation
RDF(S)
IFT313 Introduction aux langages formels
MODELE RELATIONNEL concept mathématique de relation
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Révision de mi-session.
IFT313 Révision finale Département d’informatique
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Grammaires attribuées.
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Automates à pile LR Notion de poignée.
Unified Modeling Langage
Expressions régulières et hash tables
IFT Complexité et NP-complétude
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
1 CSI3525: Concepts des Languages de Programmation Notes # 4: Description Semantique des Languages.
CSI3525: Concepts des Languages de Programmation
Chapitre 3 Syntaxe et sémantique.
Analyse lexicale et syntaxique
Partie II Sémantique.
Les langages Syntaxe et sémantique Grammaires Sémantique axiomatique.
Description des langages
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Rappel Modèle analyse-synthèse de la compilation
Patrons de conceptions de créations
Modélisation géométrique de base
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX.
Expressions régulières et hash tables
Paradigmes des Langages de Programmation
Paradigmes des Langages de Programmation
INTRODUCTION.
CSI3525: Concepts des Langages de Programmation Notes # 13: Introduction au SmallTalk.
Arbres binaires et tables de hachage
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Le langage Z minimal Pr ZEGOUR DJAMEL EDDINE
La programmation.
GF-11: Tri Interne Efficace et Tri Externe
Abdelkader Heni FUNDP Syntaxe et sémantique Abdelkader Heni FUNDP
eXtensible Markup Language. Généralités sur le XML.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
Chap 1 Grammaires et dérivations.
CSI 3525, Grammaires, page 1 Description des langages –Syntaxe et sémantique –Grammaires –Sémantique axiomatique.
Nouvelles Technologies Internet & Mobile
Introduction à la Programmation Orientée Objet
Scripts et fonctions Instructions de contrôle
INTRODUCTION AUX BASES DE DONNEES
Transcription de la présentation:

1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages

2 Pourquoi Decrire les Languages de Programmation? Et Comment? n Les languages de programmation sont implementes et utilises par un grand nombre de personnes. Ils doivent donc etre compris par toutes ces personnes, avant meme quils nexistent ou quils soient utilises. n La clarite et la precision de la description sont tres intimement lies au succes dun nouveau language. n La description dun language se divise en deux parties: description syntaxique et description semantique. n La syntaxe correspond a la description de la forme des expressions, instructions et unites de programmes. n La semantique correspond a leur signification. n La syntaxe est plus facile a descrire que la semantique.

3 La Description Syntaxique: Definitions n Les languages sont des chaines de caracteres provenant dun alphabet. n Chaque chaine represente une phrase. n Il existe de petites unites syntaxiques appelees des lexemes. n Les tokens dun language representent des categories de lexemes. Certains tokens ne representent quun seul lexeme, mais dautres en representent plusieurs. n Les languages peuvent etre decrits de deux facons distinctes: reconnaissance ou generation.

4 Reconaisseur de Languages n Etant donne un language L qui utilise lalphabet, on peut construire un mechanisme de reconnaissance R capable de reconnaitre les chaines de caracteres de lalphabet. n R doit indiquer si une chaine qui lui est donnee apartient ou non au language. En dautre termes, il va accepter ou rejeter cette chaine. n De facon pratique, dans un compilateur, lanalyse syntaxique est faite par un systeme de reconnaissance.

5 Generateur de Languages n Un generateur de language genere des phrase dun language. n De facon pratique, un generateur peut sembler peu utile en tant que descripteur de language, mais en fait, il est tres utile car il permet une description facile a lire et a comprendre. n En fait, un generateur est beaucoup plus utile quun reconaisseur quant a la description du language.

6 Methodes Formelles de Description Syntaxique: Generalites n Les mecanismes formels de generation de language sappellent des grammaires. n Les grammaires les plus utiles pour les languages de programmation sont les grammaires libres de contexte (context-free) n La notation utilisee pour specifier de telles grammaires sappelle la forme Backus-Naur. (BNF). n BNF est une forme tres naturelle de description syntaxique. Elle est en fait tres proche de la technique utilisee par Panini des centaines dannees avant Jesus- Christ.

7 Methodes Formelles de Description Syntaxique: Fondations n Un metalanguage est un language destine a decrire dautres languages. BNF est un metalaguage pour les languages de programmation. n BNF definit les structures syntaxiques du language en utilisant des regles (ou productions). n Le Left-Hand-Side (LHS) dune regle BNF ne contient quun symbole non-terminal, alors que le Right-Hand-Side peut contenir des symboles terminaux ou non. n Un non-terminal peut avoir plusieures definitions. n Une regle peut aussi etre recursive.

8 Methodes Formelles de Description Syntaxique: Definitions n Les phrases dun language sont generees par lapplication en sequence des regles de la grammaire. n La generation dune phrase ou dun programme entiersappelle une derivation et elle commence au symbole de depart. n Sil y a plusieurs non-terminaux dans une regle et que la derivation etend le non-terminal le plus a gauche avant les autres, on parle de leftmost derivation. n Un avantage des grammaires est quelles decrivent naturellement la structure syntaxique hierarchique des phrases des languages quelles decrivent. Ces structures hierarchiques sappellent des parse trees.

9 Methodes Formelles de Description Syntaxique: Considerations n Une grammaire qui peut generer une phrase ayant deux ou plus de deux parse trees distincts est une grammaire ambigue. n Lambiguite syntaxique est un probleme dans les languages de programmation car la semantique est basee sur la syntaxe et la signification dune phrase doit etre unique. n Une grammaire peut-etre ecrite de maniere a implementer la precedence des operateurs, et leur associativite,.

10 EBNF: Une extension de la BNF n Il existe certaines extensions de la form Backus-Naur qui netendent pas le pouvoir descriptif du meta- language, mais plutot, en etend sa lisibilite et sa facilite decriture. n 3 extensions sont utilisees couramment: – Lutilization de [ ] --> Option (oui/non) – Lutilization de { } --> Iteration – Lutilization de | --> Option a choix multiple – Lutilization de + --> repetition unique ou multiple

11 Parse Trees n Le processus appele parsing consiste a construire un parse tree pour la phrase ou le programme ecrits dans le language. n Parsing peut-etre fait du haut en bas ou du bas en haut. n Parsing peut-etre fait assez facilement si la grammaire du language est definie de maniere appropriee (voir livre pp ). En particulier, il est important pour cette grammaire de ne pas avoir de recursion a gauche.

12 Grammaires a Attributs: Generalites n Une grammaire a attributs est un mecanisme qui permet de decrire une plus grande partie de la structure dun language que nest possibleavec une grammaire libre de contexte. n En particulier, une telle grammaire permet la definition de certaines regles du language tels que la compatibilite des types. n En general, la catecory de regles du language qui ne peuvent pas etre definies en BNF sappelle la semantique statique de ce language.

13 Grammaires a Attributs: Definitions n Une grammaire a attribut est une grammaire avec les additions suivantes: – Chaque symbole de la grammaire est associe a un ensemble dattributs divise en deux sous- ensembles: les attributs synthetises, qui passent linformation semantique vers le haut de larbre; et les attributs inherites, qui la passent vers le bas. – Chaque regle de grammaire est associee a un ensemble de fonctions semantiques et, peut-etre, un ensemble de fonctions prediquees. n Un attribut intrinsique est un attribut synthetise qui appartient a une feuille darbre et dont la valeur est determinee a lexterieur de larbre.