Linguagens Livres de Contexto

Documentos relacionados
Autômatos com Pilha: Reconhecedores de LLCs

a n Autômatos com Pilha: Definição Linguagem Aceita por um AP Notação gráfica para AP APD X APND

a n Autômatos com Pilha: Definição Linguagem Aceita por um AP Notação gráfica para AP APD X APND

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Linguagens livres de contexto e autômatos de pilha

Linguagens Livres de Contexto

Aula 7: Autômatos com Pilha

IV Gramáticas Livres de Contexto

a n Autômatos com Pilha: Definição Informal e Definição Formal Linguagem Aceita por um ACP ACPDet X ACPND Notação gráfica para ACP

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

SCC 205 Teoria da Computação e Linguagens Formais

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos

Gramáticas Livres de Contexto Parte 1

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação

Compiladores Aula 4. Celso Olivete Júnior.

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

Linguagens Regulares. Prof. Daniel Oliveira

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Livres do Contexto. Adaptado de H. Brandão

Linguagens Formais e Autômatos P. Blauth Menezes

Expressões Regulares e Gramáticas Regulares

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

Lista de exercícios 1

Linguagens Formais e Autômatos P. Blauth Menezes

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

Autómatos de Pilha e Linguagens Livres de Contexto

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Teoria da Computação

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas

Universidade Federal de Alfenas

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Automatocom Pilha Pushdown Automaton

Teoria da Computação. Máquinas Universais Máquina com Pilhas

LFA Aula 07. Equivalência entre AFD e AFND. Equivalência entre ER s e AF s Equivalência entre GR s e AF s. Linguagens Formais e Autômatos

Autómatos de pilha e GIC

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

BCC242. Auômato Finito Determinístico

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

LINGUAGENS FORMAIS E AUTÔMATOS

Teoria da Computação Aula 02 Introdução

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Linguagens Livres de Contexto

Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha

Autômatos com Pilha. Douglas O. Cardoso docardoso.github.io

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.

Linguagens Formais e Autômatos P. Blauth Menezes

Marcos Castilho. DInf/UFPR. 5 de abril de 2018

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada.

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

Equivalênciaentre PDA e CFG

Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

COMPILADORES. Revisão Linguagens formais Parte 02. Prof. Geovane Griesang

a n Sistemas de Estados Finitos AF Determinísticos

V Análise Sintática. V.1.1 Gramáticas Livres de Contexto Definições de GLC

Apostila 03 - Linguagens Livres de Contexto Exercícios

INE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto

Autômatos de Pilha (AP)

LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Draft-v0.1. Máquinas de Turing Máquinas de Turing

Autômato com Pilha. Autômato com Pilha. Autômato com Pilha

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

Linguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC)

Compiladores. Top-Down x Bottom Up. Plano da aula. Redução exemplo 1. Redução exemplo 1. Lembrando: construir a tabela de análise LL(1) A Abc b B d

Máquinas de Turing - Computabilidade

7.1. Autómatos de pilha não-determinísticos (NPDA) 7.3. Autómatos de pilha determinísticos e linguagens livres de contexto determinísticas.

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

Gramáticas Livres de Contexto

Transcrição:

Linguagens Livres de Contexto 1

Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha Conversão de gramáticas livres de contexto para autômatos de pilha Exercícios Autômatos de Pilha 2

Autômatos com Pilhas Autômatos com Pilhas (AP) são definições alternativas para Linguagens Livre de Contexto (LLC). Para as LR s existem os AF s, GR s e ER s 3

Autômatos com Pilhas Hierarquia das linguagens 4

Autômatos com Pilhas AP versus AF AP têm o seu poder de reconhecimento estendido, quando comparado ao dos AF, justamente pela disponibilidade e pela utilização de uma memória auxiliar organizada na forma de uma pilha; A pilha de um AP é uma estrutura de dados, de capacidade ilimitada, na qual a máquina de estados é capaz de armazenar, consultar e remover símbolos de um alfabeto próprio, denominado alfabeto de pilha. Demais características e componentes se assemelham com os AF s. A pilha pode ser lida, aumentada e diminuída apenas no topo (FIFO) 5

Autômatos com Pilhas Definição para o AP M = (Q,Σ, Γ, Π, q 0, Z 0, F) Q conjunto de estados possíveis do autômato, o qual é finito; Σ alfabeto de símbolos de entrada; Γ alfabeto de símbolos de pilha; Π função programa ou de função de transição: Π:Q (Σ {ε}) Γ 2 Q Γ q 0 estado inicial do AP, tal que q 0 é elemento de Q; Z 0 símbolo inicial da pilha, tal que Z 0 é elemento de Γ; F conjunto de estados finais, tal que F está contido em Q; 6

Autômatos com Pilhas M = (Q,Σ, Γ, Π, q 0, Z 0, F) Componentes que merecem destaque Γ alfabeto de símbolos de pilha Especifica os símbolos que podem ser armazenados na pilha. Z 0 símbolo inicial da pilha, tal que Z 0 é elemento de Γ Um desses símbolos de Γ representam o conteúdo inicial da pilha; AP s escolhem uma transição analisando o símbolo atual na cadeia de entrada, o estado atual e o topo da pilha. 7

AP configuração inicial Configuração inicial: AP se encontra no estado q 0 ; cursor se encontra posicionado sob a célula mais à esquerda na fita de entrada X; conteúdo da pilha é Z 0 ; A configuração de um AP é representado por: (q, α, γ), com q Q, α Σ* e γ Γ* A configuração inicial para o reconhecimento de uma cadeia w é dado por: (q o,w, Z 0 ) 8

AP possibilidades de movimentação Determinadas a partir de três informações: o seu estado corrente; o símbolo presente na cadeia de entrada; e o símbolo armazenado no topo da pilha. Após a movimentação: Consome da entrada o símbolo que ele utiliza na transição. Se ε for usado, nenhum símbolo da entrada é consumido. Vai para um novo estado, que pode ou não ser o mesmo estado anterior. Substitui o símbolo do topo da pilha por qualquer cadeia. A cadeia pode ser ε (eliminação na pilha); pode ser o mesmo símbolo do topo (nenhuma alteração) ou um ou mais símbolos distintos (eliminação + inserção). 9

AP possibilidades de movimentação Possibilidades de movimentação - classificação AP determinístico Uma única possibilidade de movimentação a partir de uma configuração. AP não-determinístico Mais de uma opção de movimentação. 10

AP configuração final Caracterizada de duas maneiras distintas, porém equivalentes. Na primeira delas, exige-se o esgotamento da cadeia de entrada e também que o AP atinja um estado final. O conteúdo final da pilha é irrelevante. Linguagem aceita pelo AP é denotada por: (q 0, w, Z 0 ) (q, ε, γ), com q F e γ Γ* Na segunda caracterização, exige-se o esgotamento da cadeia de entrada e também que a pilha tenha sido completamente esvaziada, não importando que o estado atingido seja final ou não-final. (q 0, w, Z 0 ) (q, ε, ε), com q Q 11

AP representação por diagrama de estados Em um AP as transições de p para q são rotulados da seguinte forma: (β, Z, γ) com β Σ, Z Γ e γ Γ* símbolo_lido, topo_atual;novo_topo Convencionalmente, Z 0 é o símbolo da pilha (no JFLAP é Z). 12

AP Exemplo AP que reconhece a expressão x+y ou (x+y) aceitação por estado final Qual a estratégia de resolução? símbolo_lido, topo_atual;novo_topo 13

AP Exemplo AP que reconhece a expressão x+y ou (x+y) aceitação por estado final símbolo, topo_antigo;novo_topo Entrada x+y Forma de aceitação Conteúdo inicial da pilha 14

AP EXERCÍCIO 1. Dado o AP=({p,q}, {0,1}, {Zo,X}, δ, q, Zo, {p}) formado pelas transições: δ (q, 0, Zo) = {(q, XZo)} δ (q, 0, X) = {(q, XX)} δ (q, 1, X) = {(q, X)} δ (q, ε, X) = {(p, ε)} δ (p, ε, X) = {(p, ε)} δ (p, 1, X) = {(p, XX)} δ (p, 1, Zo) = {(p, ε)} Def. AP = (Q,Σ, Γ, Π, q 0, Z 0, F) 1.1. Construa o AP graficamente (lembrando que Zo é representado apenas por Z no JFLAP) 1.2. Verifique se as cadeias a seguir estão em L(AP): (a) 01 (b) 0011 (c) 010 1.3. O AP é determinístico ou não determinístico? Reconhece por estado final ou por pilha vazia? 1.4. Qual a linguagem que o AP reconhece? 15

EXERCÍCIO - resposta 2. Dado o AP=({p,q}, {0,1}, {Zo,X}, δ, q, Zo, {p}) formado pelas transições: δ (q, 0, Zo) = {(q, XZo)} δ (q, 0, X) = {(q, XX)} δ (q, 1, X) = {(q, X)} δ (q, ε, X) = {(p, ε)} δ (p, ε, X) = {(p, ε)} δ (p, 1, X) = {(p, XX)} δ (p, 1, Zo) = {(p, ε)} 16

AP EXERCÍCIOS 2. L = {0 n 1 n ; n > 0} e aceitação por pilha vazia. Ideia: empilhar todos os 0 s e desempilhe-os ao encontrar sua contraparte de 1 s 17

AP EXERCÍCIOS 2. L = {0 n 1 n ; n > 0} e aceitação por pilha vazia. Ideia: empilhar todos os 0 s e desempilhe-os ao encontrar sua contraparte de 1 s 18

Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha Conversão de gramáticas livres de contexto para autômatos de pilha Exercícios Autômatos de Pilha 19

De gramáticas livres de contexto para autômatos de pilha Seja G uma GLC, então é possível definir um autômato de pilha não-determinístico M, com critério de aceitação baseado em pilha vazia, de modo que V(M) = L(G). Entrada: uma GLC G = (V, T, P, S); Saída: um APND M = (Q, Σ, Γ, q, S, F) com critério de aceitação de pilha vazia, tal que V(M) = L(G); Autômatos de Pilha 20

Método: 1. Q {V}; De gramáticas livres de contexto para autômatos de pilha 2. Γ V; 3. F ; // aceitação por pilha vazia 4. Função de transição: a) δ ; o alfabeto da pilha é o próprio vocabulário V (não-terminais) da gramática b) δ(q, ε, A) = {(q, γ) A γ P}, A N, γ V * ; c) δ(q, α, α) = {(q, ε)}, α Σ. GLC G = (V, T, P, S) Autômatos de Pilha 21

De gramáticas livres de contexto para autômatos de pilha AP s construídos segundo este critério operam através da repetida substituição dos símbolos não-terminais no topo da pilha, sem consumo de símbolos da fita de entrada, até que surja um símbolo terminal do topo da pilha. Nesta configuração, a sua remoção é condicionada à presença do mesmo símbolo na posição de leitura correntemente apontada pelo cursor da fita de entrada. AP s construídos segundo este critério também simulam a sequência de derivações mais à esquerda que seria feita pela gramática correspondente na geração da mesma sentença. Autômatos de Pilha 22

1. Q {V}; 2. Γ V; De gramáticas 3. F ; livres de contexto para 4. Função de transição: autômatos pilha a) δ ; b) δ(q, ε, A) = {(q, γ) A γ P}, A N, γ Vn ; c) δ(q, α, α) = {(q, ε)}, α Σ. A escolha da produção a ser aplicada depende apenas do não-terminal presente no topo da pilha. Exemplo: A αγ1 e A αγ2 geram δ(q,ε,a) = {(q, αγ1), (q, αγ2)} Gramática P= {E T TZ, T F FY, F (E) a, Y F FY, Z +T +TZ} AP {(q, ε, E) {(q,t), (q,tz)}, (q, ε,t) {(q, F), (q, FY )}, (q, ε, F) {(q, (E)), (q, a)}, (q, ε,y ) {(q, F), (q, FY )}, (q, ε, Z) {(q,+t), (q,+tz)}, (q, a, a) {(q, ε)}, (q, (, () {(q, ε)}, (q, ), )) {(q, ε)}, (q,+,+) {(q, ε)}, (q,, ) {(q, ε)}, (q, ε, Z0) {(q, ε)} } Autômatos de Pilha 23

De gramáticas livres de contexto para autômatos de pilha {(q, ε, E) {(q,t), (q,tz)}, (q, ε,t) {(q, F), (q, FY )}, (q, ε, F) {(q, (E)), (q, a)}, (q, ε,y ) {(q, F), (q, FY )}, (q, ε, Z) {(q,+t), (q,+tz)}, (q, a, a) {(q, ε)}, (q, (, () {(q, ε)}, (q, ), )) {(q, ε)}, (q,+,+) {(q, ε)}, (q,, ) {(q, ε)}, (q, ε, Z0) {(q, ε)} } aceitação de pilha vazia Autômatos de Pilha 24

AP EXERCÍCIOS 3. Converta a gramática S ε a b asa bsb em um AP. A ideia é simular as derivações mais à esquerda com o AP. Qual a linguagem reconhecida? Passos: 1. A primeira transição empilha SZ de modo que se possa testar pilha vazia (Z), e também iniciar a simulação (S) ε,ε;s 2. Possibilite push/pop de terminais de modo que se possa ler qualquer string de terminais gerado. Ex: a,a;ε 3. Simule todas as produções adicionando transições sem leitura. Ex: ε,s;asa 25

1. Q {V}; 2. Γ V; 3. F ; 4. Função de transição: a) δ ; AP EXERCÍCIOS b) δ(q, ε, A) = {(q, γ) A γ P}, A N, γ Vn ; c) δ(q, α, α) = {(q, ε)}, α Σ. 3. Converta a gramática S ε a b asa bsb em um AP. A ideia é simular as derivações mais à esquerda com o AP. A escolha da produção a ser aplicada depende apenas do não-terminal presente no topo da pilha. Exemplo: A αγ1 e A αγ2 geram δ(q,ε,a) = {(q, αγ1), (q, αγ2)} 26

AP EXERCÍCIOS 4. Converta a gramática abaixo em um AP (por pilha vazia ou estado final). Qual a linguagem gerada? G=({P, A, B}, {a,b,c}, R, P) Regras R: P ABA A aa a B bbc ε 27

AP EXERCÍCIOS 4. Converta a gramática abaixo em um AP (por pilha vazia ou estado final). Qual a linguagem gerada? G=({P, A, B}, {a,b,c}, R, P) Regras R: P ABA A aa a B bbc ε 28

AP EXERCÍCIOS 5. Forneça um AP (aceitação por pilha vazia) para a seguinte linguagem: L(AP)= {wcw R w {a, b}*} Dica: antes de ler o c empilhe qualquer símbolo lido; ao encontrar o c leia os símbolos restantes garantindo que cada novo símbolo lido é idêntico ao símbolo desempilhado; se pilha vazia, aceite, c.c., rejeite. 29

AP EXERCÍCIOS 5. Forneça um AP para a seguinte linguagem: L(AP)= {wcw R w {a, b}*} 30

Exercícios (1/2) 6. Projete um AP para aceitar cada uma das linguagens a seguir (por estado final ou por pilha vazia, o que for mais conveniente): a) {0 N 1 N N 1} b) O conjunto de todas as cadeias de 0s e 1s tais que nenhum prefixo tenha mais 1s do que 0s. c) o conjunto de todas as cadeias de 0s e 1s com um número igual de 0s e 1s. 7. Construa uma gramática livre de contexto G para a linguagem L(G) = {w=xayb x, y {a, b}*}. Em seguida, utilizando o algoritmo apresentado, construa o AP. 8. Construa gramáticas que gerem as linguagens abaixo. Posteriormente, construa os AP s. (a) {a i b j j i} (b) {a i b j j < i ou j > 2i} (c) {a i b j i j 2i} (d) {a i b j c k i = j ou j = k ou k = i} Autômatos de Pilha 31

Exercícios (2/2) 9. Dê um APND (AP não-determinístico) que aceite a linguagem dos parênteses casados pelo estado final. Exemplo: S() S(S) SSS 10. Dado o seguinte conjunto de produções: S aa A ab B ab bc C cc cd D c Escreva o autômato a pilha que processa L(G). Qual a ling. gerada? Autômatos de Pilha 32