Vous êtes sur la page 1sur 5

13/10/2015

Objectifs de la matire
La thorie des langages a pour objectif de dcrire
les langages formels.
Lobjectif de cette matire est de matriser les
types de langages existants ainsi que les
automates qui permettent de les reconnatre.
Ce cours est une base pour le cours de
compilation.

Cours de thorie des langages


Responsable du cours et des TDs : Mr. BESSAOUD

Le 30/09/2015

Un Langage

Un alphabet

Qu'est-ce quun langage ?


Tout systme permettant de sexprimer. Exemple :

Un ensemble de symboles fini permettant de


construire les mots dun langage.
Exemple :

Langage linguistique
Langage mathmatique
Langage informatique

{0,1}
{if, then, else, x, y, z}
{+, -, *, /, =, a, b}

La thorie des langages tudie les aspects purement


syntaxiques de tels langages, c'est--dire leurs
structures internes formelles.
Syntaxe des langages :
Mots
Symboles

Un mot
Un mot sur un alphabet est une squence finie et
ordonne, ventuellement vide, de symboles de
lalphabet.
Exemple :
100111 est un mot de lalphabet {0, 1}
a=b est un mot de lalphabet {+, -, *, /, =, a, b}

Le mot vide est not .

Proprits
La longueur dun mot m est not m.
La concatnation : Soient deux mots u et v
dfinis sur un alphabet A. La concatnation de u
avec v, note u.v ou simplement uv, est le mot
form en faisant suivre les symboles de u par les
symboles de v.

13/10/2015

La puissance

Un langage
Un langage, dfini sur un alphabet A, est un ensemble de mots
dfinis sur A. Autrement dit, un langage est un sous-ensemble
de A.
Description dun langage :

On note A+ lensemble des mots de longueur


suprieure ou gale 1 que lon peut construire
partir de lalphabet A.
On note A lensemble des mots que lon peut
construire partir de A, y compris le mot vide :
A = {} A+
Etant donne u et v deux mots, on note :

Un langage fini peut tre dcrit par lnumration des mots qui le
composent.
Certains langages infinis peuvent tre dcrits par lapplication
doprations des langages plus simples.
Certains langages infinis peuvent tre dcrits par un ensemble de
rgles appel grammaire.
Enfin, certains langages infinis ne peuvent pas tre dcrits, ni par
lapplication doprations, ni par un ensemble de rgles. On parle
alors de langage indcidable. On peut noter que si un langage est
indcidable, alors il nexiste pas dalgorithme permettant de
dterminer si un mot donn appartient ce langage.

(uv)2 pour uvuv


u3v pour uuuv
(u3v)2 pour uuuvuuuv

Une grammaire

10

Une grammaire
Une grammaire est un quadruplet G = (T, N, S, R) tel que :
T est le vocabulaire terminal, cest--dire lalphabet sur lequel
est dfini le langage.
N est le vocabulaire non terminal, cest--dire lensemble des
symboles qui napparaissent pas dans les mots gnrs, mais
qui sont utiliss au cours de la gnration. Un symbole non
terminal dsigne une catgorie syntaxique.
S N est le symbole de dpart ou axiome. Cest partir de ce
symbole non terminal que lon commencera la gnration de
mots au moyen des rgles de la grammaire.
R est un ensemble de rgles de production de la forme :
u v, avec u (N T)+ et v (N T)

Un langage peut tre dcrit par un certain nombre


de rgles. Pour les langages naturels, le but tant de
donner une description prcise des rgles
permettant de construire les phrases correctes dune
langue.
Dans notre contexte, le but est de donner une
description prcise des rgles permettant de
construire tous les mots dun langage.
Remarques : Une grammaire dfinit un seul
langage. Par contre, un mme langage peut tre
engendr par plusieurs grammaires diffrentes.

11

La rgles de production
u v, avec u (N T)+ et v (N T)

u ne peux pas tre .

On dit que v drive directement de u.


Lorsquon a u u1 u2 u3 u4 v : on
* v
dit que v drive de u et on le note u
L(G)= {mT* / S * m}

12

Exemple de grammaire
Soit une grammaire G = (T, N, S, R) tel que :
T={0,1}
N={S}
R={S 0S/1S/}

Exemple de mots gnrs par cette grammaire :

: S
0 : S 0S0
1 : S 1S1
00 : S 0S00S00
01 : S 0S01S01
11, 10, 000, 110, 101

La grammaire gnre les nombres binaires.


Le langage gnr par cette grammaire est : (0*1*)*

13/10/2015

13

Types de grammaires

14

Types de grammaires

