Cours de théorie des langages

November 2, 2018 | Author: AmineGhob | Category: Formalism (Deductive), Mathematics, Physics & Mathematics, Linguistics, Logic
Share Embed Donate


Short Description

Une introduction à la théorie du language...

Description

13/10/2015

!



Objectifs de la matière # La t$%or&e t$%or&e des lan'a'es lan'a'es a pour ob(ect&) ob(ect&) de d%cr&re d%cr&re les lan'a'es lan'a'es )or*els. # L+ob(ect&) de cette *at&,re est de *a-tr&ser les tpes de lan'a'es e&stants a&ns& ue les auto*ates u& per*ettent de les reconna-tre. # 1e cours est une base pour le cours de co*p&lat&on.

Cours de théorie des langages Responsable du cours et des des TDs : Mr. BESSAOUD

Le 30/09/0!"

3

Un Langage

?

Un alphabet

# 2uest4ce u+un lan'a'e 5 Tout sst,*e per*ettant de s+epr&*er. Ee*ple :

# Un ense*ble de s*boles )&n& per*ettant de constru&re les *ots d+un lan'a'e. # Ee*ple :

6 Lan'a'e l&n'u l&n'u&st&u &st&uee 6 Lan'a'e *at$%*at& *at$%*at&ue ue 6 Lan'a'e &n)or &n)or*at& *at&ue ue

6 07! 07! 6 &)7 t$en7 t$en7 else7 else7 7 7 ; 6  >77 a7 b

# La t$%or&e des lan'a'es %tud&e les aspects pure*ent snta&ues de tels lan'a'es7 cest484d&re leurs structures &nternes )or*elles. # Sntae des lan'a'es : 6 Mots Mots 6 S S*b *bol oles es

"

Un mot # Un *ot sur un alp$abet est une s%uence )&n&e et ordonn%e7 %@entuelle*ent @&de7 de s*boles de l+alp$abet. # Ee*ple : 6 !00!!! est est un *ot de l+alp$abe l+alp$abett 07 ! 6 a>b est un *ot de l+alp$abet 7 >7 a7 b

# Le *ot @&de est not% ε.



Propriétés # La lon'ueur d+un *ot m est not% m. # La concat%nat&on : So&ent deu *ots u et v d%)&n&s sur un alp$abet  A. La concat%nat&on de u a@ec v7 not%e u.v ou s&*ple*ent uv7 est le *ot )or*% en )a&sant su&@re les s*boles de u par les s*boles de v.

1

13/10/2015



La puissance



Un langage # Un lan'a'e7 d%)&n& sur un alp$abet  A7 est un ense*ble de *ots d%)&n&s sur A. Autre*ent d&t7 un lan'a'e est un sous4ense*ble de A∗. # Descr&pt&on d+un lan'a'e :

# On note A+ l+ense*ble des *ots de lon'ueur sup%r&eure ou %'ale 8 ! ue l+on peut constru&re 8 part&r de l+alp$abet A. # On note A∗  l+ense*ble des *ots ue l+on peut constru&re 8 part&r de  A7  co*pr&s le *ot @&de :  A∗  > ε ∪ A+ # Etant donn%e u et v deu *ots7 on note :

6 Un lan'a'e )&n& peut Ctre d%cr&t par l+%nu*%rat&on des *ots u& le co*posent. 6 1erta&ns lan'a'es &n)&n&s peu@ent Ctre d%cr&ts par l+appl&cat&on d+op%rat&ons 8 des lan'a'es plus s&*ples. 6 1erta&ns lan'a'es &n)&n&s peu@ent Ctre d%cr&ts par un ense*ble de r,'les appel% grammaire. 6 En)&n7 certa&ns lan'a'es &n)&n&s ne peu@ent pas Ctre d%cr&ts7 n& par l+appl&cat&on d+op%rat&ons7 n& par un ense*ble de r,'les. On parle alors de lan'a'e &nd%c&dable. On peut noter ue s& un lan'a'e e st &nd%c&dable7 alors &l n+e&ste pas d+al'or&t$*e per*ettant de d%ter*&ner s& un *ot donn% appart&ent 8 ce lan'a'e.

6 (uv)2 pour uvuv 6 u 3v pour uuuv 6 (u 3v)2 pour uuuvuuuv

9

Une grammaire

!0

