Gramáticas Livres de Contexto Parte 1

Tamanho: px
Começar a partir da página:

Download "Gramáticas Livres de Contexto Parte 1"

Transcrição

1 Universidade Estadual de Feira de Santana Engenharia de Computação Gramáticas Livres de Contexto Parte 1 EXA 817 Compiladores Prof. Matheus Giovanni Pires

2 O papel do Analisador Sintático É responsável por obter os tokens separados pelo Analisador Léxico e verificar se estão de acordo com as regras sintáticas da linguagem. Programa fonte Analisador Léxico Lista de tokens Analisador Sintático Para análise semântica Tabela de Símbolos UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 2

3 O papel do Analisador Sintático As regras sintáticas de uma linguagem de programação podem ser descritas por uma Gramática Livre de Contexto (GLC). O Analisador Sintático deve verificar, então, para uma dada GLC,se a cadeia de tokens pertence ou não à linguagem da gramática. Há várias formas de verificar se uma cadeia de tokens pertence ou não à uma linguagem Em outras palavras, há diferentes formas de se derivar a cadeia, utilizando as regras da gramática. UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 3

4 Gramáticas Livres de Contexto Uma Gramática Livre de Contexto (GLC) define uma Linguagem Livre de Contexto (LLC) Uma GLC possui regras de produção do tipo: A β onde A V e β (V T)* Seja a gramática G = (V, T, P, S) com: V = {A}; T = {a,b}; S = {A}; P = {A ab; A aab} Cadeias válidas? L(G) =? UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 4

5 GLC vs. GR Considere a linguagem L(G) = {a i b i / i > 0} Qual é a ressão regular que denota L(G)? UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 5

6 GLC vs. GR Considere a linguagem L(G) = {a i b i / i > 0} Qual é a ressão regular que denota L(G)? Toda linguagem regular é uma linguagem livre de contexto, mas não vice versa! UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 6

7 Qual é o reconhecedor de uma LLC? Uma Gramática Livre de Contexto define uma Linguagem Livre de Contexto Um Autômato Finito com Pilha (AP) reconhece sentenças de uma Linguagem Livre de Contexto Formalismo reconhecedor para Linguagens Livres de Contexto UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 7

8 Autômato Finito com Pilha Um AP é composto por 4 partes: Fita: cadeia de entrada (fita finita) Pilha: memória auxiliar usada para leitura e gravação (pilha infinita) Unidade de Controle: reflete o estado corrente do autômato. Possui uma cabeça de fita e uma cabeça de pilha Função de Transição: comanda a leitura da fita, a leitura e gravação da pilha e define o estado do autômato UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 8

9 Autômato Finito com Pilha Cadeia de entrada a a a a b b b b Unidade de controle X X X Pilha UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 9

10 Autômato Finito com Pilha A computação de um AP para uma palavra w, consiste na sucessiva aplicação de δ para cada símbolo de w, da esquerda para a direita, até ocorrer uma condição de parada. Dois critérios de parada: 1. O AP para aceitando w ao atingir um estado final. 2. O AP para aceitando w quando a pilha estiver vazia. Não existem estados finais. UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 10

11 Definição formal de um AP Um AP é definido por sete componentes: AP = (Q, Σ, Γ, δ, q 0, Z 0, F) Q = conjunto finito de estados Σ = conjunto finito de símbolos de entrada Γ = alfabeto da pilha finito δ = função de transição q 0 = estado inicial Z 0 = símbolo inicial da pilha F = conjunto de estados de aceitação ou estados finais UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 11

12 Exemplo de um AP Considere a linguagem L = {a n b n / n 1} O AP a seguir possui aceitação por pilha vazia! M = ({q 0, q 1 }, {a,b}, {A, Z}, f, q 0, Z 0, ) L(M) = { x Σ* / (q 0, x, Z 0 ) * (q, ε, ε), q Q } δ(q 0,a,Z 0 )=(q 0,BZ 0 ) δ(q 0,a,B)=(q 0,BB) δ(q 0,b,B)=(q 1,ε) δ(q 1,b,B)=(q 1,ε) δ(q 1,ε,Z 0 )=(q 1,ε) (a,z 0,BZ 0 ) (a,b,bb) q 0 (b,b,ε) q 1 (b,b,ε) (ε,z 0,ε) Função de transição Diagrama de transição UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 12

