Buscar

Gramaticas livres de contexto

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 31 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Gramática Livre de Contexto
2021.1
COMPILADORES
Máquina de Turing
 Uma máquina de Turing é um formalismo representa a 
realização de cálculos que são executados mecanicamente e 
em tempo finito. 
 Para isso, considerava-se um dispositivo que pudesse ler e 
escrever símbolos em uma fita. 
 A fita está dividida em quadrados e possui um tamanho 
ilimitado. 
Máquina de Turing
 A unidade de controle possui uma cabeça da fita para 
leitura/gravação, se movendo em torno da fita para frente ou 
para trás, passando um quadrado por vez. 
 Basicamente, pode-se resumir os passos de uma máquia de 
Turina em ler um símbolo de um quadrado de uma fita, alterar 
um símbolo em um quadrado de uma fita e mover a cabeça da 
fita para outro quadrado.
Máquina de Turing
 Fita: é uma estrutura de armazenamente dos símbolo de 
entrada, que podem ser infinitos. São seprados por células 
(quadrados), onde em cada célula possui um símbolo.
 Unidade de Controle: representa o estado atual da máquina. Por 
meio da cabeça da fita, tem acesso a cada célula da fita para 
leitura/gravação. Pode-se movimentar pela fita para a esquerda 
(para trás) ou para a direita (para frente).
 Programa (função de transição): é a função que define o estado 
da máquina, comandando as leituras, ravação e movimentação 
da cabeça da fita.
Máquina de Turing
Máquina de Turing
 Uma máquina de Turing é representada pela a tupla M = (Q, Σ, 
Γ , s, β, *, F, δ):
 - Q é um cojunto finito de estados da máquina
 - Σ é um alfabeto finito de símbolos da entrada
 - Γ é um alfabeto finito de símbolos da fita, Σ⊆Γ
 - s é o estado inicial, s∈Q
 - β é o símbolo ‘branco’, β∈Γ
 - * é o símbolo do marcador inicial da fita, *∈ Γ
 - F é o conjunto de estados finais, F⊆Q
 - δ é um cojunto de função de transição (programa), Q x (Γ U Σ) ⇒ Q x (Γ U Σ) x {← ,→ } 
onde←representa o movimento à esquerda e → representa o movimento à direita.
Classes de linguagens 
Gramática
 Uma gramática consiste em uma ou mais variáveis que 
representam linguagens.
 – Exemplo: linguagem dos palíndromos (permite a mesma 
leitura da esquerda para direita quanto da direita para 
esquerda).
 Ex: Anita latina
 Se w é um palíndromo, então 0w0 e 1w1 são palíndromos.
 Neste caso a linguagem é formada apenas por uma variável (w).
Gramáticas Irrestritas
 Uma linguagem L é uma Linguagem recursivamente enumerável 
 L, se somente se, L é gerada por uma gramática irrestrita.
 Linguagem recursivamente enumerável, linguagem tipo 0
 Uma linguagem aceita por uma máquina de Turing é dita 
linguagem recursivamente enumerável ou linguagem tipo 0 
(MENEZES, 2011)
 Definição 3: Uma gramática é considerada irrestrita se não 
houver restrições em suas produções (MENEZES, 2011).
Exemplo 1
 Considere a linguagem a seguir:
 L = {an bn cn| n ≥ 0}
 Gerada pela gramática irrestrita a seguir :
 G = ({S,C}, {a, b, c}, P, S)
 P = {
 S→ abc | ε ,
 ab → aabbC ,
 Cb → bC ,
 Cc → cc
 }
 Dada a palavra de entrada:
 w = aabbcc
 Podemos derivar a palavra conforme a seguir:
 S => abc => aabbCc => aabbcc
Exemplo 2
 Considere a linguagem a seguir:
 L = {an b2n an| n ≥ 1}
 Gerada pela gramática irrestrita a seguir :
 G = ({S,C}, {a, b, c}, P, S)
 P = { S→ aAbba ,
 aAb → aabbbA | ab ,
 bAb → bbA ,
 bAa → Bbaa ,
 bB → Bb ,
 aB → aA }
 Dada a palavra de entrada: w = aabbbbaa
 Podemos derivar a palavra conforme a seguir: S => aAbba => aabbbAba => aabbbbAa => aabbbBbaa => aabbBbaa => 
