Vous êtes sur la page 1sur 4

06/10/2021

1 2

Un langage

• Un langage, défini sur un alphabet A, est un


ensemble de mots définis sur A.
Cours de Compilation • Description d’un langage :
▫ Un langage fini peut être décrit par l’énumération
Cours : Rappel sur la théorie des langages des mots qui le composent.
▫ Certains langages infinis peuvent être décrits par
Responsable du cours : M. BESSAOUD
l’application d’opérations à des langages plus
Mail : bessaoud.univ.mosta@gmail.com simples.
▫ Certains langages infinis peuvent être décrits par
un ensemble de règles appelé grammaire.

3 4

Un alphabet Un mot

• Un ensemble de symboles fini permettant de • Un mot sur un alphabet est une séquence finie et
construire les mots d’un langage. ordonnée, éventuellement vide, de symboles de
• Exemple : l’alphabet.
▫ A1={0,1} • Exemple :
▫ A2={if, then, else, cond, =, x, y, z} ▫ 100111 est un mot de l’alphabet A1={0, 1}
▫ A3={+, -, *, /, =, a, b} ▫ if cond then x=y est un mot de l’alphabet A2
▫ a=b est un mot de l’alphabet A3
• Le mot vide est noté .
• La longueur d’un mot m est noté m.

5 6

Opérations sur les langages La concaténation

• Un langage est un ensemble de mots. • Soient deux mots u et v définis sur un alphabet
▫ Les opérations définies sur les ensembles peuvent A. La concaténation de u avec v, notée u.v ou
être appliquées aux langages simplement uv, est le mot formé en faisant
 Union - L1 U L2 suivre les symboles de u par les symboles de v.
 Intersection - L1  L2 • Exemple : u=10 et v=001 alors uv=10001
 Complément - C(L1) • Soient deux langages L1 et L2 définis sur un
▫ Il existe aussi d’autres opérations spécifiques aux alphabet A. La concaténation de L1 avec L2,
langages : notée L1L2, est le langage formé par les mots uv
 La concaténation
tel que u appartient a L1 et v appartient a L2.
 La puissance
▫ L1L2 = {m/m = uv avec u  L1 et v  L2}
 L’image miroir

1
06/10/2021

7 8

La puissance Quelques règles d’équivalence


• Soit L1,L2 et L3 trois langages définis sur A.
• Etant donnée u et v deux mots, on note :
▫ (uv)2 pour uvuv ▫ L1 U L2 = L2 U L1
▫ u3v pour uuuv ▫ L1 U  = L1
▫ (u3v)2 pour uuuvuuuv ▫ L1 U L1 = L1
▫ (L1 U L2)L3 = L1L3 U L2L3
• On note L1n, le langage des mots constitués de la
concaténation de n mots de L1. ▫ .L1 =L1.=
▫ * =
• On note A∗ l’ensemble des mots que l’on peut
construire à partir de A, y compris le mot vide :
A∗ = {} ∪ A+

9 10

Une grammaire Une grammaire


• Une grammaire est un quadruplet G = (T, N, S, R) tel que :
▫ T est le vocabulaire terminal, c’est-à-dire l’alphabet sur lequel
• Un langage peut être décrit par un certain est défini le langage.
nombre de règles, le but est de donner une ▫ N est le vocabulaire non terminal, c’est-à-dire l’ensemble des
description précise des règles permettant de symboles qui n’apparaissent pas dans les mots générés, mais
qui sont utilisés au cours de la génération. Un symbole non
construire tous les mots d’un langage. terminal désigne une “catégorie syntaxique”.
• Remarques : Une grammaire définit un seul ▫ S ∈ N est le symbole de départ ou axiome. C’est à partir de ce
symbole non terminal que l’on commencera la génération de
langage. Par contre, un même langage peut être mots au moyen des règles de la grammaire.
engendré par plusieurs grammaires différentes. ▫ R est un ensemble de règles de production de la forme :
u → v, avec u ∈ (N ∪ T)+ et v ∈ (N ∪ T)∗