13 Exemplo de um AP Considere a linguagem L = {a n b n / n 1} O AP a seguir possui aceitação por pilha vazia! (a,z 0,BZ 0 ) (a,b,bb) q 0 (b,b,ε) q 1 (b,b,ε) (ε,z 0,ε) Estado Pilha a b ε q 0 Z 0 (q 0,BZ) q 0 B (q 0,BB) (q 1,ε) q 1 B (q 1,ε) q 1 Z 0 (q 1,ε) Tabela de transição UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 13

14 Exemplo de um AP O AP a seguir possui aceitação por estado final! M = ({q 0, q 1 }, {a,b}, {A, Z}, f, q 0, Z 0, {q2}) L(M) = { x Σ* / (q 0, x, Z 0 ) * (q f, ε, α), q f F } (a,z 0,BZ 0 ) (a,b,bb) (b,b,ε) q 0 (b,b,ε) q 1 (ε,z 0,Z 0 ) q 2 Estado Pilha a b ε q 0 Z 0 (q 0,BZ 0 ) q 0 B (q 0,BB) (q 1,ε) q 1 B (q 1,ε) q 1 Z 0 (q 2,Z 0 ) UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 14

15 Aplicação de GLC em Compiladores GLC pode ser usada para especificar a estrutura sintática de uma linguagem de programação Compreende um universo mais amplo em comparação com as Gramáticas Regulares Parênteses balanceados, blocos estruturados, etc. Os algoritmos utilizados para o reconhecimento dessas estruturas são bastante diferentes dos algoritmos de varredura (scanning). UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 15

16 Árvores de Derivação Representação gráfica da derivação de uma sentença Apresenta a estrutura hierárquica que originou a sentença A raiz é o símbolo inicial da gramática Os vértices interiores são os símbolos não terminais Símbolos terminais e a palavra vazia são as folhas UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 16

17 Árvores de Derivação Exemplo: Seja a gramática G = ({A}, {a,b}, P, A) com: P={A ab; A aab} Árvore de derivação da cadeia aabb A a A b a b UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 17

18 Árvores de Derivação e Análise Sintática OAnalisadorSintáticoéumconstrutordeÁrvore de Derivação Sintática (ADS). Quando se consegue construir uma ADS para um programa fonte, este programa está sintaticamente correto segundo às regras sintáticas da linguagem. Caso contrário, o programa está sintaticamente incorreto. Seagramáticaquedefineasregrassintáticasda linguagem está correta, somente ADS corretas são possíveis Logo, as sentenças incorretas não são representáveis! UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 18

19 Árvores de Derivação e Análise Sintática Seja a gramática G V = {Sentença, Sn, Sv, Artigo, Verbo, Substantivo, Complemento} T= {automóvel, ponte, atravessou, o, a } P= { Sentença Sn Sv; Sn Ar go Substan vo; Sv Verbo Complemento; Complemento Ar go Substan vo; Artigo o a; Substantivo automóvel ponte; Verbo atravessou } S= {Sentença} UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 19

20 Árvores de Derivação e Análise Sintática O automóvel atravessou a ponte. Sentença Sn Sv Artigo Substantivo Verbo Complemento o automóvel atravessou Artigo Substantivo a ponte UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 20

21 Árvores de Derivação e Análise Sintática Outros exemplos de frases geradas pela gramática 1. a automóvel atravessou o ponte 2. o ponte atravessou a automóvel 3. a ponte atravessou o automóvel 4. a ponte atravessou a automóvel 5. o ponte atravessou o automóvel 6. o automóvel atravessou o ponte 7. a automóvel atravessou a ponte UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 21

