Notions de base de la théorie des langages

Slides:



Advertisements
Présentations similaires
Les présentateurs doivent souvent transmettre des informations techniques à des auditeurs qui connaissent moins bien le sujet et le vocabulaire spécifique.
Advertisements

Chapitre 4: Le comportement des clients de l'UC
CHAPITRE 6 Vecteurs et translations
Déductions logiques et calcul de représentations sémantiques Alain Lecomte UMR SFL Séminaire « Logique, Sémantique, Dialogue » - partie I.
L-System et modélisation de plantes…
« 1.5. Les fonctions logiques »
Chap 1 Grammaires et dérivations.
INTRODUCTION.
Introduction : Compilation et Traduction
Expressions rationnelles
Bouyekhf Rachid-Lyuboumir Gruitch Laboratoire SeT UTBM
IFT313 Introduction aux langages formels
Ensembles de test et morphismes sans répétition Francis Wlazinski - Gwénaël Richomme.
Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents.
Qu’est-ce qu’un ordinateur ?
Cours Systèmes logiques
IFT313 Introduction aux langages formels
Chapitre 2 : Matrice de répartition (S)
18/10/2004 P. Van Roy, InfoT4, S5 1 Informatique T4 Solutions au Test du 18 octobre Peter Van Roy Département dIngénierie Informatique, UCL
OCaml - Les listes L3 MI.
Analyse lexicale Généralités Expressions rationnelles Automates finis
IFT451 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
IFT313 Introduction aux langages formels
I.A. Session 2009/2010 E.P.S.I. Bordeaux – C.S.I.I – 2 ème Année – Cours n°3.
RDF(S)
Recherche Documentaire et traitement de l’information
Jacques Paradis Professeur
VOC 1 CE2 Je sais utiliser des mots de la vie quotidienne.
Etude dune bibliothèque: Permutations sur les listes.
Examen de compilation 4ème année - A
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
IFT313 Introduction aux langages formels Froduald Kabanza Département dinformatique Université de Sherbrooke Automates à pile LR Notion de poignée.
Expressions régulières et hash tables
Chapitre 3 Machines de Turing.
IFT Complexité et NP-complétude
1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages.
Chapitre 7: Le théorème de Kleene
Applications des langages hors-contextes Les analyseurs syntactiques ascendants GNU Yacc et Bison.
Chapitre 3 Syntaxe et sémantique.
Partie II Sémantique.
Institut Supérieur des Etudes Technologiques de Djerba Exposé du Traitement de Données Réalisé par: Khalifa Marwa Magroun Amira Jawadi Souad L2MDW.
Le diagramme d’activités
Programmation logique Le Langage PROLOG
Rappel Modèle analyse-synthèse de la compilation
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
IFT Complexité et NP-complétude Chapitre 0 Rappels.
Expressions régulières et hash tables
Paradigmes des Langages de Programmation
INTRODUCTION.
Potentiel électrostatique
Les machines de Turing Lionel Blavy Sébastien Giraud Fabien Tricoire
Algorithmes et Programmation
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 Racket (Lisp)
D♥(Rouge)V♦(Rouge)7♦(Rouge)8♥(Rouge)R♦(Rouge) 7♣(Noir)1♠(Noir)R♠(Noir)1♣(Noir)8♠(Noir) 9 ♥ (Rouge)V♠(Noir)D♠(Noir)10♣(Noir)D ♦ (Rouge) 7 ♥ (Rouge)10♠(Noir)V♣(Noir)
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Modèles d’entrelacement
La Magie du Calcul Gérard H. E. Duchamp (Université Paris XIII) Equipe AAA le 08 juin 2006.
Recherche par automates finis
Les transducteurs En anglais transducers.
Abdelkader Heni FUNDP Syntaxe et sémantique Abdelkader Heni FUNDP
MATHÉMATIQUES DISCRÈTES Chapitre 1 (Section 5)
Le diagramme de composants
Chap 1 Grammaires et dérivations.
CSI 3525, Grammaires, page 1 Description des langages –Syntaxe et sémantique –Grammaires –Sémantique axiomatique.
Systèmes formels 1. Définition d'un SF Morphologie Théorie propre
Ensembles de Nombres 1MPES4
Introduction à la programmation
Transcription de la présentation:

Notions de base de la théorie des langages Elaboré par : Habiba Bouzidi

Objectifs du cours 2 1 Connaître les concepts issus de la théorie des langages. 2 Générer des mots d’un langage précis. 3 Reconnaître l’appartenance d’un mot à un langage.

Plan du cours Définitions Système générateur (Grammaire) 3 Définitions Alphabet Mot Langage Système générateur (Grammaire) Système reconnaisseur (Automate) Types des langages Langage algébrique (Type2) Récapitulatif

