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

Notions de base de la théorie des langages

Présentations similaires


Présentation au sujet: "Notions de base de la théorie des langages"— Transcription de la présentation:

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

2 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.

3 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

4 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, Editions-des-noisettes-et-des-sentiers/noisettes.html

5 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

6 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.

7 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

8 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.

9 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.

10 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

11 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.

12 * {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

13 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

14 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…)

15 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

16 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…

17 Merci pour votre attention


Télécharger ppt "Notions de base de la théorie des langages"

Présentations similaires


Annonces Google