22 Árvores de Derivação e Análise Sintática A gramática não está correta, pois permite a geração de sentenças sintaticamente erradas quanto ao gênero (masculino versus feminino). Nos exemplos 1, 2 e de 4 a 7 permite se o uso de um artigo de um gênero com um substantivo de outro gênero. Ex.: o ponte, a automóvel. Portanto esta gramática tem de ser alterada para poder servir ao processo de Análise Sintática. Nos exemplos de 2 a 5 não há erros sintáticos, e sim semântico, ou seja, apenas o significado da frase formada é errado. Porém isto não é tratado neste momento da compilação. UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 22

23 Árvores de Derivação e Análise Sintática Gramática Galterada V = {Sentença, Sn, Sv, ArtigoF, ArtigoM, Verbo, SubstantivoF, SubstantivoM, Complemento} T= {automóvel, ponte, atravessou, o, a } P= { Sentença Sn Sv; Sn ArtigoF SubstantivoF ArtigoM SubstantivoM; Sv Verbo Complemento; Complemento ArtigoF SubstantivoF ArtigoM SubstantivoM; ArtigoM o ; ArigoF a; SubstantivoM automóvel; SubstantivoF ponte; Verbo atravessou } S= {Sentença} UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 23

24 Derivações à esquerda e à direita G=({ E }, { +,*,(,),x }, P, E) P={ E E+E E*E ( E ) x } Sentença: x + x * x Derivação mais à esquerda Obtém se derivando sempre o símbolo não terminal mais à esquerda Derivação 1 E E+E x+e x+e*e x+x*e x+x*x UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 24

25 Derivações à esquerda e à direita G=({ E }, { +,*,(,),x }, P, E) P={ E E+E E*E ( E ) x } Derivação mais à direita Obtém se derivando sempre o símbolo não terminal mais à direita Derivação 2 E E+E E+E*E E+E*x E+x*x x+x*x UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 25

26 Gramática ambígua Uma gramática ambígua produz mais de uma árvore de derivação para alguma sentença Em outras palavras, uma gramática é ambígua se permitir a construção de mais de uma derivação mais à esquerda ou mais à direita para uma mesma sentença UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 26

27 Gramática ambígua G=({ E }, { +,*,(,),x }, P, E) P={ E E+E E*E ( E ) x } Sentença: x + x * x 1. E E+E x+e x+e*e x+x*e x+x*x 2. E E*E E+E*E x+e*e x+x*e x+x*x E E + E E E * E x E * E E + E x x x x x UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 27

28 O problema do Else Um exemplo em linguagens de programação A qual if o else pertence? if 1 then if 0 then outro else outro Neste exemplo, "outro" representa qualquer outro comando. UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 28

29 O problema do Else CMD if EXP then CMD if EXP then CMD else CMD outro EXP 0 1 CMD if EXP then CMD 1 if EXP then CMD else CMD 0 outro outro UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 29

30 O problema do Else CMD if EXP then CMD if EXP then CMD else CMD outro EXP 0 1 CMD if EXP then CMD else CMD 1 if EXP then CMD outro 0 outro UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 30

31 O problema do Else A gramática é ambígua pois possui 2 árvores de derivação para a sentença if 1 then if 0 then outro else outro Solução Casar cada else com o then não casado mais próximo Um comando entre um then e um else precisa ser casado, ou seja, o comando interno não pode casar com um then apenas (não casado), sendo o else forçado a casar com esse then não casado UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 31

32 O problema do Else Solução CMD CMDF CMDA CMDF if EXP then CMDF else CMDF outro CMDA if EXP then CMD if EXP then CMDF else CMDA EXP 0 1 UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 32

33 Precedência de Operadores A precedência de um operador especifica quem tem mais prioridade quando há outros operadores juntos * 3 = 18 ou 16? Considere a seguinte gramática: G=({, op, nro}, {+,-,*,/,(,)}, P, ) P={ op () nro op + - * / nro } UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 33