11 12

La règle de production Exemple de grammaire

• u → v, avec u ∈ (N ∪ T)+ et v ∈ (N ∪ T)∗ • Soit une grammaire G = (T, N, S, R) tel que :


▫ T={0,1}
 u ne peut pas être . ▫ N={S}
▫ On dit que v dérive directement de u ▫ R={S  0S/1S/}
• Exemple de mots générés par cette grammaire :
• Lorsqu’on a u → u1→ u2→ u3…→ u4→ v : on ▫  : S
dit que v dérive de u et on le note u
* v ▫ 0 : S 0S0
▫ 1 : S 1S1
• L(G)= {mT* / S  * m}
▫ 00 : S 0S00S00
▫ 01 : S 0S01S01
▫ 11, 10, 000, 110, 101…
• La grammaire génère les nombres binaires.
• Le langage généré par cette grammaire est : (0*1*)*

2
06/10/2021

13 14

Types de grammaires Automates


• En introduisant des critères sur la forme des règles de
grammaire, on obtient des classes de grammaires • Le mot 1101 appartient-il au langage (0*1*)*?
hiérarchisées, ordonnées par inclusion. La classification
de CHOMSKY, distingue quatre classes de grammaires :
▫ Type 3 : grammaires régulières génèrent des langages
réguliers, • Un automate est une machine qui permet de lire
▫ Type 2 : grammaires algébriques génèrent des langages
un mot m et de dire formellement si m
algébriques,
▫ Type 1 : grammaire contextuelles génèrent des langages appartient à un langage donné.
contextuels, • Un automate est un reconnaisseur qui permet de
▫ Type 0 : grammaire sans restriction génèrent des langages reconnaitre tous les mots d’un langage.
décidables.

15 16

Composition d’un automate La bande de lecture

• Il existe plusieurs types d’automates, cependant, • La bande de lecture est composée d’une
ils ont tous une structure commune. succession de cases.
• Un automate est généralement composé de : • C’est dans les cases de cette bande de lecture
1. une bande de lecture qu’est écrit le mot à reconnaître.
2. une tête de lecture • Chaque case pouvant contenir un seul symbole
3. une unité de contrôle de l’alphabet d’entrée.

17 18

La tête de lecture L’unité de contrôle

• La tête de lecture peut lire une case à un instant • L’unité de contrôle constitue le cœur d’un automate.
donné. • Elle peut être vue comme un programme qui dicte à
l’automate son comportement.
• La case sur laquelle se trouve la tête de lecture à
• Elle est définie par un ensemble fini d’états ainsi que
un moment donné s’appelle la case courante. par une fonction de transition qui décrit le passage
• La tête peut être déplacée par l’automate pour se d’un état à un autre en fonction du contenu de la
positionner sur la case immédiatement à gauche case courante de la bande de lecture et du contenu
ou à droite de la case courante. de la mémoire.
• L’unité de contrôle décide aussi de la direction dans
laquelle déplacer la tête de lecture et choisit quels
symboles stocker dans la mémoire.

3
06/10/2021

19 20

Définition formelle d’un automate Langages – grammaires - automates

• Un automate est défini au minimum par : Langages Grammaires Automates

▫ Un alphabet pour les mots en entrée noté A Type 3 : Langages grammaires régulières Automates à états finis
réguliers
▫ Un ensemble non vide d’états noté Q Type 2 : Langages grammaires Automates à piles
▫ Un ensemble non vide d’états initiaux noté I  Q algébriques algébriques

▫ Un ensemble d’états finaux F  Q Type 1 : Langages


contextuels
grammaires
contextuelles
Machines de Turing à
borne linéaire
▫ Une fonction de transition (permettant de changer Type 0 : Langages grammaires sans Machines de Turing
d’état) notée δ. récursivement restriction
énumérable

Vous aimerez peut-être aussi