Automatocom Pilha Pushdown Automaton
|
|
|
- Júlio César Meneses de Abreu
- 8 Há anos
- Visualizações:
Transcrição
1 Automatocom Pilha Pushdown Automaton 1
2 Algoritmos Recursivos e Pilhas Princípio Geral em Computação: Qualquer algoritmo recursivo pode ser transformado em um não-recursivousando-se umapilhae um while-loop, que termina apenas quando a pilha está vazia. EX: JVM mantémosregistrosde ativaçãode cada chamada de método. Considere: long factorial(int n){ if (n<=0) return 1; return n*factorial(n-1); } Como JVM executa factorial(5)? 2
3 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); Compute 5! 3
4 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); f(5)= 5 f(4) 4
5 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); f(4)= 4 f(3) f(5)= 5 f(4) 5
6 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); f(3)= 3 f(2) f(4)= 4 f(3) f(5)= 5 f(4) 6
7 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); f(2)= 2 f(1) f(3)= 3 f(2) f(4)= 4 f(3) f(5)= 5 f(4) 7
8 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); f(1)= 1 f(0) f(2)= 2 f(1) f(3)= 3 f(2) f(4)= 4 f(3) f(5)= 5 f(4) 8
9 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); f(0)= 1 f(1)= 1 f(0) f(2)= 2 f(1) f(3)= 3 f(2) f(4)= 4 f(3) f(5)= 5 f(4) 9
10 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); 1 1= 1 f(2)= 2 f(1) f(3)= 3 f(2) f(4)= 4 f(3) f(5)= 5 f(4) 10
11 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); 2 1= 2 f(3)= 3 f(2) f(4)= 4 f(3) f(5)= 5 f(4) 11
12 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); 3 2= 6 f(4)= 4 f(3) f(5)= 5 f(4) 12
13 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); 4 6= 24 f(5)= 5 f(4) 13
14 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); 5 24=
15 Algoritmos Recursivos e Pilhas long factorial(int n){ } if (n<=0) return 1; return n*factorial(n-1); Return 5! =
16 De CFG s paraautômatoscom Pilha CFG s definem procedimentos recursivos: boolean derives(strings x, y) 1. if (x==y) return true 2. for(all u y) if derives(x,u) return true 3. return false EX: S # asa bsb 16
17 De CFG s para Máquinas de Pilha Por princípios gerais, qualquer computação recursiva pode ser executada usando-se uma pilha. Isso pode ser feito em uma versão simplificada de máquina com pilha de registro de ativação, chamada Autômato de Pilha ( Pushdown Automaton PDA) Q: Qual é a linguagem gerada por S # asa bsb? 17
18 De CFG s para Máquinas de Pilha R: Palíndromos em {a,b,#}* contendo exatamente um símbolo #. Q: Usando uma pilha, como podemos reconhecer tais strings? 18
19 De CFG s para Máquinas de Pilha A: Usamos um processo com três fases: 1. modo Push : Antes de ler #, emplihe qualquer símbolo lido. 2. Ao ler # troque de modo de operação. 3. modo Pop : Leia os símbolos restantes garantindo que cada novo símbolo lido é idêntico ao símbolo desempilhado. Aceite se for capaz de concluir com a pilha vazia. Caso contrário, rejeite; e rejeite se não for possível desempilhar em algum caso. 19
20 De CFG s para Máquinas de Pilha read ==a ou b? Push it read == top? Pop else: CRASH! (1) PUSH (2) read == #? (ignore stack) (3) POP empty stack? ACCEPT 20
21 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baa 21
22 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baa a 22
23 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baa a a 23
24 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baa a a a 24
25 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baa b a a a 25
26 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baa b a a a 26
27 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baa a a a 27
28 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baa a a 28
29 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baa a REJECT (nonempty stack) 29
30 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baaa a a 30
31 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baaa a 31
32 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baaa Pause input 32
33 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baaa ACCEPT 33
34 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baaaa a a 34
35 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baaaa a 35
36 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baaaa Pause input 36
37 De CFG s para Máquinas de Pilha read a or b? Push it read == peek? Pop Else: CRASH! (1) PUSH (2) read #? (ignore stack) (3) POP empty stack? ACCEPT aaab#baaaa CRASH 37
38 PDA s àla Sipser Para facilitar a análise, máquinas de pilha teóricas têm um conjuntorestritode operações. Cadalivro-author tem sua própria versão. PDAs descritos em Sipser são assim: Push/Pop agrupadosemúnicaoperação: substituiro símbolono topoda pilha Nenhum teste intrínsico de pilha vazia Epsilon é usadoparaaumentara funcionalidade: máquinas não deterministas. 38
39 Torna-se: read a or b? Push it Versão Sipser s (1) PUSH (2) read #? (ignore stack) a, ε a b, ε b read == peek? Pop Else: CRASH! (3) POP a, a ε b, b ε empty stack? ACCEPT ε, ε $ #, ε ε ε, $ ε 39
40 Versão Sipser s p x, y z q Significado da convenção do rótulo: Se está no estado p eo próximo símbolo é x e o topo da pilha é y, então vá para q e substitua ypor z na pilha. x = ε: ignore a entrada, não leia y = ε: ignore o topo da pilha e empilhe z z = ε: desempilhe y 40
41 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ #, ε ε ε, $ ε push $ para detectar pilha vazia 41
42 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ #, ε ε ε, $ ε aaab#baaa 42
43 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ aaab#baaa #, ε ε ε, $ ε $ 43
44 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ aaab#baaa #, ε ε ε, $ ε a $ 44
45 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ aaab#baaa #, ε ε ε, $ ε a a $ 45
46 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ aaab#baaa #, ε ε ε, $ ε a a a $ 46
47 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ aaab#baaa #, ε ε ε, $ ε b a a a $ 47
48 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ aaab#baaa #, ε ε ε, $ ε b a a a $ 48
49 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ aaab#baaa #, ε ε ε, $ ε a a a $ 49
50 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ aaab#baaa #, ε ε ε, $ ε a a $ 50
51 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ aaab#baaa #, ε ε ε, $ ε a $ 51
52 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ aaab#baaa #, ε ε ε, $ ε $ 52
53 Versão Sipser s a, ε a b, ε b a, a ε b, b ε ε, ε $ aaab#baaa #, ε ε ε, $ ε ACCEPT! 53
54 PDA Definição Formal DEF: Um autômatode pilha(pda) é uma6- tupla M = (Q, Σ, Γ, δ, q 0, F ) ondeq, Σe q 0, são comoparaum AF. Γ é o alpfabetoda pilha. δé uma função: δ : Q Σ Γ P ( Q Γ ε ε Portanto, dado um estadop,umasímbololido x e um símbolode pilhay, δ(p,x,y) retornatodo (q,z) talqueq é um estadoalvoe z é um símboloque deve substituir y. ε ) 54
55 PDA Definição Formal a, ε ε a, ε a b, ε b a, a ε b, b ε ε, ε $ b, ε $ ε, $ ε Q: O que é δ(p,x,y) em cada caso? 1. δ(0,a,b) 2. δ(0,ε,ε) 3. δ(1,a,ε) 4. δ(3,ε,ε) 3 55
56 PDA Definição Formal a, ε ε a, ε a b, ε b a, a ε b, b ε ε, ε $ b, ε $ ε, $ ε R: 1. δ(0,a,b) = 2. δ(0,ε,ε) = {(1,$)} 3. δ(1,a,ε) = {(0,ε),(1,a)} 4. δ(3,ε,ε) = 3 56
57 PDA -Exercício Forneça PDA spara reconhecer as seguintes linguagens: {a n b n n ℵ} {a n b 2n n ℵ} {a 2n b n n ℵ} {a i b j c k i = j ou i=k} {w w R w {0,1}* } {w {0,1} * o número de 0 s é igual ao de 1 s }
Linguagens Livres de Contexto
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
Universidade Federal de Alfenas
Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 13 Autômato com Pilha [email protected] Última aula Linguagens Livres do Contexto P(S*) Recursivamente enumeráveis Recursivas
Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz
Autômato com pilha IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz [email protected] Departmento de Computação e Matemática FFCLRP Universidade de São Paulo E.E.S Ruiz (DCM USP)
Pilha. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira
Pilha SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Pilha O que é? Para que serve? 2 Problema: chamada de sub-rotinas Rotina A 1 print A 2 call C 3 call B 4 call D 5 return Rotina B 1 call
Linguagens Livres do Contexto. Adaptado de H. Brandão
Linguagens Livres do Contexto Adaptado de H. Brandão Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres do Contexto; Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres
Equivalênciaentre PDA e CFG
Equivalênciaentre PDA e CFG CFG PDA Gramáticas Lineares à direita podem ser convertidasparanfa s. Emgeral, CFG s podemserconvertidasparapda s. Em NFA REX foiútilconsiderargnfa s comoestágiointermediário.
08/08/2011. Pilha. SCC0202 Algoritmos e Estruturas de Dados I. Prof. Thiago A. S. Pardo. Pilha. O que é? Para que serve?
Pilha SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Pilha O que é? Para que serve? 2 1 Rotina A 1 print A 2 call C 3 call B 4 call D Rotina B 1 call C 2 print B 3 call D 4 call C
Teoria da Computação
Ciência da Computação Teoria da Computação (ENG10395) Profa. Juliana Pinheiro Campos E-mail: [email protected] Máquinas Universais Máquinas Universais podem ser entendidas de duas formas: Se é capaz
Máquinas de Turing - Computabilidade
BCC244-Teoria da Computação Prof. Lucília Figueiredo Lista de Exercícios 03 DECOM ICEB - UFOP Máquinas de Turing - Computabilidade 1. Seja L uma linguagem não livre de contexto. Mostre que: (a) Se X uma
Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios
Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios 1. Escreva a expressão regular para as seguintes linguagens sobre o alfabeto {0, 1}: strings começando
SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)
SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{
Aula 9: Máquinas de Turing
Teoria da Computação Aula 9: Máquinas de Turing DAINF-UTFPR Prof. Ricardo Dutra da Silva Uma máquina de Turing é uma máquina de estados finitos que pode mover o cabeçote em qualquer direção, ler e manipular
Autômatos de Pilha (AP)
Linguagens Formais e Autômatos Autômatos de Pilha (AP) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (h@p://dcc.ufmg.br/~nvieira) Sumário Introdução Autômatos de pilha
Estados Equivalentes. Exemplo R: Sim, b e f. Note que se estamos em b ou f então:
Minimização de AFD Estados Equivalentes. Exemplo Considere os estados de aceitação c e g. Eles são ambos estados que, uma vez atingidos, nunca se sai deles, desde que se leia 0 ou 1. Q: Precisamos desses
UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Linguagens Formais e Autômatos (LFA)
INF1626 Linguagens Formais e Autômatos (2013- Linguagens Formais e Autômatos (LFA) Aula de 30/10/2013 Autômatos de Pilha Modelo Conceitual; JFLAP Modelos de Implementação: Ruby Clarisse S. de Souza, 2013
Aula 7: Autômatos com Pilha
Teoria da Computação Segundo Semestre, 2014 Aula 7: Autômatos com Pilha DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos adicionar um memória do tipo pilha ao nossos autômatos para que seja possível aceitar
Teoria da Computação. Máquinas Universais Máquina com Pilhas
Máquinas Universais Máquina com Pilhas Cristiano Lehrer Introdução A Máquina com Pilhas diferencia-se das Máquinas de Turing e de Post principalmente pelo fato de possuir uma memória de entrada separada
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
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 1 ACP Assim como LR tem um autômato equivalente (AF) as LLC tem também
Folha 4.1 Análise sintática descendente
1. Dada a seguinte gramática G = (Σ, T, P, S), onde : Σ = { S, A, B } T = { a, b, c } S a b A c A A a S b S c B B a B b S b) Verifique que G é do tipo LL(1). c) Construa a tabela sintática predicativa
Avaliação de expressões. Prof: Sérgio Souza Costa
Avaliação de expressões Prof: Sérgio Souza Costa Avaliação de expressões Como efetuar o cálculo de uma expressão em um computador? A / B * (D + C) Avaliação de expressões - Notações Avaliação de expressões
Análise Sintática Bottom-up
MAB 471 2011.2 Análise Sintática Bottom-up http://www.dcc.ufrj.br/~fabiom/comp Recapitulando parsers top-down Constróem árvore sintática da raiz até as folhas Recursão à esquerda faz parsers entrarem em
Compiladores - Autômatos
Compiladores - Autômatos Fabio Mascarenhas 2015.1 http://www.dcc.ufrj.br/~fabiom/comp Especificação x Implementação Usamos expressões regulares para dar a especificação léxica da linguagem Mas como podemos
Modelos de Computação Folha de trabalho n. 10
Modelos de Computação Folha de trabalho n. 10 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada
Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)
Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto [email protected]
Aula 5 e 6 Pilhas e suas Aplicações. prof Leticia Winkler
Aula 5 e 6 Pilhas e suas Aplicações prof Leticia Winkler 1 Definição de Pilha (Stack) São estruturas de dados do tipo LIFO (last-in first-out) - o último elemento a ser inserido, será o primeiro a ser
Estruturas de Dados Encadeadas
CURSO: Ciência da Computação DATA: / / 2016 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 14 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir conceitos
SCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Sequencial Estática e Encadeada Dinâmica 17 e 19/8/2010 Exercício: Implementação da pilha sequencial e estática Declaração em C escondendo a ED do
Draft-v0.1. Máquinas de Turing Máquinas de Turing
13 Máquinas de Turing A necessidade de formalizar os processos algorítmicos levou, nas décadas 20 e 30 do século XX, a diversos estudos, entre os quais os de Post, Church e Turing, com vista a estudo formal
Propriedades de Fecho de Linguagens Regulares.
Propriedades de Fecho de Linguagens Regulares. Gerando Linguagens Regulares Recorde a seguinte teorema: THM: Linguagens regulares são aquelas que podem ser geradas a partir de linguagens finitas pela aplicação
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto [email protected]
SCC Algoritmos e Estruturas de Dados I
SCC 202 - Algoritmos e Estruturas de Dados I TAD Pilha Lembrem...TADs são tipos definidos em termos de seu comportamento e não de sua representação (que pode variar na busca de eficiência) 12/8/2010 Pilha
Análise sintática. Análise sintática. Top-down ou descendente. Com retrocesso: por tentativa e erro. Preditiva: para gramáticas LL(1) 09/04/2012
Análise sintática Função, interação com o compilador Análise descendente e ascendente Especificação e reconhecimento de cadeias de tokens válidas Implementação Tratamento de erros Prof. Thiago A. S. Pardo
Estruturas de Dados Aula 11: TAD Pilha
Estruturas de Dados Aula 11: TAD Pilha Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 10; Estruturas
Algoritmos e Estrutura de Dados Aula 08 Pilhas
Algoritmos e Estrutura de Dados Aula 08 Pilhas Profa. Alana Oliveira e Prof. Davi Viana [email protected] e [email protected] Se não entender, pergunte! Dados e Tipos de Dados Um dado é uma informação
Estruturas de Dados Pilhas, Filas, Listas
Estruturas de Dados Pilhas, Filas, Listas Fabio Gagliardi Cozman Thiago Martins PMR3201 Escola Politécnica da Universidade de São Paulo Estruturas de Dados Pilhas, Filas, Listas Introdução Estruturas de
Autômatos com Pilha. Douglas O. Cardoso docardoso.github.io
Autômatos com Pilha [email protected] docardoso.github.io Autômatos com Pilha 1/18 Roteiro 1 Autômatos com Pilha 2 APDs 3 APNs Autômatos com Pilha 2/18 Roteiro 1 Autômatos com Pilha 2 APDs 3
Pilhas Filas e Listas
Pilhas Filas e Listas Sumário Pilha: interface, aplicações e implementação Fila: interface, aplicações e implementação Lista Ligada: interface, aplicações e implementação Pilha Estrutura LIFO (last in,
Pilhas e Filas Encadeadas. Algoritmos e Estruturas de Dados I
Pilhas e Filas Encadeadas Algoritmos e Estruturas de Dados I Pilha Lista linear: pilha Represente graficamente o funcionamento da pilha, representando a pilha vazia, a entrada e a saída de elementos Quais
Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
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.
Autómatos de Pilha Um autómato de pilha (não determinístico) (AP) é um autómato finito não determinístico com transições ɛ, acrescido de uma memória infinita a pilha mas em que o modo de acesso à informação
Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07
Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07 Ficha 3 Autómatos Finitos Objectivos: Introdução ao conceito de Autómato Finito e notações utilizadas na sua representação;
BCC242. Auômato Finito Determinístico
BCC242 Auômato Finito Determinístico Máquinas de Estados Finitos As máquinas de estados finitos são máquinas abstratas que capturam partes essenciais de algumas máquinas concretas. Tipos Tradutores máquinas
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferentes computadores podem ter diferentes arquiteturas e os diversos tipos de linguagem de programação.
Pilha. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof. Gustavo Batista
Pilha SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências
Linguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens
Teoria da Computação. Expressões Regulares e Autômatos Finitos. Thiago Alves
Teoria da Computação Expressões Regulares e Autômatos Finitos Thiago Alves 1 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens que
Compiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 31. Instituto de C
ompiladores Análise Léxica Bruno Lopes Bruno Lopes ompiladores 1 / 31 Front-end Lida com a linguagem de entrada Teste de pertinência: código fonte linguagem fonte? Programa está bem formado? Sintaticamente?
COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise sintática Parte 05 Prof. [email protected] Data Conteúdo 23/09/2013 3. Análise Sintática: 3.1 analisadores
Linguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas. SCC-502 Algoritmos e Estruturas de Dados I
Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas SCC-502 Algoritmos e Estruturas de Dados I Lista com nó de cabeçalho Nó de cabeçalho Header, sentinela, etc. Para que? Sentinela Beth
Pedro Vasconcelos DCC/FCUP. Programação Funcional 5 a Aula Definições recursivas
Programação Funcional 5 a Aula Definições recursivas Pedro Vasconcelos DCC/FCUP 2014 Definições usando outras funções Podemos definir funções usando outras previamente definidas (e.g. do prelúdio-padrão).
A Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria
Engenharia de CONTROLE e AUTOMAÇÃO A Pilha Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria [email protected] 1/5
Máquinas de Turing 1
Máquinas de Turing 1 Alan Turing Alan Turing é um dos pais da Computação. Seu modelo computacional a Máquina de Turing inspirou/anteviu o computador eletrônico, que veio algumas décadas depois. Foi usado
Revisão: Tipo Abstrato de Dados Recursividade
Algoritmos e Estrutura de Dados II Revisão: Tipo Abstrato de Dados Recursividade Prof a Karina Oliveira [email protected] Introdução Estudo das estruturas de dados envolve dois objetivos complementares:
Fundamentos da Programação
Fundamentos da Programação Solução do Primeiro Teste 29 de Março de 2014 09:00 10:30 1. (1.0) O que é um processo computacional? Qual a relação entre um programa e um processo computacional? Um processo
Geração de Código para LALG
Geração de Código para LALG Ambiente de execução para LALG Máquina hipotética Repertório de instruções Prof. Thiago A. S. Pardo 1 Geração de código para LALG Código-alvo será um código de montagem Portanto,
Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19
Arvores, Percursos não recursivos, Arvores heterogêneas Aula 19 Arvores binárias encadeadas Percorrer uma árvore é uma operação muito comum e seria útil encontrar um método mais eficiente para implementar
AULA 05: LINGUAGEM DE MONTAGEM: SUPORTE A PROCEDIMENTOS
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 05: Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação O QUE SÃO PROCEDIMENTOS? Procedimentos são um conjunto
Questão 1 Analise o trecho do código abaixo, escrito na linguagem C#:
Programação para Games I Questão 1 Analise o trecho do código abaixo, escrito na linguagem C#: String[] vetor= { E, A, Z, D, W }; for(int i=4; i
IV Gramáticas Livres de Contexto
IV Gramáticas Livres de Contexto Introdução Definições de GLC 1 G = (Vn, Vt, P, S) onde P = {A α A Vn α (Vn Vt) + } 2 GLC ε - LIVRE : S ε pode pertencer a P, desde que: S seja o símbolo inicial de G S
Compiladores Ambiente de Execução
Compiladores Ambiente de Execução Fabio Mascarenhas 2015.2 http://www.dcc.ufrj.br/~fabiom/comp O Back-end Até agora vimos as fases do front-end do compilador: Análise Léxica Análise Sintática Análise Semântica
PCS Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 5: Encapsulamento e Tipo Abstrato de Dados
PCS 3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 5: Encapsulamento e Tipo Abstrato de Dados Escola Politécnica da Universidade de São Paulo Agenda Questões Típicas
AFNs, Operações Regulares e Expressões Regulares
AFNs, Operações Regulares e Expressões Regulares AFNs. OperaçõesRegulares. Esquematicamente. O circulo vermelho representa o estado inicial q 0, a porção verde representa o conjunto de estados de aceitação
Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias
SCC 124 - Introdução à Programação para Engenharias Comandos Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes 1 Aula de
Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador
Estrutura de um compilador programa fonte Compiladores Análise lexical () Expressões Regulares analisador léxico analisador sintático analisador semântico análise gerador de código intermediário otimizador
Compiladores - Análise Ascendente
Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,
Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;
1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e
Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ [email protected] Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
BCC244. Alfabeto, String, Linguagem, Gramática. Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste materal.
BCC244 Alfabeto, String, Linguagem, Gramática Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste materal. Exemplo: Máquina de Venda A máquina de venda retorna uma cocacola
Compiladores - Análise Ascendente
Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,
Autômatos com Pilha: Reconhecedores de LLCs
Autômatos com Pilha: Reconhecedores de LLCs 1 Autômatos com Pilha (AP) Definições alternativas para Linguagens Livres de Contexto Extensão de AFND com uma pilha, que pode ser lida, aumentada e diminuída
Linguagens de Programação Aula 14
Linguagens de Programação Aula 14 Celso Olivete Júnior [email protected] Na aula passada Linguagem Haskell Funções Tipos básicos Expressões 2 Na aula de hoje Linguagem Haskell Listas 3 Listas e Tuplas
Linguagens Livres-do-Contexto
Linguagens Livres-do-Contexto Mário S. Alvim ([email protected]) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim ([email protected]) Linguagens Livres-do-Contexto DCC-UFMG
Lista de exercícios 1
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO DE CIÊNCIAS AGRÁRIAS CCA/ UFES Departamento de Engenharia Rural Lista de exercícios 1 Disciplina: Linguagens Formais e Autômatos Professora: Juliana Pinheiro
Organização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Linguagem de Montagem Slide 1 Operações Lógicas Embora os primeiros computadores se concentrassem em words completas, logo ficou claro que era útil atuar sobre
Exemplos. Alocação Dinâmica de Pilhas. Pilhas. Pilhas. Implementação Seqüencial X Encadeada. SCE 182 Algoritmos e Estruturas de Dados I
SCE 182 Algoritmos e Estruturas de Dados I Uma pilha é uma lista linear em que a inserção ou eliminação de elementos somente pode ocorrer em uma das extremidades, que é chamada de TOPO da PILHA. D C B