34 Precedência de Operadores Sentença: * 3 = 18 ou 16? op op op * nro nro + op nro + nro 3 1 nro * nro A gramática é ambígua? UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 34

35 Associatividade de Operadores Sentença: = 7 ou 1? op op op - nro nro - op nro - nro 3 1 nro - nro A gramática é ambígua? UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 35

36 Como resolver a ambiguidade? Não existe um procedimento geral para eliminar a ambiguidade de uma gramática Existem gramáticas para as quais é impossível eliminar produções ambíguas Uma linguagem é dita inerentemente ambígua se qualquer gramática que a descreve é ambígua Exemplo L={ w / w = a n b n c m d m ou a n b m c n d m, n 1,m 1} UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 36

37 Como resolver a ambiguidade? Dois métodos para tratar ambiguidades 1. Regra de eliminação de ambiguidade Corrigir a ambiguidade sem alterar a gramática Vantagem: corrigi a ambiguidade sem alterar a gramática, evitando torná la mais complexa Desvantagem: a estrutura sintática da linguagem não é mais determinada apenas pela gramática 2. Alteração da gramática Altera a gramática removendo a ambiguidade Vantagem: não é necessário regras adicionais para determinar a estrutura sintática da linguagem Desvantagem: ao remover a ambiguidade, a gramática pode se tornar mais complexa UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 37

38 Soluções para o problema da precedência Não associativa Uma sequência com mais de um operador em uma ressão não é permitida Considere a seguinte gramática: G=({, op, nro, fator}, {+,-,*,/,(,)}, P, ) P={ fator op fator fator fator ( ) nro op + - * / nro } op () nro op + - * / Gramática anterior nro UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 38

39 Soluções para o problema da precedência Não associativa * 3 = 18 ou 16? fator op fator fator op fator ( ) * nro nro + ( ) fator op fator 3 1 fator op fator nro + nro 1 5 A precedência dos operadores é dada pelos parênteses! nro * nro 5 3 (1 + 5) * (5 * 3) UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 39

40 Soluções para o problema da precedência Cascata de precedências Os operadores em classe de igual precedência são agrupados, e para cada precedência é definida uma regra distinta. G=({, op, nro, fator, termo, soma, mult}, {+,-,*,/,(,)}, P, ) P={ soma termo termo termo mult termo fator fator ( ) nro soma + mult * / nro } op () nro op + - * / Gramática anterior nro UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 40

41 Soluções para o problema da precedência Cascata de precedências soma termo + termo 1 + (5 * 3) fator termo mult termo nro fator * fator 1 nro nro 5 3 UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 41

42 Soluções para o problema da associatividade A gramática definida ainda é ambígua, pois ainda não define a associatividade de operadores, da esquerda para a direita, no caso da soma e subtração! A recursão nos dois lados do operador possibilita que qualquer um dos lados case(match) com repetições do operador em uma derivação soma A solução é substituir uma das recursões, o que força os casamentos repetidos para o lado ainda com a recursão UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 42

43 Soluções para o problema da associatividade A gramática a seguir torna a adição e a subtração associativas à esquerda, como convencionado na matemática G=({, op, nro, fator, termo, soma, mult}, {+,-,*,/,(,)}, P, ) P={ soma termo termo termo termo mult termo fator fator ( ) nro soma + mult * / soma nro } UEFS :: Prof. Matheus Giovanni Pires :: EXA-817 Compiladores 43

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO LINGUAGEM LIVRE DE CONTEXTO As Linguagens Livres de Contexto é um reconhecedor de linguagens, capaz de aceitar palavras corretas (cadeia, sentenças) da linguagem. Por exemplo, os autômatos. Um gerador

Leia mais

Linguagens Livres de Contexto

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

Leia mais

Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática

Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática Ambiguidade Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática De maneira equivalente, se existe mais de uma derivação mais à esquerda para uma cadeia Ou se

Leia mais

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática

Leia mais