Références Notes du cours de Mme Lamia El Abed (ISG Tunis) 4 Notes du cours de Mme Lamia El Abed (ISG Tunis) Daniel HERMAN, Théorie des langages et compilation, Octobre 2005, http://perso.univ-rennes1.fr/daniel.herman/ Editions-des-noisettes-et-des-sentiers/noisettes.html

Exemple: X={a, b}; Soit m1= abbab ; |a|=2, |m1|=5 Définitions Grammaire Automate Types des langages Langage algébrique ● ● ● ● ● ● ● ● ● ● ● 5 Alphabet : Ensemble fini de symboles (ou caractères), noté X Mot (ou phrase) : Suite finie d’éléments de X Notations: X*: L’ensemble des mots formés à partir de X | | : X+ → IN : Nombre d’occurrences de symboles de X x → |x| (ou Longueur d’un mot) Exemple: X={a, b}; Soit m1= abbab ; |a|=2, |m1|=5 X+: X* /{ε} :Ensemble de tous les mots, sauf le mot vide an : Le mot composé de n occurrences de a (a0 est le mot vide). |m|=dénote la longueur du mot m Vocabulaire {a, b} { il, ballon, ,joue, au, je} {if, then, else, C, X,=,0} Mots aab, bba, ababa je joue ballon, il joue if C then X=0, C if else

Langage : Un langage L sur X est une partie de X* Définitions Grammaire Automates Types des langages Langage algébrique ● ● ● ● ● ● ● ● ● ● ● 6 Langage : Un langage L sur X est une partie de X*  Un langage est un ensemble de mots Exemple: X={a,b} L1:{aa, abba, bba }: langage fini L2 = = {ab, aaaab, a…….b}: langage infini Comment décrire un langage d’une manière formelle pour faciliter son traitement par un ordinateur? Il nous faut un moyen pour décrire sans ambiguïté ce qu’est un langage de plus les descriptions informelles se prêtent très mal à des traitements informatiques.

Formalisme général permettant de décrire un langage. Définitions Grammaire Automates Types des langages Langage algébrique ● ● ● ● ● ● ● ● ● ● ● 7 Formalisme général permettant de décrire un langage. Repose sur l’utilisation d’un mécanisme génératif capable de produire tous les mots d’un langage donné. Définition Une grammaire est un quadruplet G = (VT, VN, S, P) où: VT : vocabulaire terminal qui est le vocabulaire du langage VN : vocabulaire non-terminal, (VN ∩ VT = ∅) S : axiome: Є VN P : un ensemble de règles de la forme A → B, A ≠ ε, où A et B Є (VN ∪ VT)* Une règle α → β : α peut être réécrit en β permet de réécrire des mots sur VN ∪ VT Exemple : L’origine :les travaux de Noam CHOMSKY Exemple :soit α → β ∈ P , si on a un mot ω1αω2, alors le mot ω1βω2 peut être dérivé , et bien sûre ω1βω2 et ω1αω2 Є (VN ∪ VT)* α β ω2 β ω1 α G

Définitions Grammaire Automates Types des langages Langage algébrique ● ● ● ● ● ● ● ● ● ● ● 8 Exemple G=({a}, {S,S1}, S, P) VT : {a} VN : {S,S1} P : (SaS1, S1aS1 , S1  ε) Notation Etant donné une grammaire G, le langage L(G) est défini par : L(G) = { m ∈ X* | S ⇒G* m} L(G)={an/ n ≥1} SaS1 S1aS1| ε 1). G = <S>::a<S1> <S1>::a<S1>| ε 2). G = 2). C’est la forme BNF : Backus Normal Form L(G) = le langage engendré par G L est composé des mots , m tel qu’en commençant de l’axiome S et en appliquant l’{} des règles de la grammaire G on peut trouver m.

Définitions Grammaire Automates Types des langages Langage algébrique ● ● ● ● ● ● ● ● ● ● ● 9 Un automate permet de caractériser un langage (les mots acceptés). Définition Un automate à état fini est le cinquplet A = (Q, VT, δ, q0, F) avec Q: Ensemble fini d’états F : Ensemble des états finaux δ : Fonction de transition , δ: Q X VTQ q0 : Etat initial Un mot m Automate G Oui : si m ∈ L(G) Non :sinon Un automate est un algorithme (une machine) prenant en entrée un mot et donnant une réponse oui (l’automate accepte le mot) ou non (l’automate refuse le mot). On dit qu’une grammaire est un procédé génératif alors qu’un automate fonctionne en reconnaissance.

Reconnaître les mot du langage L={ac*b}={ab, acb,accb,acccb,…} Définitions Grammaire Automates Types des langages Langage algébrique ● ● ● ● ● ● ● ● ● ● ● 10 Exemple: Reconnaître les mot du langage L={ac*b}={ab, acb,accb,acccb,…} A = ({q0,q1,q2}, {a,b,c}, δ, q0, {q2}) δ: Q X VTQ (q0,a) q1 (q1,b)q2 (q1,c)q1 Exemple: on pourra vérifier si un mot (ex: w=acccc) appartient à L en parcourant le mot de gauche à droite et en naviguant dans l’automate selon la fonction de transition δ. Le mot est accepté si tout les symboles sont lu et on est dans un état final a b q0 q1 q2 c

