Equivalênciaentre PDA e CFG
|
|
|
- Cláudia Flores Silva
- 7 Há anos
- Visualizações:
Transcrição
1 Equivalênciaentre PDA e CFG
2 CFG PDA Gramáticas Lineares à direita podem ser convertidasparanfa s. Emgeral, CFG s podemserconvertidasparapda s. Em NFA REX foiútilconsiderargnfa s comoestágiointermediário. De modosimilar, seráútilconsideraraquipda s Generalizados.
3 PDA s Generalizados Um PDA Generalizado (GPDA) é como um PDA, exceto que permite substituir o topo da pilha por um string, e não apenas um caractere ou o string vazio. É fácil converter um GPDA para um PDA: basta substituir cada push de um string por uma sequência de push s simples.
4 CFG PDA Converta a gramática S ε a b asa bsb emum PDA. A idéiaé simularas derivações gramaticaiscom o PDA.
5 CFG PDA Comece com três estados para o GPDA: S ε a b asa bsb
6 CFG PDA A primeira transição empilha S$ de modo que se possa testar pilha vazia ($), e também iniciar a simulação (S). S ε a b asa bsb
7 CFG PDA Possibilite reading/popping de terminais de modo que se possa ler qualquer string de terminais gerado. S ε a b asa bsb
8 CFG PDA Simule todas as productions adicionando transições sem leitura. S ε a b asa bsb
9 CFG PDA Pop $ para aceitar quando a pilha está vazia (não deve haver mais nenhuma variável e todos os terminais devem ser lidos). S ε a b asa bsb
10 CFG PDA Converta o GPDA em um PDA usual, dividindo push s compostos. S ε a b asa bsb
11 CFG PDA S ε a b asa bsb bbaabb
12 CFG PDA S ε a b asa bsb bbaabb $
13 CFG PDA S ε a b asa bsb bbaabb S $
14 CFG PDA S ε a b asa bsb bbaabb b $
15 CFG PDA S ε a b asa bsb bbaabb S b $
16 CFG PDA S ε a b asa bsb bbaabb b S b $
17 CFG PDA S ε a b asa bsb bbaabb S b $
18 CFG PDA S ε a b asa bsb bbaabb b b $
19 CFG PDA S ε a b asa bsb bbaabb S b b $
20 CFG PDA S ε a b asa bsb bbaabb b S b b $
21 CFG PDA S ε a b asa bsb bbaabb S b b $
22 CFG PDA S ε a b asa bsb bbaabb a b b $
23 CFG PDA S ε a b asa bsb bbaabb S a b b $
24 CFG PDA S ε a b asa bsb bbaabb a S a b b $
25 CFG PDA S ε a b asa bsb bbaabb S a b b $
26 CFG PDA S ε a b asa bsb bbaabb a b b $
27 CFG PDA S ε a b asa bsb bbaabb b b $
28 CFG PDA S ε a b asa bsb bbaabb b $
29 CFG PDA S ε a b asa bsb bbaabb $
30 CFG PDA S ε a b asa bsb bbaabb aceita!
31 CFG PDA Intuitivamente, toda derivação mais à esquerda pode ser simuladaemum PDA comoa seguir: 1. EmpilheS 2. Mudea variávelno topoda pilhade acordocom a próxima regraa serusada 3. Leia a entradaparaobtero terminal queestiverno topoda pilha 4. Se a pilhaestivervaziaaolertodaa entrada, aceite. Senão, volte aono. 2 Por outro lado, toda computação c/ aceitação necessariamentepassapelospassosacimae, portanto simula derivação mais à esq. em G. Isso mostra que o PDA construído aceita a linguagem gerada pela gramática original.
32 Exercício Forneça PDA s para as CFG s das linguagens a seguir: {a i b j c k i=j ou j=k} Forneça PDA s para as CFG s: a) E E + T T T T * F F F ( E ) a b) R X R X S S a T b b T a T X T X X ε X a b
33 Gramática Sensível ao Contexto Existeumaforma aindamaisgeralde gramática. Emuma gramática não livre de contexto, em geral todo substring de variáveis/terminais pode ser substituído de umavez. Porexemplo, sendo Σ= {a,b,c} considere: S ε ASBC A a CB BC ab ab bb bb bc bc cc cc Porrazõestécnicas, se todaregraé talqueo tamanhodo ladoesquerdoda regraé menorouigualaodo lado direito, a gramática é chamada sensível ao contexto.
34 Exercício Qual é a linguagem gerada por: S ε ASBC A a CB BC ab ab bb bb bc bc cc cc
35 Exercício Resposta: {a n b n c n }. Na próxima aula veremos que essa linguagem não é livre de contexto. Portanto, perturbar a propriedade de independência de contexto possibilita expandir a classe de linguagens.
36 PDA CFG Para convertes PDA s para CFG s vamos precisar simular a pilha dentro de regras. Portanto, quanto mais simples as operações de pilha, mais fácil deverá ser isso. Além disso, outras restrições podem ser úteis. Portanto, vamos primeiro converter nosso PDA em um PDA tão simples quanto possível:
37 PPP CFG Hipótese Simplificadora 1. Hipótese PPP : A pilha apenas permite Pushs e Pops simples. 2. Um único estado de aceitação. 3. Pilha Vazia: Um string é aceito sse sua computação termina no estado de aceitação com a pilha vazia. Vamos converter um exemplo típico nessa forma:
38 Simplificando o PDA Original ε, ε $ a, X Y a, ε ε b, ε X ε, $ ε
39 Simplificando o PDA 1. Push Pop Puro 1A) Garanta que a pilha está sempre ativa substituindo transição com pilha inativapor um push seguido imediatamente de um pop de um símbolo dummy. ε, ε $ a, X Y a, ε ε b, ε X ε, $ ε
40 Simplificando o PDA 1. Push Pop Puro 1A) Garanta que a pilha está sempre ativa substituindo transição com pilha inactive por um push seguido imediatamente de um pop de um novo símbolo dummy. ε, ε $ a, X Y ε,d ε a, ε D b, ε X ε, $ ε
41 Simplificando o PDA 1. Push Pop Puro 1B) Toda transição que substitui o topoda pilha deve ser convertido em um pop seguido de push. ε, ε $ a, X Y ε,d ε a, ε D b, ε X ε, $ ε
42 Simplificando o PDA 1. Pure Push Pop 1B) Toda transição que substitui o topoda pilha deve ser convertido em um pop seguido de push. a, X ε ε, ε Y ε,d ε ε, ε $ a, ε D b, ε X ε, $ ε
43 Simplificando o PDA 2. Estado de Aceitação Único Desligue os estados de aceitação originais e conecte-os a um novo estado de aceitação (não esquecendo que a pilha não pode ser ignorada). a, X ε ε, ε Y ε,d ε ε, ε $ a, ε D b, ε X ε, $ ε
44 Simplificando o PDA 2. Estado de Aceitação Único Desligue os estados de aceitação originais e conecte-os a um novo estado de aceitação (não esquecendo que a pilha não pode ser ignorada). ε,d ε ε, ε Y a, X ε ε,d ε a, ε D ε,ε D ε, ε $ b, ε X ε, $ ε
45 Simplificando o PDA 3. Pilha Vazia Garanta que o conteúdo da pilha é esvaziado, adicionando um novo símbolo dummy marcador de pilha vazia e novos estados inicial/aceitação. ε,d ε ε, ε Y a, X ε ε,d ε a, ε D ε,ε D ε, ε $ b, ε X ε, $ ε
46 Simplificando o PDA 3. Pilha Vazia Garanta que o conteúdo da pilha é esvaziado, adicionando um novo símbolo dummy marcador de pilha vazia e novos estados inicial/aceitação. ε, ε ε,ε D ε, ε ε, ε Y a, X ε ε,d ε ε,$ ε ε,x ε ε,y ε ε,d ε a, ε D ε,d ε ε,ε D ε, ε $ b, ε X ε, $ ε
47 Simplificando o PDA Resultado ε, ε ε,ε D ε, ε ε, ε Y a, X ε ε,d ε ε,$ ε ε,x ε ε,y ε ε,d ε a, ε D ε,d ε ε,ε D ε, ε $ b, ε X ε, $ ε
48 PDA CFG Uma vez que o PDA seja convertido nessa forma mais restrita, podemos convertê-lo em uma CFG por meio de um procedimento padrão. Agora que caminhos de aceitação começam e terminam com a pilha vazia, é possível considerar caminhos desse tipo entre quaisquer dois estados e recursivamente gerar todos esses caminhos. Essa relação recursiva entre caminhos dará origem à recursão que é característica de gramáticas livres de contexto.
49 PDA CFG Recursão sobre Caminhos Notação: dados dois estados q,r do PDA, e um string x do dado alfabeto de entrada, a notação q-x r significa que é possível ir deqpara r lendo a entrada x, começando e terminando com pilha vazia: q input x r a a a $ Q: Expresse aceitação em termos dessa notação.
50 PDA CFG Recursão sobre Caminhos R: Para nosso PDA restrito, com estado de aceitação único q F, um string xé aceito sse q 0 -x q F Portanto, todos os strings aceitos são gerados se podemos gerar todas as triples que satisfazem q-x r. Isso é feito de modo recursivo sobre o comprimento do caminho: 1. Regra-Base: Podemos sempre considerar que o string vazio leva de qpara qsem modificar a pilha, já que nada é lido: q-ε q
51 PDA CFG Recursão sobre Caminhos 2. Regra de Recursão Transitive: Se podemos ir de q para rsem afetar a pilha, assim como de rpara s, então podemos combinar os caminhos para obter um caminho de qpara r. I.e: q-x r er-y s implica q-xy s x y q r s xy
52 PDA CFG Recursão sobre Caminhos 3. Regrade RecursãoPush-Pop: Se podemosirde q parar semafetara pilha, e empilhamosum símbolox indo de p paraq, o qualé desempilhadoaoirde rparas, então vamosde pparassobrepilhavazia: q-x r e (q,x) δ(p, a, ε)e (s, ε) δ(r,b,x) implica p- axb s X x X q r p a, ε X b, X ε s axb
53 PDA CFG Recursão sobre Caminhos LEMA: Toda tripla q-x r deve poder ser gerada indutivamente por uma das regras (1), (2) ou (3). Prova. Por indução sobre o comprimento ndo caminho q-x r. Caso Base (n = 0): xé o string vazio e tais camihos são gerados pela regra (1). Indução (n > 0): Siga o caminho, iniciando com pilha vazia. Existem 2 possíveis situações: I. A pilha é esvaziada em algum ponto intermediário. II. A pilha nunca fica vazia antes do final.
54 PDA CFG Recursão sobre Caminhos Caso I. Em algum ponto intermediário, digamos estado s, a pilha é esvaziada. Então divida o caminho em 2 partes, cada qual com sua parte do string de entrada, e cada um começando e terminando com a pilha vazia. I.e. divida x como x= uvtal que q-u s e s-v r. Então aplique a regra (2).
55 PDA CFG Recursão sobre Caminhos CasoII. A pilhanãoficavaziaemnenhumestado intermediário. Portanto, a primeira transição faz push (nenhumpop) de um símbolo X que apenasé desempilhadonaúltimatransição. Sejaso estadodestinoda primeiratransição, e t o estado origem da última transição. Então podemosirde sparatsob pilhavazia, lendo algumstring u. Alémdisso, (s,x) δ(p,a,ε), (r,ε) δ(t,b,x) e x = aub. Essaé exatamentea situaçãoà quala regra(3) se aplica. Issocompletaa prova.
56 PDA CFG A Gramática As três regras para gerar todos os caminhos nos dão uma gramática para gerar todos os rótulos desses caminhos. A gramática terávariáveisescritascomoa qr a qualirá gerartodososstrings x paraosquaisqx r. Q: Supondoisso, qualdevesera variável inicial?
57 PDA CFG A Gramática Símbolos R: S = A q 0qF Isso porque são aceitos exatamente os strings x para os quais vale q 0 -x q F. Além dessa variável inicial, as outras variáveis em Vsão todos os A qr para os quais existe um caminho de qpararque começa e termina com pilha vazia. 1 O conjunto de símbolos terminais Σé o alfabeto de entrada do PDA.
58 PDA CFG A Gramática Regras As regras são exatamente (1), (2) e (3): 1. Inclua uma regra A qq ε para cada estado q do PDA. 2. Inclua uma regra A pr A pq A qr para cada tripla p,q,r tais que A pr,a pq e A qr estão em V. 3. Inclua uma regra A ps aa qr b para cada p,s,q,r tais que A ps e A qr estão em V, e existem no PDA transições (q,x) δ(p,a,ε), e (s,ε) δ(r,b,x) para um mesmo símbolo de pilha X.
59 PDA CFG O PDA abaixo já está na forma correta (a forma restrita PPP) : (, ε X ), X ε q ε, ε $ r ε, $ ε s Q: Qual é a linguagem aceita?
60 PDA CFG R: BP = parenteses balanceados. O número de X s na pilha relete o nível corrente de aninhamento de parenteses q ε, ε $ (, ε X ), X ε Q: Quais são as variáveis da gramática equivalente? Qual é a variável inicial? r ε, $ ε s
61 PDA CFG R: V = {A qs, A qq, A rr, A ss }, S = A qs Não precisamos de A rq, A sq, A sr : direção errada. Não precisamos de A qr oua rs porque não se pode empilhar ou desempilhar $ estando em r. q ε, ε $ (, ε X ), X ε Q: Que produções obtemos da regra (1)? r ε, $ ε s
62 PDA CFG R: A qq ε, A rr ε, A ss ε (, ε X ), X ε q ε, ε $ r ε, $ ε s Q: Que produções obtemos da regra (2)?
63 PDA CFG A: A qs A qq A qs A qs A ss A qq A qq A qq A rr A rr A rr A ss A ss A ss (, ε X ), X ε q ε, ε $ r ε, $ ε s Q: Que produções obtemos da regra (3)?
64 A: A qs A rr, A rr (A rr ) Portanto a gramática é: 1 PDA CFG A qs A rr A qq A qs A qs A ss A rr ε A rr A rr (A rr ) A qq ε A qq A qq A ss ε A ss A ss (, ε X ), X ε q ε, ε $ r ε, $ ε s Q: Alguma simplificação óbvia?
65 PDA CFG A: AparentementeA qq ea ss sãopuramente autoreferenciaveis, portantoa únicamaneirade concluir uma derivação em que ocorram seria apagá-las. Entãopodemosremover A qq,a ss desde que sejam substituídas por ε: A qs A rr A qq A qs A qs A ss A rr ε A rr A rr (A rr ) A qq ε A qq A qq A ss ε A ss A ss Torna-se: A qs A rr A qs A rr ε A rr A rr (A rr )
66 A qs A rr A qs A rr ε A rr A rr (A rr ) PDA CFG Renomeiras variáveisparaobter: S T S T ε TT (T ) Respostafinal (Snãoé necessário, poiso seupapel é apenasgerart ): T ε TT (T )
67 Exercício Converta para CFG sos PDA sdas seguintes linguagens: {wcw R w {a, b}*} {a n b n n ℵ} {a n b n c m d m n,m ℵ}
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
Automatocom Pilha Pushdown Automaton
Automatocom Pilha Pushdown Automaton 1 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,
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
Expressões Regulares e Gramáticas Regulares
Universidade Católica de Pelotas Escola de informática 053212 Linguagens Formais e Autômatos TEXTO 2 Expressões Regulares e Gramáticas Regulares Prof. Luiz A M Palazzo Março de 2007 Definição de Expressão
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 Matemática Discreta para Ciência da Computação - P. Blauth Menezes
Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática
Linguagens Formais Aula 01 - Conceitos Básicos Prof. Othon Batista Mestre em Informática Sumário Introdução à Linguagem Alfabeto Cadeias de Símbolos, Palavras Tamanho de Palavra Prefixo, Sufixo ou Subpalavra
Linguagens Livres de Contexto
Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011
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
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,
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
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
Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.
LFA Aula 02 Linguagens regulares - introdução 28/09/2015 Celso Olivete Júnior [email protected] 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas
Alfabeto, Cadeias, Operações e Linguagens
Linguagens de Programação e Compiladores - Aula 3 1 Alfabeto, Cadeias, Operações e Linguagens 1.Conjuntos Para representar um determinado conjunto é necessário buscar uma notação para representá-lo e ter
Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)
Teoria das Lic. em Ciências da Computação Formais e Autómatos () Carla Mendes Dep. Matemática e Aplicações Universidade do Minho 2010/2011 Teoria das - LCC - 2010/2011 Dep. Matemática e Aplicações - Univ.
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.
Capítulo 7 Autómatos de pilha 7.1. Autómatos de pilha não-determinísticos (NPDA) 7.2. Autómatos de pilha e linguagens livres de contexto 7.3. Autómatos de pilha determinísticos e linguagens livres de contexto
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
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
Linguagens Livres de Contexto
Linguagens Livres de Contexto 1 Conteúdo Programático Introdução Teoria de autômatos Strings e linguagens Gramáticas Algoritmos Linguagens formais Hierarquia de chomsky Linguagens Regulares Autômatos finitos
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
TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO
LICENCIATURA EM CIÊNCIAS DA COMPUTAÇÃO TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO José Carlos Costa Dep. Matemática e Aplicações Universidade do Minho Braga, Portugal 31 de Maio de 2010
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
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
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
Fundamentos da Teoria da Computação
Fundamentos da Teoria da Computação Primeira Lista de Exercícios - Aula sobre dúvidas da lista Sérgio Mariano Dias 1 1 UFMG/ICEx/DCC Entrega da 1 a lista: 31/03/2009 Sérgio Mariano Dias (UFMG) Fundamentos
Linguagens Regulares. Prof. Daniel Oliveira
Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões
INE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto
INE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto baseado em material produzido pelo prof Paulo Bauth Menezes e pelo prof Olinto José Varela
O que é Linguagem Regular. Um teorema sobre linguagens regulares. Uma aplicação do Lema do Bombeamento. Exemplo de uso do lema do bombeamento
O que é Linguagem Regular Um teorema sobre linguagens regulares Linguagem regular Uma linguagem é dita ser uma linguagem regular se existe um autômato finito que a reconhece. Dada uma linguagem L: É possível
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
Apostila 03 - Linguagens Livres de Contexto Exercícios
Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e
Capítulo 1: Alfabetos, cadeias, linguagens
Capítulo 1: Alfabetos, cadeias, linguagens Símbolos e alfabetos. Um alfabeto é, para os nossos fins, um conjunto finito não vazio cujos elementos são chamados de símbolos. Dessa maneira, os conceitos de
Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem
Conceitos Básicos Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto.
a n Sistemas de Estados Finitos AF Determinísticos
a n Sistemas de Estados Finitos AF Determinísticos 1 Relembrando Uma representação finita de uma linguagem L qualquer pode ser: 1. Um conjunto finito de cadeias (se L for finita); 2. Uma expressão de um
LINGUAGENS FORMAIS E AUTÔMATOS
LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.
1 Expressões Regulares e Linguagens
1 1 Expressões Regulares e Linguagens Linguagem de Programação o Pesquisa em Textos o Componentes de Compiladores Intimamente Relacionadas com AFNDs São capazes de definir todas e somente as linguagens
Gramática. Gramática. Gramática
Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática
Capítulo 3: Gramáticas
Capítulo 3: Gramáticas Já vimos que procedimentos podem ser usados para definir linguagens de duas maneiras essenciais: como geradores, procedimentos que enumeram os elementos da linguagem, e como reconhecedores
Máquina de Turing. Controle finito
Máquinas de Turing Máquinas de Turing podem fazer tudo o que um computador real faz. Porém, mesmo uma Máquina de Turing não pode resolver certos problemas. Estes problemas estão além dos limites teóricos
Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais
Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e
INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos
INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: [email protected] URL: www.inf.ufsc.br/~silveira As Linguagens e os formalismos representacionais
Compiladores - Gramáticas
Compiladores - Gramáticas Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Sintática A análise sintática agrupa os tokens em uma árvore sintática de acordo com a estrutura do programa
Matemática Discreta para Ciência da Computação
Matemática Discreta para Ciência da Computação P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação
Definições Exemplos de gramáticas
Definições Exemplos de gramáticas 1 Gramáticas Conceito introduzido pela lingüística Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Fracasso da tradução por volta dos anos
Construção de Compiladores Aula 16 - Análise Sintática
Construção de Compiladores Aula 16 - Análise Sintática Bruno Müller Junior Departamento de Informática UFPR 25 de Setembro de 2014 1 Introdução Hierarquia de Chomsky Reconhecedores Linguagens Livres de
Linguagens livres de contexto e autômatos de pilha
Capítulo 6: Linguagens livres de contexto e autômatos de pilha José Lucas Rangel, maio 1999 6.1 - Introdução. Os aceitadores, ou reconhecedores, das linguagens livres de contexto são os chamados autômatos
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
Compiladores Análise sintática ) Análise ascendente Autômatos Empilhar/Reduzir Lembrando: construir a tabela de análise LL) Como fazer? Re-escrever gramática para satisfazer condições de LL) Calcular conjuntos
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
Hierarquia de Chomsky Exemplos de gramáticas
Hierarquia de Chomsky Exemplos de gramáticas 1 Formalmente, as gramáticas são caracterizadas como quádruplas ordenadas G = ( Vn, Vt, P, S) onde: Vn representa o vocabulário não terminal da gramática. Este
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
Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.
LFA Aula 01 Apresentação 24/10/2016 Celso Olivete Júnior [email protected] 1 Professor Celso Olivete Júnior Bacharelado em Ciência da Computação (Unoeste-2002) Mestrado e Doutorado em Engenharia Elétrica
Linguagens Regulares, Operações Regulares
Linguagens Regulares, Operações Regulares 1 Definição de Linguagem Regular Relembre a definição de linguagem regular: DEF: A linguagem aceita por um AF M é o conjunto de todos os strings que são aceitos
Análise Sintática (Cap. 04) Análise Sintática Descendente
(Cap. 04) Análise Sintática Descendente Análise Sintática Análise sintática descendente Constrói a árvore de derivação de cima para baixo, da raíz para as folhas, criando os nós da árvore em pré ordem
Analisadores Sintáticos LR
FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 7º Periodo Disciplina: Compiladores Prof. Erinaldo Sanches Nascimento Analisadores Sintáticos LR SLR LR Canônicos LALR Analisadores
Linguagens e Autômatos
167657 - Controle para Automação Curso de Graduação em Engenharia de Controle e Automação Departamento de Engenharia Elétrica Universidade de Brasília Linguagens e Autômatos Geovany A. Borges [email protected]
Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.
Pós-Graduação em Ciência da Computação DCC/ICEx/UFMG Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Observações: Pontos
EXPRESSÕES RELACIONAIS
AULA 7 EXPRESSÕES RELACIONAIS 7.1 Operadores relacionais Uma expressão relacional, ou simplesmente relação, é uma comparação entre dois valores de um mesmo tipo. Esses valores são representados na relação
Transformações úteis para GLC: (1) eliminação de produções nulas; (2) eliminação de produções unitárias; (3) Eliminação de símbolos estéreis e
Transformações úteis para GLC: (1) eliminação de produções nulas; (2) eliminação de produções unitárias; (3) Eliminação de símbolos estéreis e inacessíveis; Forma Normal de Chomsky (FNC) e Forma Normal
Análise Sintática. Fabiano Baldo
Compiladores Análise Sintática Fabiano Baldo Gramáticas Livre de Contexto (GLC) É utilizada na especificação formal lda sintaxe de uma linguagem de programação. É um conjunto de produções ou regras gramaticais
Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente
ESIN/UCPel 058814 Linguagens Formais e Autômatos TEXTO 5 Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente Prof. Luiz A M Palazzo Maio de 2007 0. Introdução A Ciência da Computação
Linguagens Formais e Autômatos
Linguagens Formais e Autômatos (notas da primeira aula 1 Definições básicas 1.1 Conjuntos Definição 1. Um conjunto é uma coleção de objetos, denominados elementos. Notação 1. Para indicar que um elemento
Linguagens Formais e Autômatos
Linguagens Formais e Autômatos Conversão de Expressões Regulares (ER) para Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Introdução A construção sistemática de um Autômato Finito para
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
Exemplo preliminar. Considere a linguagem dos Palíndromos Lpal:
a n b n 1 Exemplo preliminar Considere a linguagem dos Palíndromos Lpal: radar, Roma é amor, 0110, 11011,... ou seja, quando w = w r Lpal é regular? usando o Lema do Bombeamento: Suponha Lpal regular,
Eles, possivelmente, servirão posteriormente de ideia para problemas mais difíceis.
Polos Olímpicos de Treinamento Curso de Álgebra - Nível 2 Prof Marcelo Mendes Aula 2 Equações e Sistemas de Equações Neste2o textodeálgebra, veremosdiversosexemplosdeequaçõesesistemasdeequações em nível
Análise Sintática (Cap. 04) Análise Sintática Ascendente Analisador Sintático LR
Análise Sintática (Cap. 04) Análise Sintática Ascendente Analisador Sintático LR Análise Sintática LR Analisadores sintáticos LR(k): L, verificação da entrada da esquerda para direita R, constrói a derivação
Aula 5: Conversões Entre Bases Numéricas
Aula 5: Conversões Entre Bases Numéricas Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Conversões Entre Bases Numéricas FAC 1 / 43 Conversão
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
1 Conjuntos, Números e Demonstrações
1 Conjuntos, Números e Demonstrações Definição 1. Um conjunto é qualquer coleção bem especificada de elementos. Para qualquer conjunto A, escrevemos a A para indicar que a é um elemento de A e a / A para
Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação
Compiladores Analisador Sintático Prof. Antonio Felicio Netto [email protected] Ciência da Computação 1 Análise Sintática - A Análise Sintática constitui a segunda fase de um tradutor de uma
Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares
Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e
Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)
Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Análise Léxica A primeira fase da compilação Recebe os caracteres de entrada do programa e os converte em um fluxo de
Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.
Variáveis e Entrada de Dados Marco André Lopes Mendes [email protected] [email protected] marcoandre.googlepages.com Algoritmos é a base Primeiro programa Este programa possui apenas uma
Plano da aula. Compiladores. Os erros típicos são sintáticos. Análise Sintática. Usando Gramáticas. Os erros típicos são sintáticos
Plano da aula Compiladores Análise sintática (1) Revisão: Gramáticas Livres de Contexto 1 Introdução: porque a análise sintática? Noções sobre Gramáticas Livres de Contexto: Definição Propriedades Derivações
Lista de Exercícios Definição de gramáticas e Autômatos Finitos Determinísticos
Lista de Exercícios Definição de gramáticas e Autômatos Finitos Determinísticos Uma das formas de se especificar a gramática de uma linguagem de programação é utilizar a Backus-Naur Form (BNF Ingerman
Pilhas. ser acessada somente por uma de suas extremidades. pelo topo. S Uma pilha é uma estrutura linear de dados que pode
Pilhas e Filas Pilhas Uma pilha é uma estrutura linear de dados que pode ser acessada somente por uma de suas extremidades. Uma pilha é uma lista LIFO (do inglês last-in-first out) o último a entrar é
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
Lógica Proposicional
Lógica Proposicional Lógica Computacional Carlos Bacelar Almeida Departmento de Informática Universidade do Minho 2007/2008 Carlos Bacelar Almeida, DIUM LÓGICA PROPOSICIONAL- LÓGICA COMPUTACIONAL 1/28
Lógica. Fernando Fontes. Universidade do Minho. Fernando Fontes (Universidade do Minho) Lógica 1 / 65
Lógica Fernando Fontes Universidade do Minho Fernando Fontes (Universidade do Minho) Lógica 1 / 65 Outline 1 Introdução 2 Implicações e Equivalências Lógicas 3 Mapas de Karnaugh 4 Lógica de Predicados
Programação Funcional Aulas 5 & 6
Programação Funcional Aulas 5 & 6 Sandra Alves DCC/FCUP 2016/17 Definições usando outras funções Podemos definir funções usando outras previamente definidas (por exemplo: do prelúdio-padrão). Exemplo:
Faculdade de Computação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação Professora : Sandra de Amo Solução da Lista de Exercícios n o 8 - Indecidibilidade Exercicio 1-5.5 do Livro
Fluxograma Pseudocódigo Estruturas de decisão. Professor Leandro Augusto Frata Fernandes
Programação de Computadores III Aula 4 Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063 Roteiro da Aula
Polinômios. 2) (ITA-1962) Se x³+px+q é divisível por x²+ax+b e x²+rx+s, demonstrar que:
Material by: Caio Guimarães Polinômios A seguir, apresento uma lista de vários exercícios propostos (com gabarito) sobre polinômios. Os exercícios são para complementar a vídeo-aula a respeito de polinômios
Construção de Compiladores
Construção de Compiladores Parte 1 Introdução Linguagens e Gramáticas F.A. Vanini IC Unicamp Klais Soluções Motivação Porque compiladores? São ferramentas fundamentais no processo de desenvolvimento de
Definições Hierarquia de Chomsky Exemplos de gramáticas
Definições Hierarquia de Chomsky Exemplos de gramáticas 1 Formalmente, as gramáticas são caracterizadas como quádruplas ordenadas G = ( Vn, Vt, P, S) onde: Vn representa o vocabulário não terminal da gramática.
TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS
TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS Acadêmico: Cleison Vander Ambrosi Orientador: José Roque Voltolini da Silva Roteiro da Apresentação Introdução Motivação
Teoria da Computação. 2006/2007 Trabalho prático nº 1. Trabalho realizado por: Pedro Oliveira ( ) Rui Costa ( ) Turma: TP1
2006/2007 Trabalho prático nº 1 Trabalho realizado por: Pedro Oliveira (501062444) Rui Costa (501062452) Turma: TP1 1 - Introdução O objectivo deste trabalho era implementar um simulador de Autómatos Finitos
Demonstrações. Terminologia Métodos
Demonstrações Terminologia Métodos Técnicas de Demonstração Uma demonstração é um argumento válido que estabelece a verdade de uma sentença matemática. Técnicas de Demonstração Demonstrações servem para:
Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba
Questão 01 No processo de construção de compiladores, é essencial compreender e manipular as expressões regulares e suas equivalências. Dentro desse contexto, seja o alfabeto = {a, b, c, d, e} e a seguinte
Cálculo Diferencial e Integral 2 Formas Quadráticas
Instituto Superior Técnico Departamento de Matemática Secção de Álgebra e Análise Cálculo Diferencial e Integral 2 Formas Quadráticas 1 Formas quadráticas Uma forma quadrática em R n é um polinómio do
Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)
Unidade 1 Conceitos Básicos Referência (Divério, 2000) Conceitos Básicos Linguagem Conceito fundamental Forma precisa de expressar problemas Permite um desenvolvimento formal adequado ao estudo da computabilidade
04 Recursão SCC201/501 - Introdução à Ciência de Computação II
04 Recursão SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir Ponti Jr. (ICMCUSP) 04Recursão
ESTRUTURA DE DADOS PILHAS SEQUENCIAIS
ESTRUTURA DE DADOS PILHAS SEQUENCIAIS Prof. Dr. Daniel Caetano 2012-2 Objetivos Compreender o que é uma estrutura em pilha Compreender sua aplicação Capacitar para implementar pilhas Atividade Estruturada!
ESTRUTURA DE DADOS VETORES E LISTAS LINEARES
ESTRUTURA DE DADOS VETORES E LISTAS LINEARES Prof. Dr. Daniel Caetano 2012-2 Objetivos Conhecer os vetores Compreender as Listas Sequenciais Implementar uma Lista Sequencial com Vetor GRUPOS? Até o fim