Gramática. Gramática. Gramática

Gramática. Gramática. Gramática Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática

Leia mais

Análise Sintática. Fabiano Baldo

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

Leia mais

IV Gramáticas Livres de Contexto

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

Leia mais

Compiladores - Gramáticas

Compiladores - Gramáticas Compiladores - Gramáticas Fabio Mascarenhas 2015.2 http://www.dcc.ufrj.br/~fabiom/comp Ambiguidade Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática De maneira

Leia mais

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

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam Linguagens Naturais LINGUAGENS FORMAIS Definições Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam São muito ricas, mas também ambíguas e imprecisas. Ex.: João

Leia mais

Análise Sintática Introdução

Análise Sintática Introdução Análise Sintática Introdução Renato Ferreira Linguagens e Automatas Linguagens formais são importantes em Computação Especialmente em linguagens de programação Linguagens regulares A linguagem formal mais

Leia mais

Compiladores - Gramáticas

Compiladores - Gramáticas Compiladores - Gramáticas Fabio Mascarenhas 2018.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

Leia mais

Linguagens Livres de Contexto

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

Leia mais

Compiladores - Gramáticas

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

Leia mais

Gramáticas Livres de Contexto

Gramáticas Livres de Contexto Gramáticas Livres de Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 42 Frase do dia Quando vires

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃ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 marcelolauretto@usp.br

Leia mais

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

Compiladores. Prof. Bruno Moreno Aula 8 02/05/2011 Compiladores Prof. Bruno Moreno Aula 8 02/05/2011 RECONHECIMENTO DE TOKENS Reconhecimento de Tokens Até aqui aprendemos a identificar tokens Para reconhecimento, a única abordagem utilizada foi árvores

Leia mais

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

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

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

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

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2) SCC-505 - Capítulo 2 e (versão 2) João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo http://www.icmc.usp.br/~joaoluis

Leia mais

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

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

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Gramáticas Livre do Contexto (GLC) Cristiano Lehrer, M.Sc. Linguagens Livres do Contexto (1/2) Seu estudo é de fundamental importância na informática: Compreende um universo

Leia mais

Linguagens Regulares. Prof. Daniel Oliveira

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

Leia mais

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

LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 09 Gramáticas e Linguagens Livres de Contexto (Hopcroft, 2002) 18/01/2016 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Classes Gramaticais Linguagens

Leia mais

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

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof.

Leia mais

Linguagens Livres de Contexto

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

Leia mais

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. 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

Leia mais

Análise Sintática LL(1)

Análise Sintática LL(1) FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 7º Periodo Disciplina: Compiladores Prof. Erinaldo Sanches Nascimento Análise Sintática LL(1) Análise Sintática Descendente Introdução

Leia mais

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

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

Leia mais

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática

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 02 Prof. geovanegriesang@unisc.br Data Conteúdo 23/09/2013 3. Análise Sintática: 3.1 analisadores

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Compiladores Aula 4. Celso Olivete Júnior.

Compiladores Aula 4. Celso Olivete Júnior. Aula 4 Celso Olivete Júnior olivete@fct.unesp.br Na aula de hoje... Revisão: gramáticas Relações em uma gramática: Cabeça, Último, Primeiro (First) e Seguinte (Follow) Capítulo 4 (seção 4.4.2) do livro

Leia mais

Gramática Livre de Contexto

Gramática Livre de Contexto Gramática Livre de Contexto Prof. Yandre Maldonado - 1 Árvore de derivação Ambigüidade Simplificação de Gramática Forma Normal de Chomsky (FNC) Forma Normal de Greibach (FNG) Prof. Yandre Maldonado e Gomes

Leia mais

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃ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 marcelolauretto@usp.br

Leia mais

Compiladores. Parser LL 10/13/2008

Compiladores. Parser LL 10/13/2008 Compiladores Fabiano Baldo Usa uma pilha explícita ao invés de chamadas recursivas para realizar a análise sintática. LL(k) parsing significa que ktokensà frente são utilizados. O primeiro L significa

