Notions de base de la théorie des langages
Elaboré par : Habiba Bouzidi Institut supérieur de gestion
Avril 2010
Objectifs du cours
2
• Connaître les concepts issus de la théorie des langages.
1 • Générer des mots d’un langage précis.
2
3
Habiba Bouzidi
• Reconnaître l’appartenance d’un mot à un langage.
Notions de base de la théorie des langages
ISG Tunis - 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
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
Habiba Bouzidi
Notions de base de la théorie des langages
ISG Tunis - Avril 2010
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). Vocabulaire
• {a, b} • { il, ballon, ,joue, au, je} • {if, then, else, C, X,=,0} Habiba Bouzidi
Mots
• aab, bba, ababa • je joue ballon, il joue • if C then X=0, C if else
Notions de base de la théorie des langages
ISG Tunis - Avril 2010
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 = w X * / w aw'b et w' X * = {ab, aaaab, a…….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 - Avril 2010
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 : α ω1 Habiba Bouzidi
β α
ω2
G
ω1
β
ω2
Notions de base de la théorie des langages
ISG Tunis - Avril 2010
Définitions ●●
Grammaire ●●
Automates ●●
Types des langages ●●
Langage algébrique ●●● 8
• Exemple G=({a}, {S,S1}, S, P) VT : {a} VN : {S,S1} P : (SaS1, S1aS1 , S1 ε)
L(G)={an/ n ≥1}
• Notation 1). G =
SaS1 S1aS1| ε
2). G =
::a ::a| ε
Etant donné une grammaire G, 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 - 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, VT, δ, q0, F) avec Q: Ensemble fini d’états F : Ensemble des états finaux δ : Fonction de transition , δ: Q X VTQ q0 : Etat initial
Habiba Bouzidi
Notions de base de la théorie des langages
ISG Tunis - Avril 2010
Définitions ●●
Automates
Grammaire ●●
●●
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
q0
b q1
q2
c
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
• Type 2: Langage algébrique Toutes les règles sont sous la forme: α → β avec α Є VN ; et β Є (VN U VT ) *
• Type 1:langage à contexte lié
Exemple 1: pour un langage L={a*}
G=
SaS ou Sε
SSa Sε
Exemple 2: Soit L={an bn /n ≥1} G=
SaSb|ab
Exemple 3: Soit L={an bn cn/n ≥0}
Toutes les règles sont sous la forme: Sε α → β avec α Є (VN U VT )+ , β Є (VN U VT )* et | α |Sa=>Saa=>Saaa…. 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éfinitions ●●
Grammaire ●●
Automates ●●
Types des langages ●●
Langage algébrique ●● ●
15
• Soit un alphabet X={a,b}, 1. écrire la grammaire du langage formé sur X et constitué des palindromes. 2. Quel est le type de cette grammaire ? 3. Donner un exemple de dérivation d’un mot. Solution: 1. S→aSa S→bSb S→a S→b S→ε
Habiba Bouzidi
2. Cette grammaire est de Type 2 car S Є VN , a S a Є (VN U VT ) * (α Є VN et β Є (VN U VT ) * ) 3. SaSaabSbaabaSaba abaεaba Le mot est abaaba Notions de base de la théorie des langages
ISG Tunis - Avril 2010
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… Habiba Bouzidi
Notions de base de la théorie des langages
ISG Tunis - Avril 2010
Merci pour votre attention
[email protected]