280 likes | 815 Views
Notions de base de la théorie des langages. Elaboré par : Habiba Bouzidi. Objectifs du cours. 2. 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.
E N D
Notions de base de la théorie des langages Elaboré par : Habiba Bouzidi
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
Références 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
DéfinitionsGrammaire 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).
DéfinitionsGrammaire 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?
DéfinitionsGrammaire 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 surVN∪VT Exemple : α β α ω2 ω1 β ω2 ω1 G
DéfinitionsGrammaire Automates Types des langages Langage algébrique • ● ● ● ● ● ● ● ● ● ● ● 8 • Exemple G=({a}, {S,S1}, S, P) VT : {a} VN : {S,S1} P : (SaS1, S1aS1 , 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} 1). G = 2). G = <S>::a<S1> <S1>::a<S1>| ε SaS1 S1aS1| ε
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 VTQ q0 : Etat initial Un mot m Automate G Oui : si m ∈ L(G) Non :sinon
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 VTQ (q0,a) q1 (q1,b)q2 (q1,c)q1 a b q1 q0 q2 c
Définitions Grammaire Automates TypesdeslangagesLangage algébrique • ● ● ● ● ● ● ● ● ● ● ● 11 Exemple 3: Soit L={an bncn/n≥0} G= Exemple 2: Soit L={an bn/n≥1} G= • 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 Toutes les règles sont sous la forme: α → β avec α Є VN ; et β Є (VN U VT ) * • Type 1:langage à contexte lié Toutes les règles sont sous la forme: α → β 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ε SaRbc|abc RaRTb R aTb TbbT Tccc SaSb|ab SSa Sε SaS Sε ou
Définitions Grammaire Automates TypesdeslangagesLangage algébrique • ● ● ● ● ● ● ● ● ● ● ● 12 • Hiérarchie de Chomsky Type 0 Type1 Type 2 Type3
Définitions Grammaire Automates Types des langages Langagealgé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 Exemple: soit G= E →E+E | E*E G’= A → aD D → B |C E →E E’ E’ →+E|*E
Définitions Grammaire Automates Types des langages Langagealgé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é S → aS’ S’ →aS’| ε A → α A’ A’ → β A’ | ε
Définitions Grammaire Automates Types des langages Langagealgé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: 1. S → a S a S → b S b S → a S → b S → ε 2. Cette grammaire est de Type 2 car S Є VN , a S a Є (VN U VT ) * (α Є VN et β Є (VN U VT ) * ) 3. SaSaabSbaabaSabaabaεaba Le mot est abaaba
Récapitulatif 16 • La théorie des langages = Comprendre le fonctionnement des langages. • Un langage = Ensemble de mots • Unmot (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 automateDéterminer si un mot fait partie d'un langage. • Domaines d’application : lescompilateurs…
Merci pour votre attention bouzidi.habiba@yahoo.fr