Leia mais

Compiladores - Análise Léxica

Compiladores - Análise Léxica Compiladores - Análise Léxica Fabio Mascarenhas 2017.2 http://www.dcc.ufrj.br/~fabiom/comp Introdução Primeiro passo do front-end: reconhecer tokens Tokens são as palavras do programa O analisador léxico

Leia mais

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

COMPILADORES. Revisão Linguagens formais Parte 02. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 02 Prof. geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = epsilon λ =

Leia mais

Análise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18

Análise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18 Análise Sintática Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Outubro, 2016 1 / 18 Sumário 1 Introdução 2 Derivações 2 / 18 1 Introdução 2 Derivações 3 /

Leia mais

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

V Análise Sintática. V.1.1 Gramáticas Livres de Contexto Definições de GLC V Análise Sintática V.1 Fundamentos Teóricos V.1.1 G.L.C V.1.2 Teoria de Parsing V.2 Especificação Sintática de Ling. de Prog. V.3 - Implementação de PARSER s V.4 - Especificação Sintática da Linguagem

Leia mais

Introdução Definição Conceitos Básicos de Linguagem

Introdução Definição Conceitos Básicos de Linguagem Introdução Definição Conceitos Básicos de Linguagem Introdução Desenvolvida originalmente em 1950 Objetivo: Desenvolver teorias relacionadas com a Linguagem natural Logo verificou-se a importância para

Leia mais

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

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: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira As Linguagens e os formalismos representacionais

Leia mais

Construção de Compiladores

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

Leia mais

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

INE5317 Linguagens Formais e Compiladores AULA 8: Linguagens Livres de Contexto INE5317 Linguagens Formais e Compiladores AULA 8: Linguagens Livres de Contexto baseado em material produzido pelo prof Paulo B auth Menezes e pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira

Leia mais

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 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

Leia mais

Sintaxe e Semântica. George Darmiton da Cunha Cavalcanti.

Sintaxe e Semântica. George Darmiton da Cunha Cavalcanti. Sintaxe e Semântica George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução O problema de descrever a sintaxe Métodos formais para descrever a sintaxe Gramáticas de atributos Descrevendo

Leia mais

Compiladores - Especificando Sintaxe

Compiladores - Especificando Sintaxe Compiladores - Especificando Sintaxe 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

Leia mais

Linguagens e Gramáticas. Linguagens Formais Hierarquia de Chomsky

Linguagens e Gramáticas. Linguagens Formais Hierarquia de Chomsky Linguagens e Gramáticas Linguagens Formais Hierarquia de Chomsky Já vimos que Linguagem é um conjunto de cadeias de símbolos sobre um alfabeto/vocabulário, V. É um subconjunto específico de V*. Estas cadeias

Leia mais

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

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticas bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL:

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes

Leia mais

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 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

Leia mais

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior. Máquinas Universais Máquina de Celso Olivete Júnior olivete@fct.unesp.br http://www2.fct.unesp.br/docentes/dmec/olivete/ Roteiro Hipótese de Church - Máquinas Universais: Máquina de Máquina de : Noção

Leia mais

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

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

Leia mais

Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação

Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação Compiladores Analisador Sintático Prof. Antonio Felicio Netto antonio.felicio@anhanguera.com Ciência da Computação 1 Análise Sintática - A Análise Sintática constitui a segunda fase de um tradutor de uma

Leia mais

Exemplo preliminar. Considere a linguagem dos Palíndromos Lpal:

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,

Leia mais

LINGUAGENS FORMAIS E AUTÔMATOS

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.

Leia mais

Compiladores - Análise SLR

Compiladores - Análise SLR Compiladores - Análise SLR Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Um exemplo que funciona Todo estado com um item de redução e algum outro item causa conflito LR(0)! A técnica LR(0)

Leia mais

Análise Sintática. Compiladores Cristina C. Vieira. Compiladores 2012/2013

Análise Sintática. Compiladores Cristina C. Vieira. Compiladores 2012/2013 Análise Sintática Compiladores Cristina C. Vieira 1 Árvore Sintática Nós internos: símbolos não-terminais Folhas: símbolos terminais Arcos: de símbolos não-terminais do LHS da produção para nós do RHS

Leia mais

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

Teoria da Computação Aula 02 Introdução Teoria da Computação Aula 02 Introdução Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Alfabeto Um alfabeto é um conjunto finito de símbolos ou caracteres, representado pela letra sigma ( ). Portanto:

Leia mais

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

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

Leia mais

Análise Sintática I. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42

Análise Sintática I. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42 Análise Sintática I Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Abril, 2017 1 / 42 Sumário 1 Introdução 2 Derivações 3 Ambiguidade 4 Análise sintática descendente

Leia mais

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 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

Leia mais

Linguagens e Programação Gramáticas. Paulo Proença

Linguagens e Programação Gramáticas. Paulo Proença Linguagens e Programação Gramáticas Gramáticas Ferramenta para a descrição e análise de linguagens; Baseada num conjunto de regras que especificam o modo de construção das frases válidas na linguagem;

Leia mais

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1 Árvores (ordenadas) Recordemos que, uma árvore é grafo (não dirigido) em que o número de vértices excede em 1 o número de arcos. Um vértice é acessível a todos os outros: a raiz. Os vértices que são acessíveis

Leia mais

Linguagens de Programação Aula 4