Type 3:langage régulier Toutes les règles sont sous la forme: Définitions Grammaire Automates Types des langages Langage algébrique ● ● ● ● ● ● ● ● ● ● ● 11 Type 3:langage régulier Toutes les règles sont sous la forme: α → x ou α → xβ Avec x Є VT ; α et β Є VN Type 2: Langage algébrique α → β avec α Є VN ; et β Є (VN U VT ) * Type 1:langage à contexte lié α → β avec α Є (VN U VT )+ , β Є (VN U VT )* et | α |<=| β | Type 0: Aucune restriction sur la forme des règles Exemple 1: pour un langage L={a*} G= SaS Sε SSa ou Exemple 2: Soit L={an bn /n ≥1} G= SaSb|ab Exemple 3: Soit L={an bn cn/n ≥0} G= Sε SaRbc|abc RaRTb R aTb TbbT Tccc Les grammaires peuvent être plus ou moins compliquées. Une hiérarchie a été proposée par CHOMSKY et dépend de la forme des règles. Si on a α → x ou α → xβ : grammaire régulière à gauche (respectivement si on a α → βx elle est régulière à droite) On constate une inclusion des diverses classes.

* {anbn/n≥0}, Langages de programmation Définitions Grammaire Automates Types des langages Langage algébrique ● ● ● ● ● ● ● ● ● ● ● 12 Hiérarchie de Chomsky * Langage naturel * | α | ≤ | β | * {anbncn/n≥1} * A → β * {anbn/n≥0}, Langages de programmation * Automate à pile * A → a ou A → aB * {Ac*b}, langage de commandes * Automate à états finis Type 0 Type 1 Type 2 Toutes les grammaires sont de type 0. •Toutes les grammaires dont les règles α → β vérifient | α | ≤ | β | sont de type 1. •Toutes les grammaires dont les règles sont de la forme A → β sont de type 2. •Toutes les grammaires dont les règles sont de la forme A → a ou de la forme A → aB sont de type 3. Type 3

Définitions Grammaire ambigüe : Définitions Grammaire Automates Types des langages Langage algébrique ● ● ● ● ● ● ● ● ● ● ● 13 Définitions Grammaire ambigüe : Un mot est ambigüe s’il dispose de plus qu’une suite de dérivation gauche(ou droite) Une grammaire est ambigüe si elle génère au moins un mot ambigüe Factorisation à gauche : AaB|aC  Exemple: soit G= E →E+E | E*E G’= A → aD D → B |C Exemple: apres avoir éliminer la factorisation à gauche, le choix de la règle à appliquer lors de la dérivation sera guidé par le symbole courant(dans le mot) E →E E’ E’ →+E|*E

Exemple : soit G = S →Sa|a Définitions Grammaire Automates Types des langages Langage algébrique ● ● ● ● ● ● ● ● ● ● ● 14 Récursivité à gauche : A → Aα| β  Exemple : soit G = S →Sa|a m=aaa , dérivation de m= S=>Sa=>Saa=>Saaa…. boucle infinie Soit G’= G’G Dérivation de m: S=>aS’=>aaS’=>aaaS’aaa ε=>aaa = m est accepté A → α A’ A’ → β A’ | ε S → aS’ S’ →aS’| ε Dans la dérivation d’un mot, on compare toujours le premier symbole du mot avec le premien symbole dans la suite de dérivation(dans notre cas on compare S et a, et on ne passera jamais au second symbole…)

Soit un alphabet X={a,b}, Définitions Grammaire Automates Types des langages Langage algébrique ● ● ● ● ● ● ● ● ● ● ● 15 Soit un alphabet X={a,b}, écrire la grammaire du langage formé sur X et constitué des palindromes. Quel est le type de cette grammaire ? Donner un exemple de dérivation d’un mot. Solution: 2. 1. Cette grammaire est de Type 2 car S Є VN , a S a Є (VN U VT ) * S → a S a S → b S b (α Є VN et β Є (VN U VT ) * ) S → a S → b 3. S → ε SaSaabSbaabaSaba abaεaba Le mot est abaaba

Récapitulatif 16 La théorie des langages = Comprendre le fonctionnement des langages. Un langage = Ensemble de mots Un mot (ou lexème) = Une combinaison de symboles L'ensemble des symboles élémentaires  alphabet La fonction associant l'alphabet au langage  grammaire On peut associer à une grammaire un automate Déterminer si un mot fait partie d'un langage. Domaines d’application : les compilateurs…

Merci pour votre attention bouzidi.habiba@yahoo.fr