Gramá3ca Livre de Contexto (GLC)
|
|
|
- João Vilalobos Imperial
- 7 Há anos
- Visualizações:
Transcrição
1 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)
2 Sumário Gramá4cas livres de contexto (GLC s) Derivações e ambiguidade Manipulação de GLC s
3 GRAMÁTICAS LIVRES DE CONTEXTO (GLC S) Linguagens Formais e Autômatos
4 BNF Exemplo de uma gramá4ca livre de contexto em notação BNF (Backus-Naur Form) para definir parte da sintaxe de uma LP programa! declarações ; lista-de-cmds. lista-de-cmds! comando ; lista-de-cmds λ comando! cmd-enquanto cmd-se cmd-atribuição... cmd-enquanto! enquanto exp-lógica faça lista-de-cmds fimenquanto cmd-se! se exp-lógica então lista-de-cmds senaoses senao fimse senaoses! senão se exp-lógica então lista-de-cmds senaoses λ Do lado esquerdo da regra possui apenas uma variável, do lado direito qualquer combinação de variáveis e terminais
5 Gramá4ca Livre de Contexto Definição: Uma gramá4ca livre de contexto (GLC) é uma gramá4ca (V,Σ,R,P), em que cada regra tem a forma X w, onde X V e w (V Σ) Repare que uma Gramá3ca Regular é um caso especial de Gramá3ca Livre de Contexto Exemplo: a linguagem não regular {0 n 1 n n N} é gerada pela GLC G = ({P}, {0,1}, R, P), onde R consta das duas regras: P 0P1 λ As palavras são geradas por n (n 0) aplicações da regra P 0P1, seguida de uma aplicação de P λ n P 0 n P1 n 0 n 1 n
6 L = { w {0,1} * w = w R } Mais Exemplos G = ({P}, {0,1}, R, P), onde R consta das 5 regras: P 0P0 1P1 0 1 λ L = { w {0,1} * o número de 0s é igual ao número de 1s em w } G = ({P}, {0,1}, R, P), onde R consta das 3 regras: P 0P1P 1P0P λ
7 Ainda Outro Exemplo Seja a GLC ({E, T, F}, {t, +, *, (, )}, R, E), para expressões aritmé4cas, onde R consta das regras: E E + T T T T * F F F (E) t Esse exemplo será u4l a frente E E + T T: uma expressão ar4mé4ca (E) é formada por um ou mais termos (T s) somados T T * F F: um termo (T) é formado por um ou mais fatores (F s) mul4plicados F (E) t: um fator é um terminal (t) ou, recursivamente, uma expressão ar4mé4ca entre parênteses
8 Linguagem Livre de Contexto Definição: Uma linguagem é dita ser uma linguagem livre do contexto se existe uma gramá4ca livre do contexto que a gera Linguagem Livre de Contexto Por que a linguagem é chamada de livre de contexto?
9 DERIVAÇÕES E AMBIGUIDADE Linguagens Formais e Autômatos
10 Árvore de Derivações Uma árvore de derivação (AD) captura a essência de uma derivação, a história da obtenção de uma forma sentencial (que não depende da ordem de aplicação das regras) Definição: Seja uma GLC G = (V, Σ, R, P ). Uma árvore de derivação (AD) é construída recursivamente como se segue: a) Uma árvore com apenas o vér4ce de rótulo P é uma AD b) Se X V é rótulo de uma folha f de uma AD, então: i) se X λ R, então a árvore ob4da acrescentando-se mais um vér4ce v com rótulo λ e uma aresta {f, v} é uma AD ii) se X x 1 x 2 x n R, onde x 1, x 2,, x n (V Σ), então a árvore ob4da acrescentando-se mais n vér4ces v 1, v 2,..., v n com rótulos x 1, x 2,..., x n, nessa ordem, e n arestas {f, v 1 }, {f, v 2 },..., {f, v n }, é uma AD
11 Exemplo Considere a gramá4ca a seguir E E + T T T T F F F (E) t A AD para t * (t + t) pode ser construída passo a passo E T Derivações: E T (regra E T) Qual é a próxima regra aplicável?
12 Exemplo Considere a gramá4ca a seguir E E + T T T T F F F (E) t A AD para t * (t + t) pode ser construída passo a passo E T Derivações: E T (regra E T) T * F (regra T T * F) T * F Qual regra se deve derivar agora?
13 Exemplo Considere a gramá4ca a seguir E E + T T T T F F F (E) t A AD para t * (t + t) pode ser construída passo a passo E E T T * F Derivações: E T T * F F * F T T * F Derivações: E T T * F T * ( E ) F ( E )
14 E T Exemplo Algumas regras podem ser alternadas na derivação e ainda sim gerar a mesma AD T * F F ( E ) t E + T T F t F t A árvore de derivação completa para t * (t + t) Derivações: E T (regra E T) T * F (regra T T * F) F * F (regra F t) t * F (regra F ( E )) t * ( E ) (regra E ( E + T )) t * ( E + T ) (regra E ( T )) t * ( T + T ) (regra E T) t * ( F + T ) (regra T F) t * ( t + T ) (regra F t) t * ( t + F ) (regra T F) t * ( t + t ) (regra F t)
15 E Exemplo T T * F F ( E ) t E + T T F A árvore de derivação completa para t * (t + t) Observações: Número de passos da derivação: número de vér4ces internos A estrutura da AD é normalmente u4lizada para associar significado Mais de uma AD para w mais de um significado para w F t t Pode exis4r mais de uma derivação para uma palavra w de uma gramá4ca G?
16 Ambiguidade Definição: Uma GLC é dita ambígua quando existe mais de uma AD para alguma sentença que ela gera Exemplo: uma GLC G = ({E}, {t, +,, (, )}, R, E) de expressões aritmé4cas ambíguas, onde R consta das regras: E E + E E * E (E) t Existe mais de uma derivação para a sentença t+t*t? Cuidado: a ambiguidade é da gramá4ca e não da linguagem que ela gera
17 Demonstrando a Ambiguidade A ambiguidade pode ser demostrada gerando duas árvores de derivação para uma sentença da linguagem para a gramá4ca Exemplo: sentença t+t*t para a gramá4ca do exemplo anterior E E E + E E * E t E * E E + E t t Significado: t + (t * t) t t Significado: (t + t) * t t
18 Dois Tipos de Derivações Derivação mais à esquerda: Uma derivação é dita mais à esquerda (DME) se em cada passo é expandida a variável mais à esquerda (pode-se usar o símbolo E ) Derivação mais à direita: Uma derivação é dita mais à direta (DMD) se em cada passo é expandida a variável mais à direita (pode-se usar o símbolo D ) Existe uma única DME e uma única DMD correspondentes a uma AD
19 Ambiguidades DME/DMD Como existe uma única DME e uma única DMD correspondentes a uma AD, pode-se dizer que: uma GLC é ambígua se, e somente se, existe mais de uma DME para alguma sentença que ela gera uma GLC é ambígua se, e somente se, existe mais de uma DMD para alguma sentença que ela gera
20 Exemplo Para a mesma gramá4ca de expressões aritmé4cas, pode-se mostrar usando somente DMD que a gramá4ca é ambígua E E E + E E + E t E + E E + E t E D E + E D E + E + E D E + E + t D E + t + t D t + t + t t t t t E D E + E D E + t D E + E + t D E + t + t D t + t + t
21 Linguagens Inerentemente Ambíguas Existem linguagens livres do contexto (LLC s) para as quais existem apenas gramá4cas ambíguas, essas são chamadas de linguagens inerentemente ambíguas Exemplo: L = { a m b n c k m = n ou n = k } Pode-se mostrar que qualquer GLC que gere tal linguagem terá mais de uma AD para a n b n c n
22 Conclusão A detecção e remoção de ambiguidade é muito importante Ex.: gramá4ca para geração de um compilador para uma LP Cuidado: o problema de determinar se uma GLC é ambígua é indecidível Uma linguagem pode ser gerada por inúmeras gramá4cas, mas algumas gramá4cas podem ser mais adequadas que outras dependendo do contexto Existem técnicas para manipulação de GLC s que não alteram a linguagem gerada
23 MANIPULAÇÃO DE GLC S Linguagens Formais e Autômatos
24 Manipulação de Gramá4cas Uma gramá4ca pode ser manipulada, sem alterar a linguagem que ela gere Eliminando variáveis inúteis Eliminando regras λ Eliminando regras unitárias
25 Variáveis Inúteis Definição: Seja uma GLC G = (V, Σ, R, P). Uma variável X V é dita ser uma variável ú3l se, e somente se, existem u,v (V Σ) e w Σ tais que: * * P uxv w Exemplo: GLC G = (V, Σ, R, P), com as seguintes regras R P AB a B B b C c Existem variáveis inúteis nessa gramá4ca?
26 Exemplo Seja a GLC G = (V, Σ, R, P), onde R é formado pelas regras P AB a B B b C c As seguintes variáveis são inúteis: C: não existem u e v tais que P ucv A: não existe w Σ * tal que A w * B: P ubv apenas para u = A e v = λ, e não existe w Σ * tal que AB w * Gramá4ca equivalente sem símbolos inúteis: P a
27 Eliminação de Variáveis Inúteis Definição: Seja uma GLC G tal que L(G). Existe uma GLC, equivalente a G, sem variáveis inúteis Seja G = (V, Σ, R, P) tal que L(G). Uma GLC G equivalente a G, sem variáveis inúteis, pode ser construída em dois passos: a) Obter G = (V, Σ, R, P), em que: * V = { X V X G w para algum w Σ } R = { r R r não contém símbolos de V V } b) Obter G = (V, Σ, R, P), em que: * V = { X V P G uxv para algum u, v (V Σ) * } R = { r R r não contém símbolos de V V }
28 Algoritmo: parte (a) Algoritmo para determinar varíaveis que produzem sentenças: * { X V X w para algum w Σ } Entrada: GLC G = (V, Σ, R, P) Saída: I 1 = { X V X w para algum w Σ } I 1 repita N { X I 1 X z R e z (I 1 Σ) * } I 1 I 1 N até N = retorne I 1
29 Algoritmo: parte (b) Algoritmo para determinar variáveis alcançáveis a par3r de P: * { X V P uxv para algum u, v (V Σ) * } Entrada: GLC G = (V, Σ, R, P) * Saída: I 2 = { X V P uxv para algum u, v (V Σ) * } I 2 N { P } repita I 2 I 2 N N { Y I 2 X uyv para algum X N e u,v (V Σ) * } até N = retorne I 2
30 Exemplo Seja a gramá4ca G = ({A, B, C, D, E, F}, {0, 1}, R, A}), onde R contém as regras: Aplicando o algoritmo (a): A ABC AEF BD B B0 0 C 0C EB D 1D 1 E BE F 1F1 1 Aplicando o algoritmo (b): V = { B, D, F,A } V = { A, B, D } A BD B B0 0 D 1D 1 F 1F1 1 A BD B B0 0 D 1D 1
31 Eliminação de uma Regra Uma regra da forma X w, onde X não é a variável de par4da, pode ser eliminada simulando sua aplicação em todos os contextos possíveis: para cada ocorrência de X do lado direito de uma regra, subs4tui-se por w Teorema: Seja uma GLC G = (V, Σ, R, P). Seja X w R, X P. Seja a GLC G = (V, Σ, R, P), onde R é ob4do assim: a) para cada regra de R em que X não ocorre do lado direito, exceto X w, coloque-a em R b) para cada regra de R da forma Y x 1 X 1 x 2 X 2...X n x n+1, com pelo menos uma ocorrência de X do lado direito, com n 1 e x i [(V {X}) Σ] *, coloque em R todas as regras da forma Y x 1 Y 1 x 2 Y 2...Y n x n+1, sendo que cada Y j pode ser X ou w, com exceção da regra X w G é equivalente a G
32 Algoritmo Algoritmo para eliminação de uma regra
33 Exemplo Seja a gramá4ca G = ({P, A, B}, {a, b, c}, R, P}), onde R contém as regras: P ABA A aa a B bbc λ Como é a derivação de aa em G? A GLC G = ({P, A, B}, {a, b, c}, R, P}), equivalente a G, pode ser ob4da eliminando-se a regra A a P ABA ABa aba aba A aa aa B bbc λ Como é a derivação de aa em G?
34 Variável Anulável Definição: uma variável X é anulável em uma GLC G se, e somente se, X G λ Algoritmo para determinar variáveis anuláveis Entrada: GLC G = (V, Σ, R, P) * Saída: A = { X V X λ } A repita N { Y A Y z R e z A * } A A N até N = retorne A
35 Eliminação de Regras λ Seja G = (V, Σ, R, P). Seja G = (V, Σ, R, P) em que R é ob4do assim: a) para cada regra de R cujo lado direito não contém variável anulável, exceto regra λ, coloque-a em R b) para cada regra de R da forma Y x 1 X 1 x 2 X 2...X n x n+1, sendo cada X i uma variável anulável, com n 1 e cada x i sem variáveis anuláveis, coloque em R todas as regras da forma Y x 1 Y 1 x 2 Y 2...Y n x n+1, em que cada Y j pode ser X j ou λ, com exceção da regra λ c) Se P for anulável, coloque P λ em R L(G) = L(G ) e sua única regra λ, se houver, é P λ
36 Algoritmo Algoritmo para eliminação de regras λ
37 Exemplo Seja a gramá4ca G = ({P, A, B, C}, {a, b, c}, R, P}), onde R contém as regras: P APB C A AaaA λ B BBb C C cc λ Obtendo o conjunto de variáveis anuláveis A = { A, C, P, B } Eliminando as variáveis anuláveis P APB AP AB PB A B C λ A AaaA aaa Aaa aa B BBb Bb b C C cc c A regra P P foi descartada por mo4vos óbvios
38 Variáveis Encadeadas Definição: Seja uma gramá4ca G = (V, Σ, R, P). Diz-se que uma variável Z V é encadeada a uma variável X V se Z = X ou se existe uma sequência de regras X Y 1, Y 1 Y 2,..., Y n Z em R, n 0; quando n = 0 tem-se apenas a regra X Z. Ao conjunto de todas as variáveis encadeadas a X é dado o nome de enc(x). Uma GLC equivalente a G = (V, Σ, R, P), sem regras unitárias, é G = (V, Σ, R, P), em que R = { X w existe Y enc(x) tal que Y w R e w V }
39 Algoritmo Algoritmo para obter as variáveis encadeadas de uma variável Entrada: (1) GLC G = (V, Σ, R, P) (2) variável X V Saída: enc(x) U N { X } repita U U N N { Y U Z Y R para algum Z N } até N = retorne U
40 Exemplo Relembrando a GLC para expressões aritmé4cas E E + T T T T * F F F (E) t Os conjuntos enc(x) para cada variável X V enc(e) = { E, T, F } enc(t) = { T, F } enc(f) = { F } Eliminando as regras unitárias E E + T T * F (E) t T T * F (E) t F (E) t
41 Interação entre os Métodos de Eliminação Ao se aplicar vários 4po de eliminações em sequência, certo 4po de regra, já eliminado, pode reaparecer Exemplos a) Ao se eliminar regras λ podem aparecer regras unitárias Ex.: GLC com regras A BC e B λ b) Ao se eliminar regras unitárias podem aparecer regras λ Ex.: GLC com P λ (P: símbolo de par4da) e a regra A P c) Ao se eliminar regras λ podem aparecer variáveis inúteis Ex.: o do item (a), caso B λ seja a única regra de B d) Ao se eliminar regras unitárias podem aparecer var. inúteis Ex.: GLC que contém A B e B não aparece do lado direito de nenhuma outra regra (B torna-se inú4l) Ao se eliminar variáveis inúteis, não podem aparecer novas regras
42 Consistência das Eliminações A seguinte sequência de eliminações para uma GLC G = (V, Σ, R, P) garante sua consistência 1) Adicionar a regra P P se P for recursivo 2) Eliminar regras λ 3) Eliminar regras unitárias 4) Eliminar variáveis inúteis Essa sequência produz uma GLC equivalente cujas regras são da seguinte forma: P λ se λ L(G) X a para a Σ X w para w 2
43 ISSO É TUDO PESSOAL! Linguagens Formais e Autômatos
Aula 8: Gramáticas Livres de Contexto
Teoria da Computação Primeiro Semestre, 2015 Aula 8: Gramáticas Livres de Contexto DAINF-UTFPR Prof. Ricardo Dutra da Silva Veremos agora maneira de gerar as strings de um tipo específico de linguagem,
LLC's: Lema do Bombeamento e Propriedades de Fechamento
Linguagens Formais e Autômatos LLC's: Lema do Bombeamento e Propriedades de Fechamento Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hfp://dcc.ufmg.br/~nvieira) Sumário
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
Se o símbolo inicial não fizer parte do conjunto de símbolos férteis, a linguagem gerada pela gramática é vazia.
Transformações em G.L.C Uma vez que existem métodos de análise, cada qual exigindo gramáticas com características específicas é importante que uma gramática possa ser transformada, porém, sem perder a
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
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]
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. [email protected] Legenda: = sigma (somatório) = delta ε = epsilon λ =
Gramática Livre de Contexto
Prof. Yandre Maldonado - 1 Gramática Livre de Contexto Árvore de derivação Ambigüidade Simplificação de Gramática Forma Normal de Chomsky (FNC) (FNG) Prof. Yandre Maldonado e Gomes da Costa [email protected]
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]
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.
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
Transformação de AP para GLC
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Transformação de AP para GLC Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 A técnica que será
Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1
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
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
Compiladores Aula 4. Celso Olivete Júnior.
Aula 4 Celso Olivete Júnior [email protected] 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
Capítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268
Capítulo 6 Simplificação de gramáticas livres de contexto e Formas Normais 61 6.1. Métodos para transformar gramáticas ái 62 6.2. Duas formas Normais (Chomsky e Greibach) 268 6.1. Métodos para transformar
Gramáticas Livres de Contexto
Gramáticas Livres de Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz [email protected] Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 42 Frase do dia Quando vires
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
Linguagens Formais - Preliminares
Linguagens Formais - Preliminares Regivan H. N. Santiago DIMAp-UFRN 25 de fevereiro de 2007 Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Formais - Preliminares 25 de fevereiro de 2007 1 / 26 Algumas
Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha
Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha Simão Melo de Sousa 12 de Outubro de 2011 Conteúdo 1 Gramáticas e Definições básicas 1 2 Gramáticas e Linguagens 4 2.1 Gramáticas
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
Linguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC)
Linguagens Formais e Autômatos Simplificação de Gramáticas Livre do Contexto (GLC) Cristiano Lehrer, M.Sc. Gramática Simplificada Gramática simplificada é uma gramática livre do contexto que não apresenta
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.
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
Automata e Linguagens Formais
Automata e Linguagens Formais 5 Prof. Carlos H. C. Ribeiro [email protected] Gramáticas A Hierarquia de Chomsky Tipos de gramáticas e linguagens Pré-normalização de GLCs Formas Normais: Chomsky e Greibach
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
Gramáticas Livres de Contexto Parte 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 O papel do Analisador Sintático É responsável
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
A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)
DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Teoria da Computação Eng. Informática 1º Semestre Exame 1ª chamada - Resolução 2h + 30min 31/Jan/2011 Pergunta A.1 A.2 A.3 B.1 B.2 B.3a B.3b C.1 C.2 D.1
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
Autômatos Finitos Determinís3cos (AFD)
Linguagens Formais e Autômatos Autômatos Finitos Determinís3cos (AFD) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hcp://dcc.ufmg.br/~nvieira) Introdução Exemplos Sumário
A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)
DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Teoria da Computação Eng. Informática 1º Semestre Exame 2ª chamada - Resolução 2h + 30min 07/Fev/2011 Pergunta A.1 A.2 A.3 B.1 B.2 B.3a B.3b C.1 C.2 D.1
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
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
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
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
Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos
Departamento de Ciência da Computação ICEx/UFMG Teoria de Linguagens o semestre de 8 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 7/4/8 Valor: pontos. Uma versão do problema
Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma
Formas normais Em muitas aplicações, é útil que as GIC tenham regras de tipos especiais. Para tal é necessário que se possa transformar qualquer gramática numa equivalente (isto é que gere a mesma linguagem)
Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos
Departamento de Ciência da Computação ICEx/UFMG Teoria de Linguagens o semestre de 7 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 9/9/7 Valor: pontos. Uma versão do problema
Expressões Regulares. Linguagens Formais e Autômatos. Andrei Rimsa Álvares
Linguagens Formais e Autômatos Expressões Regulares Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hcp://dcc.ufmg.br/~nvieira) Expressões Regulares Até agora foram vistas
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,
Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes
Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes Questões do POSCOMP 2011 A resposta certa está assinalada em vermelho. Por que é correta e por que as demais alternativas são incorretas?
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
LR's: Lema do Bombeamento e Propriedades de Fechamento
Linguagens Formais e Autômatos LR's: Lema do Bombeamento e Propriedades de Fechamento Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hfp://dcc.ufmg.br/~nvieira) Introdução
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
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
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
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: [email protected] URL: www.inf.ufsc.br/~silveira Conceitos Léxica estudo dos símbolos que compõem uma linguagem Sintaxe
Marcos Castilho. DInf/UFPR. 5 de abril de 2018
5 de abril de 2018 Autômatos com Pilha Não-Determinísticos Um Autômato com Pilha Não-Determinístico (APN) é uma sêxtupla (Q, Σ, Γ, δ, Q 0, F ), onde: Q, Σ, Γ, F são como nos APD s; δ : Q (Σ {λ}) (Γ {λ})
As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.
As linguagens regulares são I.C Proposição 16.1. Qualquer linguagem regular é independente de contexto. Dem. Seja L Σ uma linguagem regular, e seja r uma expressão regular tal que L = L(r).Por induçã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
Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo
Gramática regular IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz [email protected] Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 41 Frase do dia Através de três métodos
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
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
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: [email protected] URL:
Sintaxe e Semântica. George Darmiton da Cunha Cavalcanti.
Sintaxe e Semântica George Darmiton da Cunha Cavalcanti ([email protected]) Tópicos Introdução O problema de descrever a sintaxe Métodos formais para descrever a sintaxe Gramáticas de atributos Descrevendo
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
Variações de Máquinas de Turing
Linguagens Formais e Autômatos Variações de Máquinas de Turing Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hdp://dcc.ufmg.br/~nvieira) Sumário Variações de Máquinas
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
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
Autômatos de Pilha. ( n x 0 +x 1 )+x 2 ) +x n )
Capítulo 3 Autômatos de Pilha Apesar das inúmeras aplicações dos formalismos associados às linguagens regulares, existem aplicações que requerem linguagens mais sofisticadas e que, portanto, envolvem o
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 [email protected] www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Classes Gramaticais Linguagens
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
Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)
Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL) 1 Gramática Sensível ao Contexto Definição: Uma gramática G é sensível ao contexto se
IBM1088 Linguagens Formais e Teoria da
IBM1088 Linguagens Formais e Teoria da Computação Linguagens e Gramáticas Evandro Eduardo Seron Ruiz [email protected] Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 47 Frase do dia Sofremos muito com
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
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
Faculdade de Computação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação - 1 0 Semestre 007 Professora : Sandra Aparecida de Amo Solução da Lista de Exercícios n o 1 Exercícios de Revisã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:
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
Gramáticas e Linguagens Independentes de Contexto
Gramáticas e Linguagens Independentes de Contexto 6.1 Responde às uestões seguintes considerando a gramática independente de contexto G = (V, {a, b}, P, R), onde o conjunto de regras P é: R XRX S S at
Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto
UNIVESIDADE ESTADUAL DE MAINGÁ DEPATAMENTO DE INFOMÁTICA Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 A classe de linguagens livres de contexto é fechada
SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente
SCC-505 - Capítulo 3 Linguagens Sensíveis ao Contexto e 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
Python e sua sintaxe LNCC UFRJ
Python e sua sintaxe LNCC UFRJ Linguagens naturais e formais Linguagens naturais Linguagem formal Um conjunto finito e não-vazio cujos elementos são símbolos Qualquer cadeia finita de símbolos justapostos
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 [email protected] Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda
Construção de Compiladores Aula 17 - Análise Sintática Descendente
Construção de Compiladores Aula 17 - Análise Sintática Descendente Bruno Müller Junior Departamento de Informática UFPR 3 de Novembro de 2014 1 Análise Sintática Descendente Eliminação de retrocessos Converter
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
SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos
SCC-505 - Capítulo 1 Linguagens Regulares e Autômatos Finitos 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