Linguagens de Programação Aula 4 Aula 4 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada... Autômatos finitos AF:exemplos... Cadeia de caracteres a,b,c 2/82 Na aula passada... Autômatos finitos AF:exemplos... Números inteiros(com

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 04 Sintaxe e Semântica Edirlei Soares de Lima Sintaxe e Semântica A descrição de uma linguagem de programação envolve dois aspectos principais:

Leia mais

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL: INE5416 Paradigmas de Programação Ricardo Azambuja Silveira INE CTC UFSC E Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Conceitos Léxica estudo dos símbolos que compõem uma linguagem Sintaxe

Leia mais

Compiladores. Análise Sintática

Compiladores. Análise Sintática Compiladores Análise Sintática Cristiano Lehrer, M.Sc. Introdução (1/3) A análise sintática constitui a segunda fase de um tradutor. Sua função é verificar se as construções usadas no programa estão gramaticalmente

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira

Leia mais

Linguagens livres de contexto e autômatos de pilha

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

Leia mais

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

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 olivete@fct.unesp.br 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas

Leia mais

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

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens

Leia mais

Análise sintática. Prof. Thiago A. S. Pardo. Análise sintática ascendente

Análise sintática. Prof. Thiago A. S. Pardo. Análise sintática ascendente 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

Leia mais

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática

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 COPILADORES Análise sintática Parte 03 Prof. geovanegriesang@unisc.br Analisador sem recursão Analisador sintático sem recursão pode

Leia mais

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

Análise Léxica. Fundamentos Teóricos. Autômatos Finitos e Conjuntos Regulares (cap. III da apostila de Linguagens Formais e Compiladores) Análise Léxica Fundamentos Teóricos Autômatos Finitos e Conjuntos Regulares (cap. III da apostila de Linguagens Formais e Compiladores) Geradores X Reconhecedores Gramáticas Tipo 0 Máquinas de Turing G.

Leia mais

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 UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Proposta por Alan Turing em 1936; É universalmente conhecida e aceita como formalização de algoritmo; Teoria

Leia mais

Compiladores - Análise Recursiva

Compiladores - Análise Recursiva Compiladores - Análise Recursiva Fabio Mascarenhas 2015.2 http://www.dcc.ufrj.br/~fabiom/comp Geradores x Reconhecedores A definição formal de gramática dá um gerador para uma linguagem Para análise sintática,

Leia mais

Gramá3ca Livre de Contexto (GLC)

Gramá3ca Livre de Contexto (GLC) Linguagens Formais e Autômatos Gramá3ca Livre de Contexto (GLC) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hep://dcc.ufmg.br/~nvieira) Sumário Gramá4cas livres de

Leia mais

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

Autómatos de pilha e Gramáticas independentes de contexto Autómatos de pilha e Gramáticas independentes de contexto Proposição 15.1. A classe de linguagens aceites por autómatos de pilha está contida a classe das linguagens independentes de contexto. Dem. Seja

Leia mais

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

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof.

Leia mais

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

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 01 geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda

Leia mais

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

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 olivete@fct.unesp.br 1 Professor Celso Olivete Júnior Bacharelado em Ciência da Computação (Unoeste-2002) Mestrado e Doutorado em Engenharia Elétrica

Leia mais

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

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

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 2 BNF e Grafo Sintático Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir

Leia mais

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

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos LINGUAGENS FORMAIS E AUTÔMATOS Prova 2-10/06/2011 - Prof. Marcus Ramos NOME: _ Colocar seu nome no espaço acima; A prova pode ser feita à lápis ou caneta; A duração é de três horas; As questões da parte

Leia mais

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Apostila 05 Assunto: Linguagens dos tipos 0 e 1 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

Leia mais

Aula 7: Autômatos com Pilha

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

Leia mais

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

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 05 AFND: com e sem movimentos vazios 05/12/2016 Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Na aula passada... Reconhecedores genéricos Autômatos finitos

Leia mais

SCC 205 Teoria da Computação e Linguagens Formais

SCC 205 Teoria da Computação e Linguagens Formais Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação SCC 205 Teoria da Computação e Linguagens Formais Autômatos com pilha Lista 3 1. Dê um

Leia mais

Tratamento dos Erros de Sintaxe. Adriano Maranhão

Tratamento dos Erros de Sintaxe. Adriano Maranhão Tratamento dos Erros de Sintaxe Adriano Maranhão Introdução Se um compilador tivesse que processar somente programas corretos, seu projeto e sua implementação seriam grandemente simplificados. Mas os programadores

Leia mais

Autómatos de pilha e GIC

Autómatos de pilha e GIC Autómatos de pilha e GIC Proposição 17.1. A classe de linguagens aceites por autómatos de pilha está contida na classe das linguagens independentes de contexto. Dem. Seja L uma linguagem independente de

Leia mais

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

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

Leia mais

Análise Léxica II. Eduardo Ferreira dos Santos. Setembro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 30

Análise Léxica II. Eduardo Ferreira dos Santos. Setembro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 30 Análise Léxica II Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Setembro, 2016 1 / 30 Sumário 1 Especicação de tokens 2 Reconhecimento de tokens Ambiguidade

Leia mais

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

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação SCC-0505 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Lista de Exercícios do Capítulo 3 Gramáticas

Leia mais

Compiladores - Análise Léxica

Compiladores - Análise Léxica Compiladores - Análise Léxica Fabio Mascarenhas 2018.1 http://www.dcc.ufrj.br/~fabiom/comp Introdução Primeiro passo do front-end: reconhecer tokens Tokens são as palavras do programa O analisador léxico

Leia mais

Expressões Regulares e Gramáticas Regulares

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

Leia mais

Compiladores. Exemplo. Caraterísticas de Gramáticas. A αβ 1 αβ 2. A αx X β 1 β 2. Lembrando... Gramáticas Livres de Contexto

Compiladores. Exemplo. Caraterísticas de Gramáticas. A αβ 1 αβ 2. A αx X β 1 β 2. Lembrando... Gramáticas Livres de Contexto Compiladores Análise sintática (2) Análise Top-Down Lembrando... Gramáticas Livres de Contexto Análise sintática = parsing. Baseada em GLCs Gramática: S A B Top-Down Bottom-Up S AB cb ccbb ccbca S AB A

Leia mais

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

Modelos de Computação Folha de trabalho n. 8 Modelos de Computação Folha de trabalho n. 8 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

Leia mais