aabBbbbaa => aaBbbbbaa => aaAbbbbaa => aabbbbaa
Gramáticas Sensível ao Contexto
 Uma gramática sensível ao contexto, os símbolos terminais e 
não-terminais são consideradas no lado esquerdo das regras 
gramaticais , ou seja, consideram o seu contexto (Ramos, 
2008). 
 Definição 4: Gramática Sensível de Contexto
 Seja G = (V, T, S, P) uma gramática irrestrita então toda 
produção v → w em P tal que |v| ≤ |w|, ou seja, a forma 
setencial w tem comprimento maior ou igual a cadeia v (Acióly, 
2002), execeto para o caso S→ε.
Exemplo 3
 Considere a linguagem a seguir:
 L = {an b2n an| n ≥ 1}
 Gerada pela gramática irrestrita a seguir :
 G = ({S,C}, {a, b, c}, P, S)
 P = { S→ aAbba | abba ,
 aAb → aabbbB ,
 Bb → bB ,
 Ba → Caa | aa ,
 bCa → Cba ,
 bC → Cb ,
 aCb → aAb }
 Dada a palavra de entrada: w = aabbbbaa
 Podemos derivar a palavra conforme a seguir: S => aAbba => aabbbBba => aabbbbBa => aabbbbaa
Exemplo 4
 Considere a linguagem a seguir:
 L = {an bn an bn | n ≥ 1}
 Gerada pela gramática irrestrita a seguir : G = ({S,A, B, C, D, E}, {a, b}, P, S)
 P = { S → aAbab | abab 
 aAb → aabbB 
 Bb → bB 
 Ba → aC 
 aCb → Daabb | aabb 
 Da → aD 
 bDa → Eba 
 bE → Eb 
 aE → aA }
 Dada a palavra de entrada: w = aabbaabb
 Podemos derivar a palavra conforme a seguir: S => aAbab => aabbBab => aabbaCb => aabbaabb
Gramática Livre de Contexto
 Uma gramática sensível ao contexto, os símbolos terminais e 
não-terminais são consideradas no lado esquerdo das regras 
gramaticais , ou seja, consideram o seu contexto
 As gramáticas livres de contexto restringem o lado esquerdo 
das regras gramaticais um único símbolo não-terminal. Assim, 
estabelecem que todas as derivações sejam feitas 
considerando-se apenas o não-terminal selecionado para a 
substituição.
 Uma linguagem livre de contexto (LLC) é gerada por uma 
Gramática Livre de Contexto (GLC) 
Gramática Livre de Contexto
 Formalmente as gramáticas são caracterizadas como quádruplas 
ordenadas
 G = ( {V}, T, P, S)
 onde:
 V representa o vocabulário não terminal da gramática - variáveis.
 T é o vocabulário terminal, contendo os símbolos que constituem as 
sentenças da linguagem.
 P representa o conjunto de todas as leis de formação (regras de produção) 
utilizadas pela gramática para definir a linguagem.
 S representa o símbolo de início 
Exemplo 5
 Considere a linguagem a seguir:
 L = {a bn | n ≥ 1}
 Gerada pela gramática irrestrita a seguir :
 G = ( {S,A,B}, {a,b}, P, S )
 P={ 
 S → AB
 A → a | AB
 B → b 
 }
 Dada a palavra de entrada: w = abb
 Podemos derivar a palavra conforme a seguir: S → AB → ABB → aBB → abB → abb
Gramática Livre de Contexto
 Podem ser classificadas em gramáticas lineares à
 direita (GLD) ou à esquerda (GLE), cujas regras
 α → β são da forma:
– α ∈ V, α é um não terminal (Lado esquerdo deve ter apenas 
não terminais)
 GLD: β ∈ (T ∪ {ε}) (V ∪ {ε}) - A→wB ou A →w
 GLE: β ∈ (V ∪ {ε}) (T ∪ {ε}) - A→Bw ou A →w
Gramática Livre de Contexto
 Gramáticas lineares obedecem a regra α → β
 α ∈ V
 – o lado esquerdo da regra é formado por um símbolo não terminal
 GLD: β ∈ (T ∪ {ε}) (V ∪ { ε}) - A→wB ou A →w com |w| >= 0
 – o lado direito da regra é formado por N símbolos terminais seguido de UM 