En introduisant des critres sur la forme des rgles de


grammaire, on obtient des classes de grammaires
hirarchises, ordonnes par inclusion. La classification
de CHOMSKY, distingue quatre classes de grammaires :
Type 3 : grammaires rgulires gnres des langages
rguliers,
Type 2 : grammaires algbriques gnres des langages
algbriques,
Type 1 : grammaire contextuelles gnres des langages
contextuels,
Type 0 : grammaire sans restriction gnres des langages
dcidables.

Il existe une relation


dinclusion entre ces 4 types de
grammaires : type 3 type 2
type 1 type 0.
Par contre, on entend par
grammaire de type i le premier
type satisfaisant la grammaire
en commenant par le plus
restrictif.
Une grammaire de type 1 sous
entend implicitement quelle
nest pas de type 2 et donc pas
de type 3.

Type 3

Type 2
Type 1
Type 0

15

Grammaires de type 3

16

Grammaires de type 2

Il existe deux types de grammaires rgulires :

Les rgles de R sont de la forme :


S m avec S N et m (N T)*

Grammaires rgulires droite : Les rgles de R sont de la forme


S aS ou S a avec S, S N et a T
Grammaires rgulires gauche. Les rgles de R sont de la forme
S Sa ou S a avec S, S N et a T

La seule restriction concerne la partie gauche de


la rgle qui doit tre constitu dun seul symbole
non terminal.

La partie gauche de chaque rgle est constitu dun seul


symbole non terminal, et la partie droite est constitu dun
symbole terminal et ventuellement dun symbole non
terminal.
Pour les grammaires rgulires droite, le symbole non
terminal doit toujours se trouver droite du symbole terminal
tandis que pour les grammaires rgulires gauche, il doit se
trouver gauche.

17

Grammaires de type 1
Les rgles de R sont de la forme :
uSv umv avec S N, u, v(NT)* et m(NT)+

18

Grammaires de type 0
Pas de restriction sur les rgles

Le symbole non terminal S est remplac par m


tout en gardant le prfixe u gauche et le suffixe
v droite.

13/10/2015

19

Automates

20

Composition dun automate

Le mot 1101 appartient-il au langage (0*1*)*?

Il existe plusieurs types dautomates, cependant,


ils ont tous une structure commune.
Un automate est compos de quatre parties :
1. une bande de lecture
2. une tte de lecture
3. une mmoire
4. une unit de contrle

Un automate est une machine qui permet de lire


un mot m et de dire formellement si m
appartient un langage donn.
Un automate est un reconnaisseur qui permet de
reconnaitre tous les mots dun langage.

21

La bande de lecture

22

La tte de lecture

Une bande de lecture est compose dune


succession de cases.
Cest dans les cases de cette bande de lecture
quest crit le mot reconnatre.
Chaque case pouvant contenir un seul symbole
de lalphabet dentre.

Une tte de lecture peut lire une case un


instant donn.
La case sur laquelle se trouve la tte de lecture
un moment donn sappelle la case courante.
La tte peut tre dplace par lautomate pour se
positionner sur la case immdiatement gauche
ou droite de la case courante.

23

La mmoire
La mmoire nest pas toujours prsente dans un
automate.
La mmoire possde un alphabet spcial.
La mmoire est caractrise par des fonctions de
recherche et de stockage.

24

Lunit de contrle
Lunit de contrle constitue le cur dun automate.
Elle peut tre vue comme un programme qui dicte
lautomate son comportement.
Elle est dfinie par un ensemble fini dtats ainsi que
par une fonction de transition qui dcrit le passage
dun tat un autre en fonction du contenu de la
case courante de la bande de lecture et du contenu
de la mmoire.
Lunit de contrle dcide aussi de la direction dans
laquelle dplacer la tte de lecture et choisit quels
symboles stocker dans la mmoire.

13/10/2015

25

Dfinition formelle dun automate


Un automate contient au minimum :

Un alphabet pour les mots en entre not A


Un ensemble non vide dtats not Q
Un ensemble non vide dtats initiaux not e0 Q
Un ensemble non vide dtats finaux ef Q
Une fonction de transition (permettant de changer
dtat) note .

26

Langages grammaires - automates


Langages

Grammaires

Automates

Langages rguliers

Type 3 ou grammaires
rgulires

Automates tats finis

Langages algbriques

Type 2 : grammaires
algbriques

Automates piles

Langages contextuels

Type 1 : grammaires
contextuelles

Machines de Turing
borne linaire

Langages dcidables

Type 0 : grammaires
sans restriction

Machines de Turing

Vous aimerez peut-être aussi