Une grammaire # Une 'ra**a&re est un uadruplet G = (T, N, S, R) tel ue : 6 T est le @ocabula&re ter*&nal7 c+est484d&re l+alp$abet sur leuel est d%)&n& le lan'a'e. 6  N est le @ocabula&re non ter*&nal7 c+est484d&re l+ense*ble des s*boles u& n+appara&ssent pas dans les *ots '%n%r%s7 *a&s u& sont ut&l&s%s au cours de la '%n%rat&on. Un s*bole non ter*&nal d%s&'ne une Fcat%'or&e snta&ueG. 6  S  ∈  N est le s*bole de d%part ou a&o*e. 1+est 8 part&r de ce s*bole non ter*&nal ue l+on co**encera la '%n%rat&on de *ots au *oen des r,'les de la 'ra**a&re. 6  R est un ense*ble de r,'les de product&on de la )or*e : u v7 a@ec u ∈  (N ∪  T)+ et v ∈  (N ∪  T)∗ 

# Un lan'a'e peut Ctre d%cr&t par un certa&n no*bre de r,'les. our les lan'a'es naturels7 le but %tant de donner une descr&pt&on pr%c&se des r,'les per*ettant de constru&re les p$rases correctes d+une lan'ue. # Dans notre contete7 le but est de donner une descr&pt&on pr%c&se des r,'les per*ettant de constru&re tous les *ots d+un lan'a'e. # Re*arues : Une 'ra**a&re d%)&n&t un seul lan'a'e. ar contre7 un *C*e lan'a'e peut Ctre en'endr% par plus&eurs 'ra**a&res d&))%rentes.



!!

La règles de production #u



Exemple de grammaire # So&t une 'ra**a&re H > IT7 J7 S7 RK tel ue :

v7 a@ec u ∈  (N ∪  T)+ et v ∈  (N ∪  T)∗ 

u ne peu pas Ctre ε. # On d&t ue v d%r&@e d&recte*ent de u. # Lorsu+on a u u1 u2 u3… u4 v : on = v d&t ue v d%r&@e de u et on le note u→  #  L(G)= {m∈T* / S =→  m} ⇒ 







!





6 T>07! 6 J>S 6 R>S → 0S/!S/ε

# Ee*ple de *ots '%n%r%s par cette 'ra**a&re : 6 6 6 6 6 6

ε : S→ε 0 : S→ 0S→0 ! : S→ !S→! 00 : S→ 0S→00S→00 0! : S→ 0S→0!S→0! !!7 !07 0007 !!07 !0!

# La 'ra**a&re '%n,re les no*bres b&na&res. # Le lan'a'e '%n%r% par cette 'ra**a&re est : I0=!=K=

2

13/10/2015

!3

Types de grammaires

!?

Types de grammaires

# En &ntrodu&sant des cr&t,res sur la )or*e des r,'les de 'ra**a&re7 on obt&ent des classes de 'ra**a&res $&%rarc$&s%es7 ordonn%es par &nclus&on. La class&)&cat&on de 1OMSN7 d&st&n'ue uatre classes de 'ra**a&res : 6 Tpe 3 : 'ra**a&res r%'ul&,res '%n,res des lan'a'es r%'ul&ers7 6 Tpe  : 'ra**a&res al'%br&ues '%n,res des lan'a'es al'%br&ues7 6 Tpe ! : 'ra**a&re contetuelles '%n,res des lan'a'es contetuels7 6 Tpe 0 : 'ra**a&re sans restr&ct&on '%n,res des lan'a'es d%c&dables.

# Pl e&ste une relat&on d+&nclus&on entre ces ? tpes de 'ra**a&res : tpe 3 ⊆ tpe  ⊆ tpe ! ⊆ tpe 0. # ar contre7 on entend par 'ra**a&re de tpe & le pre*&er tpe sat&s)a&sant la 'ra**a&re en co**enQant par le plus restr&ct&). # Une 'ra**a&re de tpe ! sous entend &*pl&c&te*ent u+elle n+est pas de tpe  et donc pas de tpe 3.

Tpe 3

Tpe  Tpe ! Tpe 0

!"

rammaires de type !

rammaires de type "

# Pl e&ste deu tpes de ' ra**a&res r%'ul&,res :

# Les r,'les de R sont de la )or*e : S * a@ec S ∈ J et * ∈ IJ ∪ TK=

6 Hra**a&res r%'ul&,res8 dro&te : Les r,'les de R sont de la )or*e S aS+ ou S a a@ec S7 S+ ∈ J et a ∈ T 6 Hra**a&res r%'ul&,res 8 'auc$e. Les r,'les de R sont de la )or*e S S+a ou S a a@ec S7 S+ ∈ J et a ∈ T →







!



# La seule restr&ct&on concerne la part&e 'auc$e de la r,'le u& do&t Ctre const&tu% d+un seul s*bole non ter*&nal.

