SlideShare uma empresa Scribd logo
1 de 60
Baixar para ler offline
Teoria da Computação
Gramáticas e Linguagens Regulares
Aula 05
Prof. Felipe A. Louza
Roteiro
1 Gramáticas e Linguagens
Gramáticas
Formalização de uma Gramática
Hierarquia de Chomsky
2 Gramáticas Regulares
Gramáticas Lineares
GLUD → Linguagem Regular
Linguagem Regular → GLUD
3 Referências
2
Motivação
Na primeira parte do curso, vimos dois formalismos para
descrever/reconhecer linguagens:
1 Autômatos Finitos
2 Expressões Regulares
Entretanto, vimos que algumas linguagens como
L = {an
bn
|n ≥ 0}
não podem ser descritas com esses formalismos.
3
Gramáticas
Vamos ver um outro formalismo para definir Linguagens Formais.
Gramáticas
Uma gramática possui regras para geração de todas as palavras de uma
linguagem.
• Os formalismos vistos até aqui são úteis apenas para as
Linguagens Regulares.
4
Roteiro
1 Gramáticas e Linguagens
Gramáticas
Formalização de uma Gramática
Hierarquia de Chomsky
2 Gramáticas Regulares
Gramáticas Lineares
GLUD → Linguagem Regular
Linguagem Regular → GLUD
3 Referências
5
Gramáticas
Definição informal:
• É basicamente um conjunto finito de regras que, quando aplicadas
sucessivamente, geram palavras.
S → aSb
S → A
A → E
O conjunto de todas as palavras geradas por uma gramática G define a
linguagem L(G).
{ab, aabb, aaabbb, aaaabbbb, . . . }
Já vimos essa linguagem antes?
6
Linguagens Naturais
A motivação original para o estudo de Gramáticas encontra-se na
descrição de Linguagens Naturais:
• Relacionamentos entre termos tais como nomes, verbos e adjetivos.
hsentencei → hnoun phraseihverb phrasei
hnoun phrasei → harticleihnouni | hnouni
hverb phrasei → hverbihadjetivei
harticlei → the
hnouni → boy | girl
hadjetivei → small | big
hverbi → is
Mais tarde, viu-se que Gramáticas são úteis para descrever Linguagens Artificiais,
em especial, linguagens de programação.
7
Compiladores
Gramáticas e Compiladores:
• Regras de sintaxe (estrutura) em uma Linguagem de programação:
Fonte: https://en.wikipedia.org/wiki/Context-free_grammar
8
Roteiro
1 Gramáticas e Linguagens
Gramáticas
Formalização de uma Gramática
Hierarquia de Chomsky
2 Gramáticas Regulares
Gramáticas Lineares
GLUD → Linguagem Regular
Linguagem Regular → GLUD
3 Referências
9
Gramática
Definição
Uma gramática (irrestrita), denotada por G, é uma 4-tupla ordenada
G = (V , Σ, P, S)
tal que:
• V é um conjunto de sı́mbolos não terminais (ou variáveis)
• Σ é um conjunto de sı́mbolos terminais, com Σ disjunto de V
• P : (V ∪ Σ)+ → (V ∪ Σ)∗ é o conjunto de regras de produções, em
que cada par (α, β) é representado por α → β
• S ∈ V é denominado sı́mbolo inicial.
Vamos entender mais tarde o por quê de (irrestrita).
10
Regras de produção
Cada regra de produção (α, β) pode ser representada como:
α → β
Um grupo de regras de produção da forma
α → β1
α → β2
. . .
α → βn
pode ser abreviado como:
α → β1 | β2 | . . . | βn
11
Regras de produção
Exemplo:
G = ({S, A}, {a, b}, P, S)
• Regras de produção:
P : S → aSb|A
A → E
P = {(S, aSb), (S, A), (A, E)}.
12
Derivação
Informalmente:
• A aplicação de uma regra de produção é denominada derivação de
uma palavra.
Nota:
A aplicação sucessiva de regras de produção permite derivar as palavras
da linguagem gerada pela gramática.
13
Relação de derivação
Definição
Uma derivação é um par hα, βi da Relação de Derivação denotada por
α ⇒ β com domı́nio em (V ∪ Σ)+ e imagem (V ∪ Σ)∗
Esta relação é definida indutivamente como:
• Para toda produção na forma S → β, (S sı́mbolo inicial em G)
S ⇒ β
• Para todo par, α ⇒ β, onde β ⇒ βuβv βw
– se βv → βt é regra de P, então:
β ⇒ βuβtβw
Em outras palavras, uma derivação é a substituição de uma subpalavra
de acordo com uma regra de produção.
14
Derivação
Definição
Dizemos que α deriva (diretamente) β, se β puder ser obtido
substituindo alguma subcadeia de α, utilizando uma regra de P,
denotado por:
α ⇒ β.
No exemplo anterior:
G = ({S, A}, {a, b}, P, S)
P : S → aSb|A
A → E
S ⇒ aSb ⇒ aaSbb ⇒ aaaSbbb ⇒ aaaEbbb = aaabbb
15
Derivação em múltiplos passos
Definição
Dizemos que α deriva em múltiplos passos β, se houver uma sequência
de derivações tais que α ⇒ α1 ⇒ α2 ⇒ · · · ⇒ β, denotado por:
α ⇒∗
β.
No exemplo anterior:
S ⇒ aSb ⇒ aaSbb ⇒ aaaSbbb ⇒ aaaEbbb = aaabbb
S ⇒∗
aaaEbbb = aaabbbb
16
Passos de derivação
Os sucessivos passos de derivação podem ser definidos como:
• ⇒∗: zero ou mais passos sucessivos de derivação;
• ⇒+: um ou mais passos sucessivos de derivação;
• ⇒i : exatos i passos de derivações sucessivas, i ∈ N.
17
Linguagem gerada
Definição
Seja G = (V , Σ, P, S) uma gramática.
• A linguagem gerada por G, denotada por L(G), é composta por
todas as palavras de sı́mbolos terminais deriváveis a partir do
sı́mbolo inicial S, ou seja,
L(G) = {w ∈ Σ∗
| S ⇒+
w}
18
Linguagem gerada
Exemplo:
G = ({S, A}, {a, b}, P, S)
• Regras de produção:
P : S → aSb|A
A → E
• Cadeias geradas:
S ⇒∗
ab
S ⇒∗
aabb
S ⇒∗
aaabbb
. . .
L(G) = {an
bn
| n ≥ 0}
P = {(S, aSb), (S, A), (A, E)}.
19
Linguagem gerada
Nota:
Dizemos que duas gramáticas G1 e G2 são equivalentes se:
L(G1) = L(G2)
20
Linguagem gerada
Mais um exemplo:
G = ({S}, {a, b}, P, S)
• Regras de produção:
P : S → aSa | bSb | a | b | E
• Cadeias geradas:
S ⇒∗
a
S ⇒∗
b
S ⇒∗
aa
S ⇒∗
bb
S ⇒∗
aba
S ⇒∗
ababab
. . .
L(G) = {palı́ndromos sobre o alfabeto terminal {a, b}}
21
Roteiro
1 Gramáticas e Linguagens
Gramáticas
Formalização de uma Gramática
Hierarquia de Chomsky
2 Gramáticas Regulares
Gramáticas Lineares
GLUD → Linguagem Regular
Linguagem Regular → GLUD
3 Referências
22
Hierarquia de Chomsky
Noam Chomsky, classificou gramáticas (e linguagens) a partir de
restrições em suas regras de produção.
Figura: Noam Chomsky
Chomsky definiu estas classes como (potenciais) modelos para linguagens
naturais.
23
Tipos de Gramáticas e Linguagens
Definição:
Uma gramática G = (V , Σ, S, P) é do Tipo 3 se toda produção de P
for da forma:
A → bC ou A → b
com A, C ∈ V e b ∈ Σ ou b = E.
Essas são as Gramáticas Regulares (GR).
24
Tipos de Gramáticas e Linguagens
Definição:
Uma gramática G = (V , Σ, S, P) é do Tipo 2 se toda produção de P
for da forma:
A → ω
com A ∈ V e ω ∈ (Σ ∪ V )∗.
Estas são as Gramáticas Livres de Contexto (GLC).
25
Tipos de Gramáticas e Linguagens
Definição:
Uma gramática G = (V , Σ, S, P) é do Tipo 1 se toda produção de P
for da forma:
vAw → vzw
com A ∈ V , v, w ∈ (Σ ∪ V )∗ e z ∈ (Σ ∪ V )+ (isto é, z 6= E).
Além disso, permite-se uma única regra S → E quando S não aparece
do lado direito de nenhuma produção.
Estas são as Gramáticas Sensı́veis de Contexto (GSC).
26
Tipos de Gramáticas e Linguagens
Definição:
Qualquer gramática G = (V , Σ, S, P) é do Tipo 0.
Não existem restrições na forma das produções para as gramáticas desta
classe.
Estas são as Gramáticas Recursivamente Enumeráveis.
27
Hierarquia de Chomsky
L3 ( L2 ( L1 ( L0
Li corresponde à linguagem de tipo i.
28
Hierarquia de Chomsky
Regulares
Livres do contexto
Sensı́veis ao contexto
Recursivamente enumeráveis Máquina de Turing
Autômato linearmente limitado
Autômato com pilha
Autômato de estado finito
Não computáveis
Linguagens Máquinas
29
Roteiro
1 Gramáticas e Linguagens
Gramáticas
Formalização de uma Gramática
Hierarquia de Chomsky
2 Gramáticas Regulares
Gramáticas Lineares
GLUD → Linguagem Regular
Linguagem Regular → GLUD
3 Referências
30
Roteiro
1 Gramáticas e Linguagens
Gramáticas
Formalização de uma Gramática
Hierarquia de Chomsky
2 Gramáticas Regulares
Gramáticas Lineares
GLUD → Linguagem Regular
Linguagem Regular → GLUD
3 Referências
31
Gramáticas Lineares
Vamos ver gramáticas do Tipo 3 e mostrar que elas geram exatamente
as Linguagens Regulares.
• Essas gramáticas também são conhecidas como Gramáticas
Lineares.
32
Gramáticas Lineares
Vamos estudar 4 formas de gramáticas do Tipo 3:
1 GLD: Gramática linear à direita
2 GLE: Gramática linear à esquerda
3 GLUD: Gramática linear unitária à direita
4 GLUE: Gramática linear unitária à esquerda
33
Gramática Linear à Direita - GLD
Definição
G = (V , Σ, P, S) é uma GLD se todas as regras de produção forem da
forma:
A → ωB ou A → ω
com A, B ∈ V e ω ∈ Σ∗.
Exemplo:
G1 = ({S, A}, {a, b}, P, S)
P : S → aA
A → baA | E
34
Gramática Linear à Esquerda - GLE
Definição
G = (V , Σ, P, S) é uma GLE se todas as regras de produção forem da
forma:
A → Bω ou A → ω
com A, B ∈ V e ω ∈ Σ∗.
Exemplo:
G2 = ({S}, {a, b}, P, S)
P : S → Sba | a
35
Gramática Linear Unitária à Direita - GLUD
Definição
G = (V , Σ, P, S) é um GLUD se todas as regras de produção forem da
forma:
A → wB ou A → w
com A, B ∈ V e w ∈ (Σ ∪ {E}), ou seja, |w| ≤ 1.
Exemplo:
G3 = ({S, A, B}, {a, b}, P, S)
P : S → aA
A → bB | E
B → aA
36
Gramática Linear Unitária à Esquerda - GLUE
Definição
G = (V , Σ, P, S) é um GLUE se todas as regras de produção são da
forma:
A → Bw ou A → w
com A, B ∈ V e w ∈ (Σ ∪ {E}), ou seja, |w| ≤ 1.
Exemplo:
G4 = ({S, A}, {a, b}, P, S)
P : S → Aa | a
A → Sb
37
Equivalência das Gramáticas Lineares
Teorema da Equivalência das Gramáticas Lineares
Seja L uma linguagem. Então:
L é gerada por uma GLD, se e somente se,
L é gerada por uma GLE, se e somente se,
L é gerada por uma GLUD, se e somente se,
L é gerada por uma GLUE.
Ou seja, todas as Gramáticas Lineares são equivalentes.
A demonstração fica como exercı́cio.
38
Equivalência das Gramáticas Lineares
Exemplos: A linguagem a(ba)∗ é gerada pelas seguintes gramáticas:
G1 = ({S, A}, {a, b}, P, S)
P : S → aA
A → baA|E
G2 = ({S}, {a, b}, P, S)
P : S → Sba|a
G3 = ({S, A, B}, {a, b}, P, S)
P : S → aA
A → bB|E
B → aA
G4 = ({S}, {a, b}, P, S)
P : S → Aa|a
A → Sb
Portanto, G1, G2, G3 e G4 são equivalentes.
39
Gramáticas Lineares
Importante:
• Se uma gramática tiver produções de ambos os tipos:
– Linear à Direita (A → ωB); e
– Linear à Esquerda (A → Bω).
• Então esta não é uma Gramática Linear.
40
Gramática Regular × Linguagem Regular
Os resultados a seguir mostram que a classe das Gramáticas Lineares
denota exatamente a Classe das Linguagens Regulares.
41
Roteiro
1 Gramáticas e Linguagens
Gramáticas
Formalização de uma Gramática
Hierarquia de Chomsky
2 Gramáticas Regulares
Gramáticas Lineares
GLUD → Linguagem Regular
Linguagem Regular → GLUD
3 Referências
42
Gramática Linear → Linguagem Regular
Teorema
Se L é uma linguagem gerada por uma Gramática Linear, então L é
uma Linguagem Regular.
43
Gramática Linear → Linguagem Regular
Ideia da prova:
• Para mostrar que uma linguagem é Regular, vamos construir um
AF que a reconheça.
• Vamos construir um AFNE N , tal que L(N) = L(G) para qualquer
GLUD G.
Todas as Gramática Lineares são equivalentes. Vamos utilizar uma GLUD.
GLUD - Gramática Linear Unitária à Direita (A → wB | w, com w ∈ (Σ ∪ {E})).
44
Gramática Linear → Linguagem Regular
Procedimento:
• O AFNE descrito abaixo simula as derivações de uma GLUD
G = (V , Σ, P, S).
N = (Q, Σ, δ, q0, F)
– Q = V ∪ {qf }
– q0 = S
– F = {qf }
– δ é definida como:
Tipo de Produção Transição
A → E δ(A, E) = qf
A → w δ(A, w) = qf
A → B δ(A, E) = B
A → wB δ(A, w) = B
45
Exemplo
Exemplo: Considere a GLUD G3 = ({S, A, B}, {a, b}, P, S), com
P : S → aA
A → bB | E
B → aA
Vamos construir o AFNE N3 que reconhece L(G3) = a(ba)∗
N = (V ∪ {qf }, Σ, δ, S, {qf })
Tipo de Produção Transição
A → E δ(A, E) = qf
A → w δ(A, w) = qf
A → B δ(A, E) = B
A → wB δ(A, w) = B
S A
B
qf
a
b
E
a
46
Gramática Linear → Linguagem Regular
Prova de corretude:
Fica como exercı́cio mostrar que L(N) = L(G).
Ver no livro (Menezes, Seção 2.6).
47
Roteiro
1 Gramáticas e Linguagens
Gramáticas
Formalização de uma Gramática
Hierarquia de Chomsky
2 Gramáticas Regulares
Gramáticas Lineares
GLUD → Linguagem Regular
Linguagem Regular → GLUD
3 Referências
48
Linguagem Regular → Gramática Linear
Teorema
Se L é uma Linguagem Regular, então existe uma Gramática Linear que
gera L.
49
Linguagem Regular → Gramática Linear
Ideia da prova:
• Se L é uma Linguagem Regular, então existe um AFD que
reconhece L.
• Vamos construir uma GLUD G a partir de AFD M, tal que
L(M) = L(G)
GLUD - Gramática Linear Unitária à Direita (A → wB | w, com w ∈ (Σ ∪ {E})).
50
Linguagem Regular → Gramática Linear
Procedimento:
• As derivações da GLUD descrita abaixo simulam a função de
transição estendida do AFD M.
G = (V , Σ, P, S)
– V = Q ∪ {S}
– ∀qf ∈ F, ou seja, todos os estados de aceitação
Transição Tipo de Produção
- S → q0
- qf → E
δ(qi , a) = qj qi → aqj
51
Exemplo
Exemplo: Considere a seguinte Linguagem Regular
L5 = a∗ + a∗b+ + a∗b+c+, reconhecida pelo AFD M5 abaixo:
q0 q1 q2
a
b
b
c
c
Vamos construir uma GLUD G5, tal que L(M) = L(G)
G = (Q ∪ {S}, Σ, P, S)
Transição Tipo de Produção
- S → q0
- qf → E
δ(qi , a) = qj qi → aqj
G5 = ({S, q0, q1, q2}, {a, b, c}, P, S)
P : S → q0
q0 → E
q1 → E
q2 → E
q0 → aq0 | bq1
q1 → bq1 | cq2
q2 → cq2
52
Exemplo
L(G5) = L(M5) = a∗ + a∗b+ + a∗b+c+:
q0 q1 q2
a
b
b
c
c
G5 = ({S, q0, q1, q2}, {a, b, c}, P, S)
P : S → q0
q0 → aq0 | bq1 | E
q1 → bq1 | cq2 | E
q2 → cq2 | E
53
Linguagem Regular → Gramática Linear
Prova de corretude:
Fica como exercı́cio mostrar que L(G) = L(M).
Ver no livro (Menezes, Seção 2.6).
54
Gramática Linear × Linguagem Regular
Em resumo:
• A linguagem gerada por qualquer Gramática Linear é uma
Linguagem Regular.
• Toda Linguagem Regular pode ser descrita por uma Gramática
Linear.
Definição
Uma Gramática Linear é chamada de Gramática Regular (GR).
55
Formalismos para as Linguagens Regulares
Temos agora mais um formalismo para as Linguagens Regulares:
• Todos eles são equivalentes
ER
AFN AFNE
AFD
GR
56
Hierarquia de Chomsky
L3 ( L2
Na próxima aula vamos ver as linguagens do Tipo 2.
57
Fim
Dúvidas?
58
Roteiro
1 Gramáticas e Linguagens
Gramáticas
Formalização de uma Gramática
Hierarquia de Chomsky
2 Gramáticas Regulares
Gramáticas Lineares
GLUD → Linguagem Regular
Linguagem Regular → GLUD
3 Referências
59
Referências
Referências:
1 “Introdução à Teoria da Computação” de M. Sipser, 2007.
2 “Linguagens formais e autômatos” de Paulo F. B. Menezes, 2002.
3 Materiais adaptados dos slides do Prof. Evandro E. S. Ruiz, da
USP.
60

Mais conteúdo relacionado

Semelhante a Aula 05 - explicação de conteúdos e didática

2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidade2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidadeshichibukai_01
 
Aula 9 propriedadedas linguagensregulares
Aula 9   propriedadedas linguagensregularesAula 9   propriedadedas linguagensregulares
Aula 9 propriedadedas linguagensregulareswab030
 
Sucessões: Exercícios Resolvidos
Sucessões: Exercícios ResolvidosSucessões: Exercícios Resolvidos
Sucessões: Exercícios Resolvidosnumerosnamente
 
Prova 01 de Autômatos e Computabilidade
Prova 01 de Autômatos e ComputabilidadeProva 01 de Autômatos e Computabilidade
Prova 01 de Autômatos e Computabilidadeshichibukai_01
 
Aula 5 linguagens regularese automatosfinitosnãodeterministico
Aula 5   linguagens regularese automatosfinitosnãodeterministicoAula 5   linguagens regularese automatosfinitosnãodeterministico
Aula 5 linguagens regularese automatosfinitosnãodeterministicowab030
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPDelacyr Ferreira
 

Semelhante a Aula 05 - explicação de conteúdos e didática (6)

2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidade2º/2012 - Prova 01 de Autômatos e Computabilidade
2º/2012 - Prova 01 de Autômatos e Computabilidade
 
Aula 9 propriedadedas linguagensregulares
Aula 9   propriedadedas linguagensregularesAula 9   propriedadedas linguagensregulares
Aula 9 propriedadedas linguagensregulares
 
Sucessões: Exercícios Resolvidos
Sucessões: Exercícios ResolvidosSucessões: Exercícios Resolvidos
Sucessões: Exercícios Resolvidos
 
Prova 01 de Autômatos e Computabilidade
Prova 01 de Autômatos e ComputabilidadeProva 01 de Autômatos e Computabilidade
Prova 01 de Autômatos e Computabilidade
 
Aula 5 linguagens regularese automatosfinitosnãodeterministico
Aula 5   linguagens regularese automatosfinitosnãodeterministicoAula 5   linguagens regularese automatosfinitosnãodeterministico
Aula 5 linguagens regularese automatosfinitosnãodeterministico
 
Análise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NPAnálise de Algoritmos - As classes P e NP
Análise de Algoritmos - As classes P e NP
 

Último

PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfPROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfdanielemarques481
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfTipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfMarcos Boaventura
 
Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3filiperigueira1
 

Último (7)

PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdfPROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
PROJETO DE INSTALAÇÕES ELÉTRICAS – REVIT MEP -.pdf
 
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdfTipos de Cargas - Conhecendo suas Características e Classificações.pdf
Tipos de Cargas - Conhecendo suas Características e Classificações.pdf
 
Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3Calculo vetorial - eletromagnetismo, calculo 3
Calculo vetorial - eletromagnetismo, calculo 3
 

Aula 05 - explicação de conteúdos e didática

  • 1. Teoria da Computação Gramáticas e Linguagens Regulares Aula 05 Prof. Felipe A. Louza
  • 2. Roteiro 1 Gramáticas e Linguagens Gramáticas Formalização de uma Gramática Hierarquia de Chomsky 2 Gramáticas Regulares Gramáticas Lineares GLUD → Linguagem Regular Linguagem Regular → GLUD 3 Referências 2
  • 3. Motivação Na primeira parte do curso, vimos dois formalismos para descrever/reconhecer linguagens: 1 Autômatos Finitos 2 Expressões Regulares Entretanto, vimos que algumas linguagens como L = {an bn |n ≥ 0} não podem ser descritas com esses formalismos. 3
  • 4. Gramáticas Vamos ver um outro formalismo para definir Linguagens Formais. Gramáticas Uma gramática possui regras para geração de todas as palavras de uma linguagem. • Os formalismos vistos até aqui são úteis apenas para as Linguagens Regulares. 4
  • 5. Roteiro 1 Gramáticas e Linguagens Gramáticas Formalização de uma Gramática Hierarquia de Chomsky 2 Gramáticas Regulares Gramáticas Lineares GLUD → Linguagem Regular Linguagem Regular → GLUD 3 Referências 5
  • 6. Gramáticas Definição informal: • É basicamente um conjunto finito de regras que, quando aplicadas sucessivamente, geram palavras. S → aSb S → A A → E O conjunto de todas as palavras geradas por uma gramática G define a linguagem L(G). {ab, aabb, aaabbb, aaaabbbb, . . . } Já vimos essa linguagem antes? 6
  • 7. Linguagens Naturais A motivação original para o estudo de Gramáticas encontra-se na descrição de Linguagens Naturais: • Relacionamentos entre termos tais como nomes, verbos e adjetivos. hsentencei → hnoun phraseihverb phrasei hnoun phrasei → harticleihnouni | hnouni hverb phrasei → hverbihadjetivei harticlei → the hnouni → boy | girl hadjetivei → small | big hverbi → is Mais tarde, viu-se que Gramáticas são úteis para descrever Linguagens Artificiais, em especial, linguagens de programação. 7
  • 8. Compiladores Gramáticas e Compiladores: • Regras de sintaxe (estrutura) em uma Linguagem de programação: Fonte: https://en.wikipedia.org/wiki/Context-free_grammar 8
  • 9. Roteiro 1 Gramáticas e Linguagens Gramáticas Formalização de uma Gramática Hierarquia de Chomsky 2 Gramáticas Regulares Gramáticas Lineares GLUD → Linguagem Regular Linguagem Regular → GLUD 3 Referências 9
  • 10. Gramática Definição Uma gramática (irrestrita), denotada por G, é uma 4-tupla ordenada G = (V , Σ, P, S) tal que: • V é um conjunto de sı́mbolos não terminais (ou variáveis) • Σ é um conjunto de sı́mbolos terminais, com Σ disjunto de V • P : (V ∪ Σ)+ → (V ∪ Σ)∗ é o conjunto de regras de produções, em que cada par (α, β) é representado por α → β • S ∈ V é denominado sı́mbolo inicial. Vamos entender mais tarde o por quê de (irrestrita). 10
  • 11. Regras de produção Cada regra de produção (α, β) pode ser representada como: α → β Um grupo de regras de produção da forma α → β1 α → β2 . . . α → βn pode ser abreviado como: α → β1 | β2 | . . . | βn 11
  • 12. Regras de produção Exemplo: G = ({S, A}, {a, b}, P, S) • Regras de produção: P : S → aSb|A A → E P = {(S, aSb), (S, A), (A, E)}. 12
  • 13. Derivação Informalmente: • A aplicação de uma regra de produção é denominada derivação de uma palavra. Nota: A aplicação sucessiva de regras de produção permite derivar as palavras da linguagem gerada pela gramática. 13
  • 14. Relação de derivação Definição Uma derivação é um par hα, βi da Relação de Derivação denotada por α ⇒ β com domı́nio em (V ∪ Σ)+ e imagem (V ∪ Σ)∗ Esta relação é definida indutivamente como: • Para toda produção na forma S → β, (S sı́mbolo inicial em G) S ⇒ β • Para todo par, α ⇒ β, onde β ⇒ βuβv βw – se βv → βt é regra de P, então: β ⇒ βuβtβw Em outras palavras, uma derivação é a substituição de uma subpalavra de acordo com uma regra de produção. 14
  • 15. Derivação Definição Dizemos que α deriva (diretamente) β, se β puder ser obtido substituindo alguma subcadeia de α, utilizando uma regra de P, denotado por: α ⇒ β. No exemplo anterior: G = ({S, A}, {a, b}, P, S) P : S → aSb|A A → E S ⇒ aSb ⇒ aaSbb ⇒ aaaSbbb ⇒ aaaEbbb = aaabbb 15
  • 16. Derivação em múltiplos passos Definição Dizemos que α deriva em múltiplos passos β, se houver uma sequência de derivações tais que α ⇒ α1 ⇒ α2 ⇒ · · · ⇒ β, denotado por: α ⇒∗ β. No exemplo anterior: S ⇒ aSb ⇒ aaSbb ⇒ aaaSbbb ⇒ aaaEbbb = aaabbb S ⇒∗ aaaEbbb = aaabbbb 16
  • 17. Passos de derivação Os sucessivos passos de derivação podem ser definidos como: • ⇒∗: zero ou mais passos sucessivos de derivação; • ⇒+: um ou mais passos sucessivos de derivação; • ⇒i : exatos i passos de derivações sucessivas, i ∈ N. 17
  • 18. Linguagem gerada Definição Seja G = (V , Σ, P, S) uma gramática. • A linguagem gerada por G, denotada por L(G), é composta por todas as palavras de sı́mbolos terminais deriváveis a partir do sı́mbolo inicial S, ou seja, L(G) = {w ∈ Σ∗ | S ⇒+ w} 18
  • 19. Linguagem gerada Exemplo: G = ({S, A}, {a, b}, P, S) • Regras de produção: P : S → aSb|A A → E • Cadeias geradas: S ⇒∗ ab S ⇒∗ aabb S ⇒∗ aaabbb . . . L(G) = {an bn | n ≥ 0} P = {(S, aSb), (S, A), (A, E)}. 19
  • 20. Linguagem gerada Nota: Dizemos que duas gramáticas G1 e G2 são equivalentes se: L(G1) = L(G2) 20
  • 21. Linguagem gerada Mais um exemplo: G = ({S}, {a, b}, P, S) • Regras de produção: P : S → aSa | bSb | a | b | E • Cadeias geradas: S ⇒∗ a S ⇒∗ b S ⇒∗ aa S ⇒∗ bb S ⇒∗ aba S ⇒∗ ababab . . . L(G) = {palı́ndromos sobre o alfabeto terminal {a, b}} 21
  • 22. Roteiro 1 Gramáticas e Linguagens Gramáticas Formalização de uma Gramática Hierarquia de Chomsky 2 Gramáticas Regulares Gramáticas Lineares GLUD → Linguagem Regular Linguagem Regular → GLUD 3 Referências 22
  • 23. Hierarquia de Chomsky Noam Chomsky, classificou gramáticas (e linguagens) a partir de restrições em suas regras de produção. Figura: Noam Chomsky Chomsky definiu estas classes como (potenciais) modelos para linguagens naturais. 23
  • 24. Tipos de Gramáticas e Linguagens Definição: Uma gramática G = (V , Σ, S, P) é do Tipo 3 se toda produção de P for da forma: A → bC ou A → b com A, C ∈ V e b ∈ Σ ou b = E. Essas são as Gramáticas Regulares (GR). 24
  • 25. Tipos de Gramáticas e Linguagens Definição: Uma gramática G = (V , Σ, S, P) é do Tipo 2 se toda produção de P for da forma: A → ω com A ∈ V e ω ∈ (Σ ∪ V )∗. Estas são as Gramáticas Livres de Contexto (GLC). 25
  • 26. Tipos de Gramáticas e Linguagens Definição: Uma gramática G = (V , Σ, S, P) é do Tipo 1 se toda produção de P for da forma: vAw → vzw com A ∈ V , v, w ∈ (Σ ∪ V )∗ e z ∈ (Σ ∪ V )+ (isto é, z 6= E). Além disso, permite-se uma única regra S → E quando S não aparece do lado direito de nenhuma produção. Estas são as Gramáticas Sensı́veis de Contexto (GSC). 26
  • 27. Tipos de Gramáticas e Linguagens Definição: Qualquer gramática G = (V , Σ, S, P) é do Tipo 0. Não existem restrições na forma das produções para as gramáticas desta classe. Estas são as Gramáticas Recursivamente Enumeráveis. 27
  • 28. Hierarquia de Chomsky L3 ( L2 ( L1 ( L0 Li corresponde à linguagem de tipo i. 28
  • 29. Hierarquia de Chomsky Regulares Livres do contexto Sensı́veis ao contexto Recursivamente enumeráveis Máquina de Turing Autômato linearmente limitado Autômato com pilha Autômato de estado finito Não computáveis Linguagens Máquinas 29
  • 30. Roteiro 1 Gramáticas e Linguagens Gramáticas Formalização de uma Gramática Hierarquia de Chomsky 2 Gramáticas Regulares Gramáticas Lineares GLUD → Linguagem Regular Linguagem Regular → GLUD 3 Referências 30
  • 31. Roteiro 1 Gramáticas e Linguagens Gramáticas Formalização de uma Gramática Hierarquia de Chomsky 2 Gramáticas Regulares Gramáticas Lineares GLUD → Linguagem Regular Linguagem Regular → GLUD 3 Referências 31
  • 32. Gramáticas Lineares Vamos ver gramáticas do Tipo 3 e mostrar que elas geram exatamente as Linguagens Regulares. • Essas gramáticas também são conhecidas como Gramáticas Lineares. 32
  • 33. Gramáticas Lineares Vamos estudar 4 formas de gramáticas do Tipo 3: 1 GLD: Gramática linear à direita 2 GLE: Gramática linear à esquerda 3 GLUD: Gramática linear unitária à direita 4 GLUE: Gramática linear unitária à esquerda 33
  • 34. Gramática Linear à Direita - GLD Definição G = (V , Σ, P, S) é uma GLD se todas as regras de produção forem da forma: A → ωB ou A → ω com A, B ∈ V e ω ∈ Σ∗. Exemplo: G1 = ({S, A}, {a, b}, P, S) P : S → aA A → baA | E 34
  • 35. Gramática Linear à Esquerda - GLE Definição G = (V , Σ, P, S) é uma GLE se todas as regras de produção forem da forma: A → Bω ou A → ω com A, B ∈ V e ω ∈ Σ∗. Exemplo: G2 = ({S}, {a, b}, P, S) P : S → Sba | a 35
  • 36. Gramática Linear Unitária à Direita - GLUD Definição G = (V , Σ, P, S) é um GLUD se todas as regras de produção forem da forma: A → wB ou A → w com A, B ∈ V e w ∈ (Σ ∪ {E}), ou seja, |w| ≤ 1. Exemplo: G3 = ({S, A, B}, {a, b}, P, S) P : S → aA A → bB | E B → aA 36
  • 37. Gramática Linear Unitária à Esquerda - GLUE Definição G = (V , Σ, P, S) é um GLUE se todas as regras de produção são da forma: A → Bw ou A → w com A, B ∈ V e w ∈ (Σ ∪ {E}), ou seja, |w| ≤ 1. Exemplo: G4 = ({S, A}, {a, b}, P, S) P : S → Aa | a A → Sb 37
  • 38. Equivalência das Gramáticas Lineares Teorema da Equivalência das Gramáticas Lineares Seja L uma linguagem. Então: L é gerada por uma GLD, se e somente se, L é gerada por uma GLE, se e somente se, L é gerada por uma GLUD, se e somente se, L é gerada por uma GLUE. Ou seja, todas as Gramáticas Lineares são equivalentes. A demonstração fica como exercı́cio. 38
  • 39. Equivalência das Gramáticas Lineares Exemplos: A linguagem a(ba)∗ é gerada pelas seguintes gramáticas: G1 = ({S, A}, {a, b}, P, S) P : S → aA A → baA|E G2 = ({S}, {a, b}, P, S) P : S → Sba|a G3 = ({S, A, B}, {a, b}, P, S) P : S → aA A → bB|E B → aA G4 = ({S}, {a, b}, P, S) P : S → Aa|a A → Sb Portanto, G1, G2, G3 e G4 são equivalentes. 39
  • 40. Gramáticas Lineares Importante: • Se uma gramática tiver produções de ambos os tipos: – Linear à Direita (A → ωB); e – Linear à Esquerda (A → Bω). • Então esta não é uma Gramática Linear. 40
  • 41. Gramática Regular × Linguagem Regular Os resultados a seguir mostram que a classe das Gramáticas Lineares denota exatamente a Classe das Linguagens Regulares. 41
  • 42. Roteiro 1 Gramáticas e Linguagens Gramáticas Formalização de uma Gramática Hierarquia de Chomsky 2 Gramáticas Regulares Gramáticas Lineares GLUD → Linguagem Regular Linguagem Regular → GLUD 3 Referências 42
  • 43. Gramática Linear → Linguagem Regular Teorema Se L é uma linguagem gerada por uma Gramática Linear, então L é uma Linguagem Regular. 43
  • 44. Gramática Linear → Linguagem Regular Ideia da prova: • Para mostrar que uma linguagem é Regular, vamos construir um AF que a reconheça. • Vamos construir um AFNE N , tal que L(N) = L(G) para qualquer GLUD G. Todas as Gramática Lineares são equivalentes. Vamos utilizar uma GLUD. GLUD - Gramática Linear Unitária à Direita (A → wB | w, com w ∈ (Σ ∪ {E})). 44
  • 45. Gramática Linear → Linguagem Regular Procedimento: • O AFNE descrito abaixo simula as derivações de uma GLUD G = (V , Σ, P, S). N = (Q, Σ, δ, q0, F) – Q = V ∪ {qf } – q0 = S – F = {qf } – δ é definida como: Tipo de Produção Transição A → E δ(A, E) = qf A → w δ(A, w) = qf A → B δ(A, E) = B A → wB δ(A, w) = B 45
  • 46. Exemplo Exemplo: Considere a GLUD G3 = ({S, A, B}, {a, b}, P, S), com P : S → aA A → bB | E B → aA Vamos construir o AFNE N3 que reconhece L(G3) = a(ba)∗ N = (V ∪ {qf }, Σ, δ, S, {qf }) Tipo de Produção Transição A → E δ(A, E) = qf A → w δ(A, w) = qf A → B δ(A, E) = B A → wB δ(A, w) = B S A B qf a b E a 46
  • 47. Gramática Linear → Linguagem Regular Prova de corretude: Fica como exercı́cio mostrar que L(N) = L(G). Ver no livro (Menezes, Seção 2.6). 47
  • 48. Roteiro 1 Gramáticas e Linguagens Gramáticas Formalização de uma Gramática Hierarquia de Chomsky 2 Gramáticas Regulares Gramáticas Lineares GLUD → Linguagem Regular Linguagem Regular → GLUD 3 Referências 48
  • 49. Linguagem Regular → Gramática Linear Teorema Se L é uma Linguagem Regular, então existe uma Gramática Linear que gera L. 49
  • 50. Linguagem Regular → Gramática Linear Ideia da prova: • Se L é uma Linguagem Regular, então existe um AFD que reconhece L. • Vamos construir uma GLUD G a partir de AFD M, tal que L(M) = L(G) GLUD - Gramática Linear Unitária à Direita (A → wB | w, com w ∈ (Σ ∪ {E})). 50
  • 51. Linguagem Regular → Gramática Linear Procedimento: • As derivações da GLUD descrita abaixo simulam a função de transição estendida do AFD M. G = (V , Σ, P, S) – V = Q ∪ {S} – ∀qf ∈ F, ou seja, todos os estados de aceitação Transição Tipo de Produção - S → q0 - qf → E δ(qi , a) = qj qi → aqj 51
  • 52. Exemplo Exemplo: Considere a seguinte Linguagem Regular L5 = a∗ + a∗b+ + a∗b+c+, reconhecida pelo AFD M5 abaixo: q0 q1 q2 a b b c c Vamos construir uma GLUD G5, tal que L(M) = L(G) G = (Q ∪ {S}, Σ, P, S) Transição Tipo de Produção - S → q0 - qf → E δ(qi , a) = qj qi → aqj G5 = ({S, q0, q1, q2}, {a, b, c}, P, S) P : S → q0 q0 → E q1 → E q2 → E q0 → aq0 | bq1 q1 → bq1 | cq2 q2 → cq2 52
  • 53. Exemplo L(G5) = L(M5) = a∗ + a∗b+ + a∗b+c+: q0 q1 q2 a b b c c G5 = ({S, q0, q1, q2}, {a, b, c}, P, S) P : S → q0 q0 → aq0 | bq1 | E q1 → bq1 | cq2 | E q2 → cq2 | E 53
  • 54. Linguagem Regular → Gramática Linear Prova de corretude: Fica como exercı́cio mostrar que L(G) = L(M). Ver no livro (Menezes, Seção 2.6). 54
  • 55. Gramática Linear × Linguagem Regular Em resumo: • A linguagem gerada por qualquer Gramática Linear é uma Linguagem Regular. • Toda Linguagem Regular pode ser descrita por uma Gramática Linear. Definição Uma Gramática Linear é chamada de Gramática Regular (GR). 55
  • 56. Formalismos para as Linguagens Regulares Temos agora mais um formalismo para as Linguagens Regulares: • Todos eles são equivalentes ER AFN AFNE AFD GR 56
  • 57. Hierarquia de Chomsky L3 ( L2 Na próxima aula vamos ver as linguagens do Tipo 2. 57
  • 59. Roteiro 1 Gramáticas e Linguagens Gramáticas Formalização de uma Gramática Hierarquia de Chomsky 2 Gramáticas Regulares Gramáticas Lineares GLUD → Linguagem Regular Linguagem Regular → GLUD 3 Referências 59
  • 60. Referências Referências: 1 “Introdução à Teoria da Computação” de M. Sipser, 2007. 2 “Linguagens formais e autômatos” de Paulo F. B. Menezes, 2002. 3 Materiais adaptados dos slides do Prof. Evandro E. S. Ruiz, da USP. 60