símbolo não terminal OU formado apenas por N símbolos terminais
 GLE: β ∈ (V ∪ {ε}) (T ∪ {ε}) - A→Bw ou A →w com |w| >= 0
 – o lado direito da regra é formado por UM símbolo não terminal seguido de N 
símbolos terminais OU formado apenas por N símbolos terminais
Gramática Livre de Contexto
 GLD e GLE geram exatamente a mesma classe de linguagens. 
Portanto, é indiferente o emprego de uma ou outra dessas duas 
variantes de gramática, já que ambas possuem a mesma 
capacidade de representação de linguagens.
 As linguagens geradas por GLD e GLE são as linguagens 
regulares
 – Logo, GLD e GLE são equivalentes
Gramática Livre de Contexto
 Gramática Linear Unitária à Direita (GLUD)
 – Como na gramática linear à direita.
 – Adicionalmente |w| <= 1 no máximo um terminal do lado 
direito da regra
 Gramática Linear Unitária à Esquerda (GLUE)
 – Como na gramática linear à esquerda.
 – Adicionalmente |w| <= 1 no máximo um terminal do lado 
direito da regra
Exemplo
 Ex: dada a linguagem L = {a, aba, ababa, abababa, ababababa} 
 Faça as GLD, GLE, GLUD e GLUE que as reconhece.
 – mostre os passos para reconhecer a palavra ababa
Exemplo 6.1 GLD
 Considere a linguagem a seguir: L = {a (ab)n | n ≥ 0}
 Gerada pela gramática irrestrita a seguir :
 G = ( {S,A}, {a,b}, P, S )
 P = { 
 S → aA
 A → baA | ε 
 }
 Dada a palavra de entrada: 
 - w = ababa
 Podemos derivar a palavra conforme a seguir: 
 - S → aA → abaA → ababaA → ababaε
Exemplo 6.1 GLUD
 Considere a linguagem a seguir:
 L = {a (ab)n | n ≥ 0}
 Gerada pela gramática irrestrita a seguir :
 G = ( {S,A}, {a,b}, P, S )
 P = { 
 S → aA
 A → bB | ε
 B → aA 
 }
 Dada a palavra de entrada: 
 - w = ababa
 Podemos derivar a palavra conforme a seguir: 
 - S → aA → abB → abaA → ababB → ababaA → ababaε
Exemplo 6.1 GLE
 Considere a linguagem a seguir:
 L = {a (ab)n | n ≥ 0}
 Gerada pela gramática irrestrita a seguir :
 G = ( {S,A}, {a,b}, P, S )
 P = { 
 S → Sba | a 
 }
 Dada a palavra de entrada: 
 - w = ababa
 Podemos derivar a palavra conforme a seguir: 
 - S → Sba → Sbaba → ababa
Exemplo 6.1 GLUE
 Considere a linguagem a seguir:
 L = {a (ab)n | n ≥ 0}
 Gerada pela gramática irrestrita a seguir :
 G = ( {S,A}, {a,b}, P, S )
 P = { 
 S → Aa | a
 A → Sb 
 }
 Dada a palavra de entrada: 
 - w = ababa
 Podemos derivar a palavra conforme a seguir: 
 - S → Aa → Sba → Aaba → Sbaba → ababa
Árvore de Derivação
 A representação de uma determinada derivação de palavras de 
uma GLC na forma de árvores
 – A raiz é o símbolo inicial da gramática
 – Os vértices inferiores são as variáveis
 – Os folhas são os símbolos terminais, ou vazio
Ambiguidade
 Uma GLC é dita ambigua se existe uma palavra que possua 
uma ou mais árvore de derivação
Referência
 Capítulo 6 do Livro MENEZES, Paulo F. B., Linguagens Formais 
e Autômatos [recurso eletrônico, Minha Biblioteca]. Porto Alegre, 
Grupo A, 2011.
 http://www2.fct.unesp.br/docentes/dmec/olivete/lfa/
lfa_material_didatico.html
Desafi o
 Resolva a lista de exercícios passada pelo professor.
“Educação não transforma o mundo. Educação muda as 
pessoas. Pessoas transformam o mundo.”
Paulo Freire
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31

Continue navegando