1 reverso de uma linguagem regular. 2 teorema: reverso de uma linguagem regular é uma linguagem...
TRANSCRIPT
1
Reverso de uma Linguagem Regular
2
Teorema:reverso de uma linguagem regularé uma linguagem regular
RL L
Idéia da prova:Construa um NFA que aceita :RL
inverta as transições do NFAque aceita L
3
ProvaComo é regular, existe um NFA que aceita
L
Exemplo:baabL *
a
b
ba
L
4
Inverta as Transições
a
b
ba
5
Torne o antigo estado inicial o estado final
a
b
ba
6
Adicione um novo estado inicial
a
b
ba
7
a
b
ba
A máquina resultante aceita RL
baabL *
ababLR *
RL é regular
8
Gramáticas
9
GramáticasGramáticas expressam linguagens
Exemplo: Inglês
verbpredicate
nounarticlephrasenoun
predicatephrasenounsentence
_
_
10
walksverbrunsverb
dognounboynoun
thearticleaarticle
11
Uma derivação de “the boy walks”:
walksboytheverbboytheverbnounthe
verbnounarticleverbphrasenounpredicatephrasenounsentence
__
12
Uma derivação de “a dog runs”:
runsdogaverbdogaverbnouna
verbnounarticleverbphrasenounpredicatephrasenounsentence
__
13
Linguagem da gramática:L = { “a boy runs”, “a boy walks”, “the boy runs”, “the boy walks”, “a dog runs”, “a dog walks”, “the dog runs”, “the dog walks” }
14
Notação
dognounboynoun
Variável ouNão terminal
TerminalRegra deProdução
15
Outro ExemploGramática:
Derivação da sentença :
SaSbS
abaSbS
ab
aSbS S
16
aabbaaSbbaSbS
aSbS S
aabb
SaSbSGramática:
Derivação da sentença :
17
Outras derivações:
aaabbbaaaSbbbaaSbbaSbS
aaaabbbbaaaaSbbbbaaaSbbbaaSbbaSbS
18
Linguagem da gramática
SaSbS
}0:{ nbaL nn
19
Mais Notação
Gramática
:V
:S
:P
Conjunto de variáveis
Conjunto de símbolos terminais
Variável inicial
Conjunto de regras de produção
20
Exemplo
Gramática :
S
aSbSG
PSTVG ,,,
}{SV },{ baT
},{ SaSbSP
21
Mais NotaçãoForma Sentencial: Uma sentença que contém variáveis e terminais
Exemplo:
aaabbbaaaSbbbaaSbbaSbS
forma sentencial sentença
22
Escrevemos:
Como abreviação de:
aaabbbS*
aaabbbaaaSbbbaaSbbaSbS
23
De modo geral:
Se:
nww*
1
nwwww 321
24
Por default: ww*
25
Exemplo
SaSbS
aaabbbS
aabbS
abS
S
*
*
*
*
Gramática Derivações
26
baaaaaSbbbbaaSbb
aaSbbS
S
aSbSGramática
ExemploDerivações
27
Outro Exemplo de GramáticaGramática :
AaAbAAbS
Derivações:
G
28
Mais Derivações
aaaabbbbbaaaaAbbbbbaaaAbbbbaaAbbbaAbbAbS
bbaS
bbbaaaaaabbbbS
aaaabbbbbS
nn
29
Linguagem de uma Gramática
Para uma gramática com variável inicial :
GS
}:{)( wSwGL
String de terminais
30
ExemploGramática :
AaAbAAbS
Já que: bbaS nn
G
31
Uma Notação Conveniente
AaAbA
|aAbA
thearticleaarticle
theaarticle |
32
Gramáticas Lineares
33
Gramáticas Lineares Gramáticas com no máximo uma variável
do lado direito de cada produção
Exemplos:
AaAbAAbS
SaSbS
34
Uma Gramática Não-Linear
bSaSaSbS
SSSS
Gramática :G
)}()(:{)( wnwnwGL ba
35
Outra Gramática Linear
Gramática :
AbBaBAAS
|
}0:{)( nbaGL nn
G
36
Gramática Linear à DireitaTodas as produções têm a forma:
Exemplo:
xBA
xAou
aSabSS
37
Gramática Linear à EsquerdaTodas as produções têm a forma:
Exemplo:
BxA
aBBAabA
AabS
|
xAou
38
Gramáticas Regulares
39
Gramáticas RegularesUma gramática regular é qualquergramática linear à direita ou à esquerda
Exemplos:
aSabSS
aBBAabA
AabS
|
1G 2G
40
ObservaçãoGramáticas regulares geram
linguagens regularesExemplos:
aSabSS
aabGL *)()( 1
aBBAabA
AabS
|
1G2G
41
Gramáticas Regulares Geram
Linguagens Regulares
42
Teorema
LinguagensGeradas porGramáticas Regulares
LinguagensRegulares
43
Teorema - Parte 1
Toda gramática regular gerauma linguagem regular
LinguagensGeradas porGramáticas Regulares
LinguagensRegulares
44
Teorema - Parte 2
Toda linguagem regular é gerada por uma gramática regular
LinguagensGeradas porGramáticas Regulares
LinguagensRegulares
45
Prova – Parte 1
LinguagensGeradas porGramáticas Regulares
Linguagensegulares
A linguagem gerada por umq gramática regular é regular
)(GLG
46
O caso de Gramáticas Lineares à Direita
Seja uma gramática linear à direita
Vamos provar : é regular
Idéia da Prova: Vamos construir um NFA
com
G
)(GL
M)()( GLML
47
Gramática é linear à direitaG
Exemplo:
aBbBBaaABaAS
|
|
48
Construa o NFA tal quetodo estado é uma variável da gramática:
M
aBbBBaaABaAS
|
|
S FV
A
B
estado final especial
49
Adicione arcos para cada produção:
S FV
A
B
a
aAS
50
S FV
A
B
a
BaAS |
51
S FV
A
B
a
BaaABaAS
|
a
a
52
S FV
A
B
a
bBBBaaABaAS
|
a
a
b
53
S FV
A
B
a
abBBBaaABaAS
|
|
a
a
b
a
54
aaabaaaabBaaaBaAS
S FV
A
B
a
a
a
b
a
55
S FV
A
B
a
a
a
b
aabBBBaaABaAS
|
|
G
M GramáticaNFA
abaaaabGLML**)()(
56
Em GeralDada uma gramática linear à direita
com variáveis
e produções:
G
jmi VaaaV 21
mi aaaV 21
ou
57
Construímos o NFA tal que:
cada variável corresponde a um estado:
M
iV
0VFV
1V
2V
3V
4V estado finalespecial
58
Para cada produção:
adicionamos transições e os estados intermediários requeridos
jmi VaaaV 21
iV jV………
1a 2a ma
59
Para cada produção:
adicionamos transições e os estados intermediários requeridos
mi aaaV 21
iV FV………
1a 2a ma
60
O NFA resultante tem a forma:M
0VFV
1V
2V
3V
4V
1a
3a3a
4a
8a
2a 4a5a
9a5a
9a
)()( MLGL Temos que:
61
O caso de Gramática Linear à Esquerda
Seja uma gramática linear à esquerda
Vamos provar: é regular
Idéia da Prova :Construir uma gramática linear à
direita com
G
)(GL
G RGLGL )()(
62
Como é uma gramática linear à esquerdaas produções são da forma:
G
kaaBaA 21
kaaaA 21
63
Construindo a gramática linear à direitaG
Em :G kaaBaA 21
Em :G BaaaA k 12
BvA R
64
Construindo a gramática linear à direitaG
em :G kaaaA 21
Em :G 12aaaA k
vA
RvA
65
É fácil ver que:
Como é linear à direita, temos:
RGLGL )()(
)(GL RGL )(
G
)(GLLinguagemRegular
LinguagemRegular
LinguagemRegular
66
Prova - Parte 2
Toda linguagem regular é gerada por uma gramática regular
LG
LinguagensGeradas porGramáticas Regulares
LinguagensRegulares
67
Idéia da Prova :Seja um NFA com . Construa, a apartir de uma gramática regular tal que
Toda linguagem regular é gerada por uma gramática regular
LG
M )(MLL
MG )()( GLML
68
Como é regularexiste um NFA tal que
LM )(MLL
Exemplo:a
b
a
b*)*(* abbababL
)(MLL
M1q 2q
3q
0q
69
Convertendo em uma gramática linear à direita
M
a
b
a
b
M0q 1q 2q
3q10 aqq
70
a
b
a
b
M0q 1q 2q
3q21
11
10
aqqbqqaqq
71
a
b
a
b
M0q 1q 2q
3q
32
21
11
10
bqqaqqbqqaqq
72
a
b
a
b
M0q 1q 2q
3q
3
13
32
21
11
10
qqqbqqaqqbqqaqq
G
LMLGL )()(
73
Em Geral
Para cada transição: aq p
Adicione a produção: apq
variável terminal variável
74
Para cada estado final: fq
Adicione a produção: fq
75
Como é uma gramática linear à direta
é também uma gramática
regular
com
G
G
LMLGL )()(