regexp
This commit is contained in:
parent
479ac312c2
commit
6a5de77fdb
@ -43,6 +43,17 @@ Note that JFLAP proposes an activity for this construction.
|
|||||||
There is also an inverse transformation from automaton to regexp, also available on JFLAP.
|
There is also an inverse transformation from automaton to regexp, also available on JFLAP.
|
||||||
This shows that languages defined by a regexp and languages recognized by a finite automaton form the same class of languages, commonly known as regular languages.
|
This shows that languages defined by a regexp and languages recognized by a finite automaton form the same class of languages, commonly known as regular languages.
|
||||||
|
|
||||||
|
#### Les ingrédients.
|
||||||
|
|
||||||
|
Constructions qu'on doit détailler.
|
||||||
|
1. comment construire un automate pour le langage a
|
||||||
|
1. comment construire un automate pour L1.L2 si on connaît un automate A1 pour L1 et un automate A2 pour L2
|
||||||
|
1. comment construire un automate pour L1+L2 si on connaît un automate A1 pour L1 et un automate A2 pour L2
|
||||||
|
1. comment construire un automate pour L* si on connaît un automate A pour L
|
||||||
|
1. comment décrire sans ambiguité l'ordre des opérations dans une expression régulière
|
||||||
|
(écrire l'expression sous forme d'un arbre)
|
||||||
|
1. comment combiner toutes ses idées.
|
||||||
|
|
||||||
|
|
||||||
### grep
|
### grep
|
||||||
|
|
||||||
|
106
2-InformationTheory/2InformationTheoryExoRegexp.md
Normal file
106
2-InformationTheory/2InformationTheoryExoRegexp.md
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
# Exercices REGEXP
|
||||||
|
|
||||||
|
REGEXP. abb britannique de Regular Expression.
|
||||||
|
|
||||||
|
|
||||||
|
## Exo 1
|
||||||
|
|
||||||
|
L'alphabet de travail est a,b
|
||||||
|
|
||||||
|
Pour chaque description en français, proposez une expression régulière.
|
||||||
|
* tous les mots sur l'alphabet qui sont de longueur 2.
|
||||||
|
(a+b).(a+b)
|
||||||
|
|
||||||
|
On peut faire le calcul.
|
||||||
|
(a+b).(a+b) = a.(a+b)+b.(a+b)
|
||||||
|
avec
|
||||||
|
a.(a+b) = a.a + a.b
|
||||||
|
et
|
||||||
|
b.(a+b) = b.a + b.b
|
||||||
|
|
||||||
|
Donc
|
||||||
|
(a+b).(a+b) = a.a + a.b + b.a + b.b
|
||||||
|
|
||||||
|
En général on n'écrit pas les . qui sont implicites :
|
||||||
|
(a+b).(a+b)= aa+ab+ba+bb
|
||||||
|
|
||||||
|
* tous les mots qui sont de longueur 1.
|
||||||
|
a+b
|
||||||
|
|
||||||
|
* N'importe quel mot
|
||||||
|
(a+b)*
|
||||||
|
= epsilon + (a+b) + (a+b)(a+b) + (a+b)(a+b)(a+b) + ...
|
||||||
|
|
||||||
|
* attention
|
||||||
|
a+b*
|
||||||
|
ça signifie le langage qui contient
|
||||||
|
a+ epsilon + b + bb + bbb + bbbb etc
|
||||||
|
|
||||||
|
* tous les mots qui commencent par un a.
|
||||||
|
a.(a+b)*
|
||||||
|
|
||||||
|
* tous les mots qui terminent par un b.
|
||||||
|
(a+b)*.b
|
||||||
|
|
||||||
|
* tous les mots qui commencent par un a et terminent par un b.
|
||||||
|
a.(a+b)*.b
|
||||||
|
|
||||||
|
* les mots qui commencent et terminent par la même lettre.
|
||||||
|
(idée c'est soit je commence et termine par a, soit je commence et termine par b).
|
||||||
|
|
||||||
|
a.(a+b)*.a + b.(a+b)*.b
|
||||||
|
|
||||||
|
selon l'interprétation du français de la consigne, on peut considérer que le mot
|
||||||
|
a
|
||||||
|
commence et termine par a.
|
||||||
|
donc il devrait être accepté.
|
||||||
|
|
||||||
|
Avec interprétation, on va écrire directement
|
||||||
|
a + b + a.(a+b)*.a + b.(a+b)*.b
|
||||||
|
|
||||||
|
* les mots qui contiennent deux a consécutifs.
|
||||||
|
informellement :
|
||||||
|
... aa ...
|
||||||
|
en regexp
|
||||||
|
(a+b)*.a.a.(a+b)*
|
||||||
|
|
||||||
|
* les mots qui contiennent consécutivement bab
|
||||||
|
|
||||||
|
(a+b)*.b.a.b.(a+b)*
|
||||||
|
|
||||||
|
* les mots de longueur paire
|
||||||
|
On peut regrouper les lettres par paquet de 2.
|
||||||
|
epsilon + ((a+b).(a+b))*
|
||||||
|
|
||||||
|
* les mots avec un nombre pair de a
|
||||||
|
|
||||||
|
cette question sur l'alphabet {a}
|
||||||
|
epsilon + (a.a)*
|
||||||
|
|
||||||
|
maintenant sur l'alphabet {a,b}, je dois autoriser des b un peu partout.
|
||||||
|
epsilon + (b*.a.b*.a.b*)*
|
||||||
|
|
||||||
|
## Exo 2
|
||||||
|
|
||||||
|
On souhaite fabriquer un automate à partir d'une expression régulière.
|
||||||
|
|
||||||
|
Exemple de a.(a+b)*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
BIN
Brevets/US5732138.pdf
Normal file
BIN
Brevets/US5732138.pdf
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user