Notions de base de la théorie des langagesElaboré par : Habiba Bouzidi Institut supérieur de gestion Avril 2010 3 Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis . 2 • Reconnaître l’appartenance d’un mot à un langage. 2 1 • Générer des mots d’un langage précis.Objectifs du cours • Connaître les concepts issus de la théorie des langages.Avril 2010 . Plan du cours 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 Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis .Avril 2010 . http://perso. Théorie des langages et compilation.univ-rennes1.Références 4 Notes du cours de Mme Lamia El Abed (ISG Tunis) Daniel HERMAN.fr/daniel. Octobre 2005.html Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis .herman/ Editions-des-noisettes-et-des-sentiers/noisettes.Avril 2010 . Soit m1= abbab . au.0} Habiba Bouzidi • aab. je} • {if.Avril 2010 Notions de base de la théorie des langages .joue. ababa • je joue ballon. C if else ISG Tunis . then. bba. b}. sauf le mot vide • an : Le mot composé de n occurrences de a (a0 est le mot vide). C.Définitions ●● Grammaire ●● Automate ●● Types des langages ●● Langage algébrique ●●● 5 • Alphabet : Ensemble fini de symboles (ou caractères). .=. ballon. 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. |m1|=5 • X+: X* /{ε} :Ensemble de tous les mots. X. else. Vocabulaire Mots • {a. |a|=2. b} • { il. il joue • if C then X=0. bba }: langage fini • L2 = w X * / w aw'b et w' X * = {ab.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.Avril 2010 . a……. abba.b} • L1:{aa. aaaab.b}: langage infini Comment décrire un langage d’une manière formelle pour faciliter son traitement par un ordinateur? Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis . • Définition Une grammaire est un quadruplet G = (VT. (VN ∩ VT = ∅) S : axiome: Є VN P : un ensemble de règles de la forme A → B. S. VN. • Repose sur l’utilisation d’un mécanisme génératif capable de produire tous les mots d’un langage donné. 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 : α ω1 Habiba Bouzidi β α ω2 G ω1 β ω2 ISG Tunis .Avril 2010 Notions de base de la théorie des langages .Définitions ●● Grammaire ●● Automates ●● Types des langages ●● Langage algébrique ●●● 7 • Formalisme général permettant de décrire un langage. P) où: VT : vocabulaire terminal qui est le vocabulaire du langage VN : vocabulaire non-terminal. S1}. S1 ε) L(G)={an/ n ≥1} • Notation 1).Avril 2010 .S1} P : (SaS1. S. S1aS1 . G = <S>::a<S1> <S1>::a<S1>| ε Etant donné une grammaire G.Définitions ●● Grammaire ●● Automates ●● Types des langages ●● Langage algébrique ●●● 8 • Exemple G=({a}. G = SaS1 S1aS1| ε 2). {S. le langage L(G) est défini par : L(G) = { m ∈ X* | S ⇒G* m} Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis . P) VT : {a} VN : {S. q0. δ.Avril 2010 .Définitions ●● Grammaire ●● Automates ●● Types des langages ●● Langage algébrique ●●● 9 Un mot m Automate G Oui : si m ∈ L(G) Non :sinon • Un automate permet de caractériser un langage (les mots acceptés). • Définition Un automate à état fini est le cinquplet A = (Q. δ: Q X VTQ q0 : Etat initial Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis . F) avec Q: Ensemble fini d’états F : Ensemble des états finaux δ : Fonction de transition . VT. q0. δ. {a.acccb.q1.Avril 2010 .b)q2 (q1.…} A = ({q0.a) q1 (q1.q2}.c)q1 a b q1 q2 q0 c Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis . {q2}) δ: Q X VTQ (q0.Définitions ●● Grammaire ●● Automates ●● Types des langages ●● Langage algébrique ●●● 10 • Exemple: Reconnaître les mot du langage L={ac*b}={ab. acb.c}.b.accb. et β Є (VN U VT ) * Exemple 2: Soit L={an bn /n ≥1} G= SaSb|ab • Type 1:langage à contexte lié Toutes les règles sont sous la forme: Sε α → β avec α Є (VN U VT )+ . β Є (VN U VT )* et | α |<=| β | SaRbc|abc G= Exemple 3: Soit L={an bn cn/n ≥0} RaRTb R aTb TbbT Tccc • Type 0: Aucune restriction sur la forme des règles Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis .Avril 2010 .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 Exemple 1: pour un langage L={a*} SaS ou Sε SSa Sε G= • Type 2: Langage algébrique Toutes les règles sont sous la forme: α → β avec α Є VN . Définitions ●● Grammaire ●● Automates ●● Types des langages ●● Langage algébrique ●●● 12 • Hiérarchie de Chomsky * Langage naturel Type 0 Type 1 * |α|≤|β| * {anbncn/n≥1} *A→β * {anbn/n≥0}. langage de commandes * Automate à états finis Type 2 Type 3 Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis . Langages de programmation * Automate à pile * A → a ou A → aB * {Ac*b}.Avril 2010 . Avril 2010 .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 : AaB|aC A → aD D → B |C Exemple: soit G= E →E+E | E*E G’= E →E E’ E’ →+E|*E Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis . Définitions ●● Grammaire ●● Automates ●● Types des langages ●● Langage algébrique ●●● 14 – Récursivité à gauche : A → Aα| β A → α A’ A’ → β A’ | ε Exemple : soit G = S →Sa|a • m=aaa . boucle infinie • Soit G’= S → aS’ S’ →aS’| ε • G’G • Dérivation de m: S=>aS’=>aaS’=>aaaS’aaa ε=>aaa = m est accepté Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis .Avril 2010 . dérivation de m= S=>Sa=>Saa=>Saaa…. SaSaabSbaabaSaba abaεaba Le mot est abaaba Notions de base de la théorie des langages ISG Tunis . 2.Avril 2010 Habiba Bouzidi . Solution: 1.Définitions ●● Grammaire ●● Automates ●● Types des langages ●● Langage algébrique ●● ● 15 • Soit un alphabet X={a. Donner un exemple de dérivation d’un mot. Cette grammaire est de Type 2 car S Є VN . a S a Є (VN U VT ) * (α Є VN et β Є (VN U VT ) * ) 3. Quel est le type de cette grammaire ? 3. écrire la grammaire du langage formé sur X et constitué des palindromes. 1. S→aSa S→bSb S→a S→b S→ε 2.b}. ¤ Domaines d’application : les compilateurs… Habiba Bouzidi Notions de base de la théorie des langages ISG Tunis . ¤ 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.Avril 2010 .Récapitulatif 16 ¤ La théorie des langages = Comprendre le fonctionnement des langages. Merci pour votre attention [email protected] .