Cours de théorie des langages
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 tpes 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
# 2uest4ce u+un lan'a'e 5 Tout sst,*e per*ettant de s+epr&*er. Ee*ple :
# Un ense*ble de s*boles )&n& per*ettant de constru&re les *ots d+un lan'a'e. # Ee*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 snta&ues de tels lan'a'es7 cest484d&re leurs structures &nternes )or*elles. # Sntae 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. # Ee*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 leuel 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 snta&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 *oen 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 contete7 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*arues : 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. # Lorsu+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/ε
# Ee*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 1OMSN7 d&st&n'ue uatre classes de 'ra**a&res : 6 Tpe 3 : 'ra**a&res r%'ul&,res '%n,res des lan'a'es r%'ul&ers7 6 Tpe : 'ra**a&res al'%br&ues '%n,res des lan'a'es al'%br&ues7 6 Tpe ! : 'ra**a&re contetuelles '%n,res des lan'a'es contetuels7 6 Tpe 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 ? tpes de 'ra**a&res : tpe 3 ⊆ tpe ⊆ tpe ! ⊆ tpe 0. # ar contre7 on entend par 'ra**a&re de tpe & le pre*&er tpe sat&s)a&sant la 'ra**a&re en co**enQant par le plus restr&ct&). # Une 'ra**a&re de tpe ! sous entend &*pl&c&te*ent u+elle n+est pas de tpe et donc pas de tpe 3.
Tpe 3
Tpe Tpe ! Tpe 0
!"
rammaires de type !
rammaires de type "
# Pl e&ste deu tpes 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$aue 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 tpes 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 contrle
# 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$aue 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 lauelle 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 stoca'e.
?
L&unité de contr(le # L+un&t% de contrle const&tue le cur 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 contrle d%c&de auss& de la d&rect&on dans lauelle d%placer la tCte de lecture et c$o&s&t uels s*boles stocer 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
Tpe 3 ou 'ra**a&res Auto*ates 8 %tats )&n&s r%'ul&,res
Lan'a'es al'%br&ues
Tpe : 'ra**a&res al'%br&ues
Auto*ates 8 p&les
Lan'a'es contetuels
Tpe ! : 'ra**a&res contetuelles
Mac$&nes de Tur&n' 8 borne l&n%a&re
Lan'a'es d%c&dables
Tpe 0 : 'ra**a&res sans restr&ct&on
Mac$&nes de Tur&n'
5
View more...
Comments