# La part&e 'auc$e de c$aue r,'le est const&tu% d+un seul s*bole non ter*&nal7 et la part&e dro&te est const&tu% d+un s*bole ter*&nal et %@entuelle*ent d+un s *bole non ter*&nal. # our les 'ra**a&res r%'ul&,res 8 dro&te7 le s*bole non ter*&nal do&t tou(ours se trou@er 8 dro&te du s*bole ter*&nal tand&s ue pour les 'ra**a&res r%'ul&,res 8 'auc$e7 &l do&t se trou@er 8 'auc$e.

!

rammaires de type # # Les r,'les de R sont de la )or*e : uS@  u*@ a@ec S ∈ J7 u7 @ ∈IJ∪TK= et *∈IJ∪TK<

!

rammaires de type $ # as de restr&ct&on sur les r,'les



# Le s*bole non ter*&nal S est re*plac% par * tout en 'ardant le pr%)&e u 8 'auc$e et le su))&e  @ 8 dro&te.

3

13/10/2015

!9

%utomates

0

Composition d&un automate

# Le *ot !!0! appart&ent4&l au lan'a'e I0=!=K=5

# Pl e&ste plus&eurs tpes d+auto*ates7 cependant7 &ls ont tous une structure co**une. # Un auto*ate est co*pos% de uatre part&es : !. une bande de lecture . une tCte de lecture 3. une *%*o&re ?. une un&t% de contrle

# Un auto*ate est une *ac$&ne u& per*et de l&re un *ot m et de d&re )or*elle*ent s& m appart&ent 8 un lan'a'e donn%. # Un auto*ate est un reconna&sseur u& per*et de reconna&tre tous les *ots d+un lan'a'e.

!

La bande de lecture



La t'te de lecture

# Une bande de lecture est co*pos%e d+une success&on de cases. # 1+est dans les cases de cette bande de lecture u+est %cr&t le *ot 8 reconna-tre. # 1$aue case pou@ant conten&r un seul s*bole de l+alp$abet d+entr%e.

# Une tCte de lecture peut l&re une case 8 un &nstant donn%. # La case sur lauelle se trou@e la tCte de lecture 8 un *o*ent donn% s+appelle la case courante. # La tCte peut Ctre d%plac%e par l+auto*ate pour se pos&t&onner sur la case &**%d&ate*ent 8 'auc$e ou 8 dro&te de la case courante.

3

La mémoire # La *%*o&re n+est pas tou(ours pr%sente dans un auto*ate. # La *%*o&re poss,de un alp$abet sp%c&al. # La *%*o&re est caract%r&s%e par des )onct&ons de rec$erc$e et de stoca'e.

?

L&unité de contr(le # L+un&t% de contrle const&tue le cur d+un auto*ate. # Elle peut Ctre @ue co**e un pro'ra**e u& d&cte 8 l+auto*ate son co*porte*ent. # Elle est d%)&n&e par un ense*ble )&n& d+%tats a&ns& ue par une )onct&on de trans&t&on u& d%cr&t le passa'e d+un %tat 8 un autre en )onct&on du contenu de la case courante de la bande de lecture et du contenu de la *%*o&re. # L+un&t% de contrle d%c&de auss& de la d&rect&on dans lauelle d%placer la tCte de lecture et c$o&s&t uels s*boles stocer dans la *%*o&re.

4

13/10/2015

"

)éfinition formelle d&un automate # Un auto*ate cont&ent au *&n&*u* : 6 6 6 6 6

Un alp$abet pour les *ots en entr%e not% A Un ense*ble non @&de d+%tats not% 2 Un ense*ble non @&de d+%tats &n&t&au not% e 0 ∈ 2 Un ense*ble non @&de d+%tats )&nau e)  ∈ 2 Une )onct&on de trans&t&on Iper*ettant de c$an'er d+%tatK not%e .



Langages * grammaires + automates Langages Lan'a'es r%'ul&ers

Grammaires

Automates

Tpe 3 ou 'ra**a&res  Auto*ates 8 %tats )&n&s r%'ul&,res

Lan'a'es al'%br&ues

Tpe  : 'ra**a&res al'%br&ues

 Auto*ates 8 p&les

Lan'a'es contetuels

Tpe ! : 'ra**a&res contetuelles

Mac$&nes de Tur&n' 8  borne l&n%a&re

Lan'a'es d%c&dables

Tpe 0 : 'ra**a&res sans restr&ct&on

Mac$&nes de Tur&n'

5

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF