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

Documentos relacionados
Autômatos finitos não-determinísticos

Gramáticas Livres de Contexto

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo

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

Lema do Bombeamento para Linguagens Livres do Contexto

Linguagens Livres de Contexto

Universidade Federal de Alfenas

Autômatos com Pilha: Reconhecedores de LLCs

SCC 205 Teoria da Computação e Linguagens Formais

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.

Aula 7: Autômatos com Pilha

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

IBM1088 Linguagens Formais e Teoria da

Expressões regulares

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

Linguagens livres de contexto e autômatos de pilha

Autômatos de Pilha (AP)

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

Aula 9: Máquinas de Turing

Linguagens Livres de Contexto

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

Linguagens Regulares. Prof. Daniel Oliveira

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Como construir um compilador utilizando ferramentas Java

Linguagens Formais e Autômatos P. Blauth Menezes

UNIVERSIDADE DA BEIRA INTERIOR

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

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

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

Automatocom Pilha Pushdown Automaton

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

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

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

Autómatos de pilha e Gramáticas independentes de contexto

Gramáticas Livres de Contexto Parte 1

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

Construção de Compiladores Aula 16 - Análise Sintática

IBM1088 Linguagens Formais e Teoria da Computação

C : R I IN 0. tal que. C(α) = 0 sempre que α I {, ɛ} C(α + β) = C(α) + C(β) + 1. C(αβ) = C(α) + C(β) + 1. C(α ) = C(α) + 1.

Linguagens recursivamente enumeráveis

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Sistemas de Estados Finitos AF Determinísticos. (H&U, 1979) e (H;M;U, 2001)

IBM1088 Linguagens Formais e Teoria da Computação

Aula 3: Autômatos Finitos

Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

Modelos de Computação Folha de trabalho n. 10

Autómatos de pilha e GIC

BCC242. Auômato Finito Determinístico

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

Linguaguens recursivamente enumeráveis e recursivas

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

Máquinas de Turing (MT)

Autômatos Finitos Determinís3cos (AFD)

Aula 3: Autômatos Finitos

Propriedades de Fecho de Linguagens Regulares.

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

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

a n Sistemas de Estados Finitos AF Determinísticos

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07

Autómatos determísticos de k-pilhas

LINGUAGENS FORMAIS E AUTÔMATOS

Modelos de Computação Folha de trabalho n. 8

Linguagens Formais e Autômatos P. Blauth Menezes

Máquinas de Turing: uma introdução

Variações de Máquinas de Turing

Compiladores. Prof. Bruno Moreno Aula 8 02/05/2011

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

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

a n Sistemas de Estados Finitos AF Determinísticos

Melhores momentos AULA PASSADA. Complexidade Computacional p. 136

Linguagens Formais e Problemas de Decisão

Autômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. david/enseignement/2003.

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

Universidade Federal de Uberlândia Mestrado em Ciência da Computação

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.

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

Linguagens Livres de Contexto

a n Sistemas de Estados Finitos AF Determinísticos (H&U, 1979) e (H;M;U, 2001)

Autômatos Finitos Não Determinís5cos (AFN)

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

Variantes de Máquinas de Turing

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

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

Linguagens Formais e Autômatos (LFA)

INE5317 Linguagens Formais e Compiladores AULA 8: Linguagens Livres de Contexto

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Linguagens Formais e Autômatos P. Blauth Menezes

Máquina de Turing. Controle finito

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

Análise Léxica. Fundamentos Teóricos. Autômatos Finitos e Conjuntos Regulares (cap. III da apostila de Linguagens Formais e Compiladores)

Máquinas de Turing - Computabilidade

INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída

Transcrição:

Autômato com pilha IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Departmento de Computação e Matemática FFCLRP Universidade de São Paulo E.E.S Ruiz (DCM USP) LFA 1 / 27

Homenagem do dia Stephen Hawking People won t have time for you if you are always angry or complaining. SH: Físico, Inglês, 1942. E.E.S Ruiz (DCM USP) LFA 2 / 27

Conteúdo 1 Introdução 2 Definição formal e exemplos 3 Descrição instantânea 4 Determinismo e não-determinismo E.E.S Ruiz (DCM USP) LFA 3 / 27

Introdução Autômatos antes Autômatos finitos Linguagens Regulares AF têm memória limitada ao estado atual Baixo poder de processamento (se comparado com outras máquinas ) Insuficientes para atender GLC E.E.S Ruiz (DCM USP) LFA 4 / 27

Introdução Resolvendo GLC Autômatos com pilha: geram e reconhecem as LLC Autômatos com memória adicional: a pilha Neste autômato a pilha pode ser lida e escrita E.E.S Ruiz (DCM USP) LFA 5 / 27

Introdução Resolvendo GLC Autômatos com pilha: geram e reconhecem as LLC Autômatos com memória adicional: a pilha Neste autômato a pilha pode ser lida e escrita Pilha: operações push() e pop() sempre e só no topo da pilha A pilha não tem limitação de memória Pilha: estrutura de dados com capacidade ilimitada LIFO (last-in, first-out) Os autômatos com pilha (AP) são o segundo tipo, na escala de complexidade, dos reconhecedores sintáticos E.E.S Ruiz (DCM USP) LFA 5 / 27

Introdução Pilhas: duas formas de operação Stack push() + pop() no topo além de consulta direta nos demais elementos Pushdown push() + pop(), só. AP consideram o modo de operação pushdown. E.E.S Ruiz (DCM USP) LFA 6 / 27

Introdução Representação de um autômato com pilha Também representa a função de transição: δ : Q Σ Γ QΓ E.E.S Ruiz (DCM USP) LFA 7 / 27

Definição formal e exemplos 1 Introdução 2 Definição formal e exemplos 3 Descrição instantânea 4 Determinismo e não-determinismo E.E.S Ruiz (DCM USP) LFA 8 / 27

Definição formal e exemplos Definição Um autômato com pilha é uma 6-tupla (Q, Σ, Γ, δ, q 0, F ) em que: 1 Q é o conjunto de estados; 2 Σ é o alfabeto de entrada; 3 Γ (gama) é o alfabeto da pilha; 4 δ : Q Σ ɛ Γ ɛ P(Q Γ ɛ ) é a função de transição; 5 q 0 Q é o estado inicial; e 6 F Q é o conjunto de estados de aceitação. Lembrando que Σ ɛ = Σ {ɛ} e, analogamente, Γ ɛ = Γ {ɛ}. Pelo quarto item, entendemos que o estado atual, o símbolo lido e o símbolo do topo da pilha determinam a transição, ou seja, o novo estado e o topo da pilha. E.E.S Ruiz (DCM USP) LFA 9 / 27

Definição formal e exemplos AP: configuração Configuração de um AP Algebricamente, a configuração de um AP é representada por (q, α, γ) Q Σ Γ Configuração inicial de um AP: (q 0, w, $) Ou seja, o símbolo $ significa pilha vazia. E.E.S Ruiz (DCM USP) LFA 10 / 27

Definição formal e exemplos Modelos de aceitação Existem dois modelos distintos de aceitação ou reconhecimento de uma palavra para o AP: 1 Modelo baseado em estados finais 2 Modelo baseado em pilha vazia Os dois modelos são equipotentes. E.E.S Ruiz (DCM USP) LFA 11 / 27

Definição formal e exemplos Critério de aceitação Critério de estado final A linguagem denotada por L aceita pelo AP M com base no critério de estado final é definido como L(M) = {w Σ (q 0, w, $) (q, ɛ, γ), q F, γ Γ } E.E.S Ruiz (DCM USP) LFA 12 / 27

Definição formal e exemplos Critério de aceitação Critério de estado final A linguagem denotada por L aceita pelo AP M com base no critério de estado final é definido como L(M) = {w Σ (q 0, w, $) (q, ɛ, γ), q F, γ Γ } Critério de pilha vazia A linguagem denotada por V aceita pelo AP M com base no critério de pilha vazia é definido como V (M) = {w Σ (q 0, w, $) (q, ɛ, ɛ), q Q} E.E.S Ruiz (DCM USP) LFA 12 / 27

Definição formal e exemplos Estado da pilha Símbolos na pilha Considerando Γ = {γ 1, γ 2, γ 3, γ 4 }, o vocabulário da pilha, a cadeia γ 2, γ 1, γ 3, γ 3 é representada na pilha como γ 2 no topo da pilha e os demais símbolos seguem a baixo do topo. Pilha γ 2 γ 1 γ 3 γ 3 $ E.E.S Ruiz (DCM USP) LFA 13 / 27

Definição formal e exemplos Exemplo: L 1 = {a n b n n 0} Veja este exemplo usando o critério de estado final. a, ɛ X b, X ɛ ɛ, ɛ $ b, X ɛ ɛ, $ ɛ start q 1 q 2 q 3 q 4 Leia as regras de produção da seguinte forma: a, b c como: quando a máquina lê um símbolo a, ela substitui o símbolo b no topo da pilha pelo símbolo c; A pilha está vazia no seu início. O símbolo $ que representa esta situação. E.E.S Ruiz (DCM USP) LFA 14 / 27

Definição formal e exemplos Explicações A partir do estado q 1, sem que nenhum símbolo seja lido, ocorre a transição para q 2 e o símbolo $ é inserido na pilha (push()) A partir de q 2, a cada a lido, acrescenta-se o símbolo X na pilha. Perceba que a pilha atua como uma memória A partir do estágio em que b s começam a ser lidos, substituímos os X s da pilha (pop()) por ɛ Quando só restar o $, substitua-o por ɛ, restaurando a pilha ao seu estado original. E.E.S Ruiz (DCM USP) LFA 15 / 27

Definição formal e exemplos Vejamos outro exemplo: L(M 2 ) = {a 2i bc i i > 0} Exemplo de palavras: aabc, aaaabcc. ɛ, ɛ $ a, ɛ X start q 0 q 1 q 2 a, ɛ X a, ɛ ɛ q 3 b, X X q 5 ɛ, $ ɛ q 4 c, X ɛ Usamos aqui o critério de esvaziamento de pilha. E.E.S Ruiz (DCM USP) LFA 16 / 27

Definição formal e exemplos Mais um exemplo L 3 = {a i b j c k i = j ou i = k} Amáquina acumula todos os a s e depois tenta analisar a quantidade deles com a quantidade de b ou c Reparem que entra em cena o não-determinismo do problema. E.E.S Ruiz (DCM USP) LFA 17 / 27

Definição formal e exemplos Implementando L 3 = {a i b j c k i = j ou i = k} b, X ɛ c, ɛ ɛ a, ɛ X ɛ, ɛ $ start q 1 q 2 ɛ, ɛ ɛ ɛ, $ ɛ q 3 q 4 b, ɛ ɛ c, X ɛ ɛ, ɛ ɛ ɛ, $ ɛ q 5 q 6 q 7 ɛ, ɛ ɛ E.E.S Ruiz (DCM USP) LFA 18 / 27

Definição formal e exemplos Autômato 3: L 4 = {ww r w pertence a {a, b} } a, ɛ A b, ɛ B a, A ɛ b, B ɛ ɛ, ɛ $ ɛ, ɛ ɛ ɛ, $ ɛ start q 1 q 2 q 3 q 4 E.E.S Ruiz (DCM USP) LFA 19 / 27

Descrição instantânea 1 Introdução 2 Definição formal e exemplos 3 Descrição instantânea 4 Determinismo e não-determinismo E.E.S Ruiz (DCM USP) LFA 20 / 27

Descrição instantânea Recordando a função de transição para AP Função de transição para AP δ : Q Σ Γ Q Γ E.E.S Ruiz (DCM USP) LFA 21 / 27

Descrição instantânea Descrição instantânea Um AP tem a seguinte configuração a qualquer instante (q, w, y): q o estado atual w a cadeia (ou o restante da) de entrada y o conteúdo do topo da pilha Atentos! Se δ(q, a, X ) = {(p, A)} for uma transição, então os seguintes casos são verdadeiros: (q, a, X ) (p, ɛ, A) (q, aw, X B) (p, w, AB) Para representando um movimento e uma seqüência de movimentos. E.E.S Ruiz (DCM USP) LFA 22 / 27

Descrição instantânea Princípios derivados da descrição instantânea Teorema 1 Dado um AP, se (q, x, A) (p, y, B), então para qualquer cadeia w Σ e γ Γ, é correto afirmar que: (q, xw, Aγ) (p, yw, Bγ) E.E.S Ruiz (DCM USP) LFA 23 / 27

Descrição instantânea Princípios derivados da descrição instantânea Teorema 1 Dado um AP, se (q, x, A) (p, y, B), então para qualquer cadeia w Σ e γ Γ, é correto afirmar que: (q, xw, Aγ) (p, yw, Bγ) Teorema 2 Dado um AP, se (q, xw, A) (p, yw, B), então também é correto afirmar que: (q, x, A) (p, y, B) E.E.S Ruiz (DCM USP) LFA 23 / 27

Determinismo e não-determinismo 1 Introdução 2 Definição formal e exemplos 3 Descrição instantânea 4 Determinismo e não-determinismo E.E.S Ruiz (DCM USP) LFA 24 / 27

Determinismo e não-determinismo Determinísmo e não determinismo Um autômato com pilha é equivalente a uma LLC relativamente ao seu poder de expressão de linguagem E.E.S Ruiz (DCM USP) LFA 25 / 27

Determinismo e não-determinismo Determinísmo e não determinismo Um autômato com pilha é equivalente a uma LLC relativamente ao seu poder de expressão de linguagem Somente os autômatos com pilha não determinísticos podem definir todas as LLC E.E.S Ruiz (DCM USP) LFA 25 / 27

Determinismo e não-determinismo Determinísmo e não determinismo Um autômato com pilha é equivalente a uma LLC relativamente ao seu poder de expressão de linguagem Somente os autômatos com pilha não determinísticos podem definir todas as LLC Os analisadores sintáticos (parsers) são versões determinísticas de autômatos com pilha A maioria das LP têm autômatos com pilha como parsers E.E.S Ruiz (DCM USP) LFA 25 / 27

Determinismo e não-determinismo Autômatos determinísticos com pilha Para ser determinístico, um autômato deve ter somente uma escolha para um dado estado Ou seja, uma única opção de função programa δ(q, a, X ) para um estado q, a símbolo lido, X símbolo do topo da pilha Além disso, não deve existir uma escolha entre entrar com ɛ ou outro símbolo Formalmente, quando há mais de um elemento para δ(q, a, X ) a transição é dita não determinística E.E.S Ruiz (DCM USP) LFA 26 / 27

Determinismo e não-determinismo Autômatos determinísticos com pilha Para ser determinístico, um autômato deve ter somente uma escolha para um dado estado Ou seja, uma única opção de função programa δ(q, a, X ) para um estado q, a símbolo lido, X símbolo do topo da pilha Além disso, não deve existir uma escolha entre entrar com ɛ ou outro símbolo Formalmente, quando há mais de um elemento para δ(q, a, X ) a transição é dita não determinística Atenção! Os dois modos, determinístico e não determinístico, não são equivalente. Os AP não determinísticos reconhecem apenas um subconjunto das LLC. E.E.S Ruiz (DCM USP) LFA 26 / 27

Determinismo e não-determinismo Finalizando... Caros estudantes, Leiam os livros texto e façam os exercícios sugeridos. E.E.S Ruiz (DCM USP) LFA 27 / 27