Problemas decidíveis para LICs
|
|
- Danilo Manoel César Azambuja
- 6 Há anos
- Visualizações:
Transcrição
1 Problemas decidíveis para LICs Dada uma gramática independente de contexto G, L(G) =? Dada uma gramática independente de contexto G, L(G) é finita? Dada uma gramática independente de contexto G, L(G) é infinita? Dada uma gramática independente de contexto G e x Σ, x L(G)? Departamento de Ciência de Computadores da FCUP MC Aula 20 1
2 Problemas não decidíveis para LICs Problemas para os quais é possível provar que não existe algoritmo que os responda. Dada uma linguagem independente de contexto L, L é LIC? Dada uma gramática independente de contexto G, G é ambígua? Dada uma linguagem independente de contexto L, L é inerentemente ambígua? Dadas duas gramáticas independentes de contexto G 1 e G 2, L(G 1 ) = L(G 2 )? Dada uma linguagem independente de contexto L, L é determinística? Dada uma gramática independente de contexto G, L(G) = Σ? As demonstrações ficam para ver mais tarde... Departamento de Ciência de Computadores da FCUP MC Aula 20 2
3 Determinar se uma LIC é vazia Se G = (V, Σ, P, S) gera uma linguagem não vazia então existe uma árvore de derivação para x Σ cuja altura (i.e o comprimento do maior caminho da raiz a uma folha) é no máximo V. Porque: Se uma árvore de derivação tem altura maior que V, tem um caminho em que dois vértices têm o mesmo não-terminal. Então o caminho pode ser encurtado, eliminando a árvore entre esses dois vértices iguais. Processo repete-se até nenhum caminho ter comprimento maior que V. Basta então analisar as árvores de derivação (para formas sentenciais) com altura até V e verificar se alguma é para x Σ, isto é, é uma palavra apenas de não terminais.se não for, então L(G) =. Departamento de Ciência de Computadores da FCUP MC Aula 20 3
4 Equivalentemente o que se pretende determinar é se S x, para algum x Σ.Isto é se S é gerador! Recorda o algoritmo já dado... Departamento de Ciência de Computadores da FCUP MC Aula 20 4
5 Determinar se uma LIC é finita ou infinita Seja G = (V, Σ, P, S) uma gramática em F NC que gera L \ {ɛ}. Considere-se, então, o grafo dirigido tal que: conjunto de vértices é V existe um arco de A para B, se A BC ou A CB em P, para algum C. Para a gramática: S AC AB, C SB, A a, B b o grafo é: A S B C Departamento de Ciência de Computadores da FCUP MC Aula 20 5
6 Lema ciclos. L(G) é finita sse o grafo dirigido correspondente não tem Dem. : Por contradição, suponhamos L(G) é finita e que existe um ciclo A 0, A 1,..., A n, A 0. Temos então A 0 α 1 A 1 β 1 α 2 A 2 β 2... α n A n β n α n+1 A 0 β n+1 com α i β i = i e sendo α i e β i sequências de não-terminais.mas como não há não terminais não úteis: α n+1 w e β n+1 x, para alguns x, w Σ e x, w n + 1. Por outro lado, S ya 0 z e A 0 v para alguns y, z e v Σ. (porquê?) Então para todo i: Departamento de Ciência de Computadores da FCUP MC Aula 20 6
7 S ya 0 z ywa 0 xz yw 2 A 0 x 2 z... yw i A 0 x i z yw i vx i z Como wx > 0, yw i vx i z yw j vx j z para i j. Logo L(G) é infinita. Absurdo! : Suponhamos que o grafo não tem ciclos. Seja r(a) o comprimento do maior caminho que começa em A. Como não há ciclos, r(a) é finito. E se A BC então r(b) < r(a) e r(c) < r(a). Mostra-se por indução sobre r(a) que nenhuma palavra x Σ derivada de A tem comprimento maior que 2 r(a) : Base. Se r(a) = 0 então não há arcos que partam de A e as A- produções são da forma A a. E,portanto, A só deriva palavras de Departamento de Ciência de Computadores da FCUP MC Aula 20 7
8 comprimento 1 Indução. Suponhamos que para r(a) n 1 a condição se verifica.seja r(a) = n (n > 0). Com produções da forma A a só se derivam palavras de comprimento 1. Suponhamos que começamos com A BC. Como r(b) e r(c) são no máximo n 1,por H.I., derivam palavras com comprimento no máximo 2 n 1.Logo BC não pode derivar palavras de comprimento maior que 2 n. Como r(s) é finito, S não deriva palavras de comprimento maior que 2 r(s),logo L(G) é finita. Departamento de Ciência de Computadores da FCUP MC Aula 20 8
9 Determinar se x L, L LIC Seja G = (V, Σ, P, S) uma gramática em FNG que gera L \ ɛ. Então, se x ɛ, x L(G) se e só se existe uma derivação de x em G com exactamente x passos. Isto porque cada produção de G adiciona exactamente um terminal à palavra que é gerada. Se cada não terminal tiver no máximo k produções, então há no máximo k x derivações pela esquerda para palavras de comprimento x. Podemos sistematicamente testá-las todas e verificar se alguma deriva x. Mas: Este algoritmo é muito ineficiente: é exponencial em x. Contudo, existem vários algoritmos O(n 3 ) em que n = x. E para LICs determinísticas existem ainda algoritmos mais eficientes! Departamento de Ciência de Computadores da FCUP MC Aula 20 9
10 Análise sintáctica O problema de reconhecer se x L(G) é essencial para a construção de compiladores e corresponde à chamada análise sintáctica: a determinação se um programa está sintacticamente correcto ou uma frase pertence a uma dada linguagem natural. Normalmente um analisador sintáctico, para além de reconhecer também constrói uma árvore de derivação (ou sintáctica) associada à palavra processada. Departamento de Ciência de Computadores da FCUP MC Aula 20 10
11 Algoritmo de Cocke-Younger-Kasami Seja G = (V, T, P, S) em FNC e x com x 1. O algoritmo decide se x L(G) analisando todas as subsequências de x = x 1 x 2... x n : primeiro todas de comprimento 1: x 1 x 2 x 3... x n depois as de comprimento 2 : x 1 x 2 x 2 x 3... x n 1 x n...e sucessivamente até n = x : x 1 x 2... x n Para todos 1 i i + s n, representamos por N[i, i + s] o conjunto de não terminais em V que geram a subpalavra x i... x i+s, isto é N[i, i + s] = {A A x i... x i+s } Departamento de Ciência de Computadores da FCUP MC Aula 20 11
12 Algoritmo CYK: Para i=1 ate n: N[i,i]={A A x i } Para s=1 ate n-1: Para i=1 ate n-s: N[i,i+s]= Para k=i ate (i+s)-1: N[i,i+s] = N[i,i+s] {A A BC, B N[i,k] e C N[k+1,i+s]} A palavra x está em L(G) se e só se S N[1, n]. Este algoritmo é O(n 3 ) E pode ser generalizado a gramáticas não em forma normal de Chomsky... Departamento de Ciência de Computadores da FCUP MC Aula 20 12
13 Exemplo Seja uma gramática em FNC que gera a linguagem das palavras em {a, b} \ {ɛ} com o mesmo número de a s e b s. S AB BA SS AC BD A a B b C SB D SA e seja x = aabbab. Vamos calcular N[i, j] com 1 i j n aplicando o algoritmo. Departamento de Ciência de Computadores da FCUP MC Aula 20 13
14 Calculando N[i, i] para i = 1..6 vem i j {A} 2 {A} 3 {B} 4 {B} 5 {A} 6 {B} Para N[i, i + 1] consideramos os Z tais que Z XY tal que X N[i, i] e Y N[i + 1, i + 1] i j {A} 2 {A} {S} 3 {B} 4 {B} {S} 5 {A} {S} 6 {B} Departamento de Ciência de Computadores da FCUP MC Aula 20 14
15 Para N[i, i + 2] consideramos os Z tais que Z XY tal que X N[i, i] e Y N[i + 1, i + 2], ou X N[i, i + 1] e Y N[i + 2, i + 2]: i j {A} 2 {A} {S} {C} 3 {B} 4 {B} {S} {C} 5 {A} {S} 6 {B} Para N[1, 3] temos de analisar N[1, 1] = {A} e N[2, 3] = {S}, mas não há nenhuma produção com AS; N[1, 2] = e N[3, 3] = {B}; logo N[1, 3] = ; Temos N[2, 4] = {C} porque S N[2, 3], B N[4, 4] e C SB.Para N[3, 5] temos de analisar N[3, 3] = {B} e N[4, 5] = {S}, mas não há nenhuma produção com BS; N[3, 4] = e N[5, 5] = {A}; logo N[3, 5] = Temos N[4, 6] = {C} porque S N[4, 5], B N[6, 6] e C SB. Departamento de Ciência de Computadores da FCUP MC Aula 20 15
16 Continuando para N[i, i + 3] e i = 1, 2, 3: i j {A} {S} 2 {A} {S} {C} {S} 3 {B} 4 {B} {S} {C} 5 {A} {S} 6 {B} Para N[1, 4] temos que analisar N[1, 1] e N[2, 4], N[1, 2] e N[3, 4], N[1, 3] e N[4, 4]. S N[1, 4] porque A N[1, 1] e C N[2, 4] e S AC.Para N[2, 5] temos que analisar N[2, 2] e N[3, 5], N[2, 3] e N[4, 5], N[2, 4] e N[5, 5]. S N[2, 5] porque S N[2, 3] e S N[4, 5] e S SS. Departamento de Ciência de Computadores da FCUP MC Aula 20 16
17 E, finalmente, calculando N[i, i + 4], com i = 1, 2 e N[i, i + 5] com i = 1, i j {A} {S} {D} {S} 2 {A} {S} {C} {S} {C} 3 {B} 4 {B} {S} {C} 5 {A} {S} 6 {B} Como S N[i, 6], x L(G). Departamento de Ciência de Computadores da FCUP MC Aula 20 17
18 Outros analisadores sintácticos Nota: os assuntos seguintes são de caracter informativo e não fazem parte do programa da disciplina. Tipos de algoritmos, quanto ao modo como constroem a árvore de derivação: descendentes (top-down) produzem formas sentenciais intermédias α (V Σ) tal que já se tem S α mas não ainda α x Exemplos: recursivo descendente de Earley ascendentes (bottom-down) produzem formas sentenciais intermédias α (V Σ) tal que é certo que α x mas não ainda S α Exemplos: CYK shift-reduce LR Departamento de Ciência de Computadores da FCUP MC Aula 20 18
19 Algoritmo de Earley ([Ear70]) Algoritmo descendente, muito eficiente, que se aplica a qualquer gramática independente de contexto G = (V, Σ, P, S). Constrói, a partir da palavra a reconhecer x = a 1 a 2... a n uma tabela triangular M, em que cada célula contém produções da gramática com indicação do progresso na análise (denominados items) que correspondem a candidatos a ser aplicados: A γ β M i,j se e só se existe α (V Σ) tal que S a 1... a i Aα A γβ P γ a i+1... a j. Então x L(G) sse S x. M 1,n Departamento de Ciência de Computadores da FCUP MC Aula 20 19
20 Gramáticas LR(k) e APD Família de gramáticas para as quais existem analisadores sintácticos ascendentes determinísticos, uma vez que com k símbolos de avanço (lookahead) é possível determinar exactamente quais as produções a aplicar para obter uma derivação pela direita (e assim é possível ao analisador sintáctico construir essa derivação por ordem inversa: da palavra a S). Vamos supor k = 0. Um item duma gramática LR(0) é uma produção com um ponto ( ) em qualquer parte do seu lado direito. Exemplo Sendo G = ({S, S, A}, {a, b, c}, {S Sc, S SA A, A asb ab}, S ), os items para S são S Sc, S S c es Sc Determina os restantes items de G. Departamento de Ciência de Computadores da FCUP MC Aula 20 20
21 Um identificador (handle) de uma forma sentencial direita γ é uma subpalavra β que pode ser introduzida no último passo duma derivação pela direita de γ: S d δaw d δβw e γ = δβw Um prefixo viável de uma forma sentencial direita γ é qualquer prefixo de γ que não termina mais à direita do que o fim dum identificador de γ Exemplo Considerando a gramática do exemplo 20.1 S Sc SAc SaSbc o identificador de SaSbc é asb e os prefixos viáveis são ɛ, S, Sa,SaS e SaSb. Um item A α β é válido para um prefixo viável γ se existe uma derivação pela direita tal que: S d δaw d δαβw e γ = δα Um item é completo se for da forma A α Departamento de Ciência de Computadores da FCUP MC Aula 20 21
22 Então, se A α for válido para γ então pode ser que A α tenha sido usado no último passo para derivar γw (de δaw). Mas, dum modo geral, pode não ser verdade... pois pode haver outro w Exemplo Dada gramática do exemplo 20.1 e abc, temos que S d Ac d abc e A ab é válido para o prefixo viavél ab e podemos deduzir que Ac é a forma sentencial direita anterior a abc. Dada uma gramática G, o conjunto de items válidos para os prefixos viáveis é uma linguagem regular. Podemos construir um AFND, cujos estados são os items de G: M = (Q, V Σ, δ, s 0, Q) Q = {A α β A αβ P } {s 0 } δ(s 0, ɛ) = {S α S α P } δ(a α Bβ, ɛ) = {B γ P } δ(a α Xβ, X) = {A αx β} Tem-se que Departamento de Ciência de Computadores da FCUP MC Aula 20 22
23 A α β δ(s 0, γ) se e só se A α β é válido para γ. Uma gramática é LR(0) se: 1. O símbolo inicial não aparece no lado direito de nenhuma regra 2. Para todo o prefixo viável γ de G, sempre que A α é válido para γ, não existe outro item completo ou com um terminal à direita do ponto ( ) válido para γ. O autómato anterior, ou melhor, o AFD equivalente obtido pela construção de subconjuntos, permite determinar se uma gramática é LR(0):no AFD, o caminho do estado inicial etiquetado por γ leva ao estado que corresponde ao conjunto de items válidos para γ. Assim basta ver se algum estado do AFD viola a condição 2. Exercício LR(0). Mostra que a gramática G definida no exemplo 20.1 é Departamento de Ciência de Computadores da FCUP MC Aula 20 23
24 Proposição A cada gramática LR(0) corresponde um autómato de pilha determinístico (APD) e se L é aceite por um APD então L# = {w# w L}, em que # / Σ tem uma gramática LR(0). Podemos, assim, usar o APD como analisador sintáctico, que constrói precisamente uma derivação pela direita (em modo inverso...) e em que a pilha guarda os prefixos viáveis. Nota, que em particular, uma gramática LR(0) não é ambígua!. Estas gramáticas são usadas muito na construção de compiladores, pois a partir delas é possível construir automaticamente analisadores sintácticos eficientes. (ex: yacc, bison são aplicações no UNIX para esses fins...) Departamento de Ciência de Computadores da FCUP MC Aula 20 24
25 Leituras [HMU00] (Cap 7.4) [Tom99] (Pág , ) Referências [Ear70] Jay Earley. An efficient context-free parsing algorithm. Communications of the ACM, 14, [HMU00] John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman. Introduction to Automata Theory, Languages and Computation. Addison Wesley, 2nd edition, [Tom99] Ana Paula Tomás. Apontamentos de modelos de computação. Technical report, Departamento de Ciência de Computadores, FCUP, Departamento de Ciência de Computadores da FCUP MC Aula 20 25
Problemas decidíveis para LICs
Problemas decidíveis para LICs Dada uma gramática independente de contexto G, L(G) =? Dada uma gramática independente de contexto G, L(G) é finita? Dada uma gramática independente de contexto G, L(G) é
Leia maisAs 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
Leia maisAutó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 maisFormas 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)
Leia maisAutó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Á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 maisGramáticas ( [HMU00], Cap. 5.1)
Gramáticas ( [HMU00], Cap. 5.1) Vimos que a seguinte linguagem não é regular L = {0 n 1 n n 0} Contudo podemos fácilmente dar uma definição indutiva das suas palavras: 1. ɛ L 2. Se x L então 0x1 L L é
Leia maisAutó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
Leia maisExercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )
Exercicios 7.1 Escreve expressões regulares para cada uma das seguintes linguagens de Σ = {a, b}: (a) palavras com não mais do que três as (b) palavras com um número de as divisível por três (c) palavras
Leia maisRevisões de Conjuntos
Revisões de Conjuntos {, {a}, {b}, {a, b}} a A a pertence a A, a é elemento de A a {a, b, c} a / A a não pertence a A d / {a, b, c} A B A contido em B, A subconjunto de B x A x B {a, b} {b, c, a} A B A
Leia maisLinguagens recursivamente enumeráveis
Linguagens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário, M
Leia maisModelos de Computação
Modelos de Computação 2.ano LCC e LERSI URL: http://www.ncc.up.pt/~nam/aulas/0405/mc Escolaridade: 3.5T e 1P Frequência:Semanalmente serão propostos trabalhos aos alunos, que serão entregues nas caixas
Leia maisMT como calculadoras de funções parciais
MT como calculadoras de funções parciais Uma máquina de Turing pode ser vista como uma calculadora de funções parciais dos inteiros nos inteiros: f : N k p N Suponhamos que os inteiros estão codificados
Leia maisLinguagens 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 maisNoções de grafos (dirigidos)
Noções de grafos (dirigidos) Grafo G = (V, E) é um conjunto de vértices (ou nós) V e um conjunto de arcos E V V. 1 2 5 3 4 G = ({1, 2, 3, 4, 5}, {(1, 2), (2, 3), (2, 4), (3, 2), (3, 4), (4, 4)}) Um arco
Leia maisAutómatos determísticos de k-pilhas
Autómatos determísticos de k-pilhas dados de entrada a a a3 an controlo finito (S, Σ, Γ, δ, Z, s 0, F ) δ (S Σ Γ k ) (S, (Γ ) k ) Departamento de Ciência de Computadores da FCUP MC Aula 3 Dados um estado
Leia maisLinguaguens recursivamente enumeráveis e recursivas
Linguaguens recursivamente enumeráveis e recursivas Uma linguagem diz-se recursivamente enumerável (r.e) ou semi-decidível se é aceite por uma máquina de Turing. SD: classe de linguagens recursivamente
Leia maisLinguaguens recursivamente enumeráveis
Linguaguens recursivamente enumeráveis Uma palavra x Σ é aceite por uma máquina de Turing M ( x L(M)) se M iniciando com a palavra x na fita e no estado inicial, pára num estado final. Caso contrário,
Leia maisComputação efectiva. Que linguagens podem ser reconhecidas por algum tipo de autómato?
Computação efectiva Que linguagens podem ser reconhecidas por algum tipo de autómato? O que é ser computável? Que linguagens são computáveis? Existem linguagens que não são computáveis? Isto é, existem
Leia maisLinguagem (formal) de alfabeto Σ
Linguagem (formal) de alfabeto Σ Linguagem é qualquer subconjunto de Σ, i.e. qualquer conjunto de palavras de Σ Σ = {a, b} {aa, ab, ba, bb} ou {x x {a, b} e x = 2} {a, aa, ab, ba, aaa, aab, aba,...} ou
Leia maisCompiladores 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 maisTeoria 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
Leia maisLinguagens 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 maisMáquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1
Máquinas Universais Um modelo de computação diz-se universal se todo o problema efectivamente computável o for nesse modelo. Um modelo universal é suficientemente poderoso para se aceitar a si próprio:
Leia maisINE5317 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 maisAutómatos finitos não determinísticos (AFND)
Autómatos finitos não determinísticos (AFND) [HMU00](Cap 2.3) Computações não determinísticas: o estado seguinte não é univocamente determinado pelo estado actual.num autómato finito (não-determínistico):
Leia maisAlfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ).
Alfabeto e palavras Alfabeto conjunto finito de símbolos (Σ). {A,...,Z}, {α, β,... }, {a,b}, {0,1}, ASCII Palavra de Σ sequência finita de símbolos do alfabeto Σ Σ = {a, b} aabba a aaaaaaaa Comprimento
Leia maisCompiladores - Análise Ascendente
Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,
Leia maisA. (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
Leia maisConstruçã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 maisCompiladores - 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,
Leia maisMarcos Castilho. DInf/UFPR. 21 de março de 2019
21 de março de 2019 Análise sintática: introdução Dada uma gramática G e uma palavra w Σ, como saber se w L(G)? Isto é, como saber se S = G w? Derivações à esquerda e ambiguidade w L(G) se S = G w; Sabemos
Leia maisSCC 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 maisformais e autómatos Linguagens g recursivas e recursivamente enumeráveis Gramáticas não-restringidas
Capítulo 11 Uma hierarquia de linguagens formais e autómatos 11.1. Linguagens g recursivas e recursivamente enumeráveis. 11.2. Gramáticas não-restringidas 11.3. Gramáticas e linguagens dependentes do contexto
Leia maisTeoria da Computação
Teoria da Computação Introdução às Linguagens Formais e as suas Gramáticas Simão Melo de Sousa Computer Science Department University of Beira Interior, Portugal Plano 1 Introduction a Teoria das Linguagens
Leia maisTeoria 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 maisGramáticas e Linguagens independentes de contexto
Capítulo 6 Gramáticas e Linguagens independentes de contexto 6.1 Gramáticas Nesta secção vamos introduzir gramáticas formais para caracterização das linguagens, estudando fundamentalmente as gramáticas
Leia maisAlfabeto, 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
Leia maisSCC 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
Leia maisCapí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
Leia maisModelos de Computação Folha de trabalho n. 10
Modelos de Computação Folha de trabalho n. 10 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada
Leia maisSegunda Lista de Exercícios 2004/2...
+ + UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM162 Linguagens Formais e Autômatos Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Segunda Lista de Exercícios
Leia maisIV 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 maisTeoria da Computação Aula - Linguagens e Gramáticas Formais
Teoria da Computação Aula - Linguagens e Gramáticas Formais Simão Melo de Sousa SMDS TC 1 Introduction a Teoria das Linguagens Formais prelúdio SMDS TC 2 Aviso Prévio A redacção dos apontamentos da disciplina
Leia maisGramá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 evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 41 Frase do dia Através de três métodos
Leia maisCapí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 maisModelos 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 maisTEORIA 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
Leia maisCompiladores 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 maisAula de 28/10/2013. sticas; Implementação. em Ruby
Linguagens Formais e Autômatos (LFA) Aula de 28/10/2013 Propriedades Formais Relevantes das LLC s; Lema do Bombeamento; Linguagens LL e LR; Gramáticas LC Determinísticas sticas; Implementação em Ruby 1
Leia maisFaculdade 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
Leia maisAnálise Sintática II. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 34
Análise Sintática II Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Outubro, 2016 1 / 34 Sumário 1 Introdução 2 Ambiguidade 3 Análise sintática descendente 4
Leia maisReduce: reduz o que está imediatamente à esquerda do foco usando uma produção
Shift e reduce Shift: move o foco uma posição à direita A B C x y z A B C x y z é uma ação shift Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção Se A x y é uma produção, então
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERIDADE DA EIRA INTERIOR Teoria da Computação Eng. Informática 2º emestre Frequência 2 (7 valores) Resolução 30/maio/2017 A. Expressões regulares e autómatos finitos 1. [1.25] Usando o método de eliminação
Leia maisACH2043 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 maisAná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 maisAnálise Sintáctica. Definições: Conjuntos First() e Follow() Compiladores, Aula Nº 19 João M. P. Cardoso. Conjunto First(β)
Análise Sintáctica Compiladores, Aula Nº 19 João M. P. Cardoso 1 Definições: Conjuntos First() e Follow() 2 Notação T é terminal, NT é nãoterminal, S é terminal ou não-terminal, e α e β representam sequências
Leia maisConstruçã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
Leia maisLFA Aula 07. Equivalência entre AFD e AFND. Equivalência entre ER s e AF s Equivalência entre GR s e AF s. Linguagens Formais e Autômatos
LFA Aula 07 Equivalência entre AFD e AFND AFND: uma aplicação busca em textos Equivalência entre ER s e AF s Equivalência entre GR s e AF s Celso Olivete Júnior olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa
Leia maisUniversidade Federal do Rio de Janeiro Departamento de Ciência da Computação
Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação Não são aceitas respostas sem justificativa. Explique tudo o que você fizer. Linguagens Formais o semestre de 999 Primeira Prova
Leia maisAutomata e Linguagens Formais
Automata e Linguagens Formais 6 Prof. Carlos H. C. Ribeiro carlos@ita.br Análise Sintática (Parsing) GLCs ambíguas Grafos de GLCs Estratégias para parsing Exemplos de parsers Análise Sintática (Parsing)
Leia maisTeoria da Computação
e Linguagens Algébricas Teoria da Computação Simão Melo de Sousa Computer Science Department University of Beira Interior, Portugal e Linguagens Algébricas Plano 1 Introduction Contexto 2 Constituição
Leia maisV 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 maisFórmulas da lógica proposicional
Fórmulas da lógica proposicional As variáveis proposicionais p, q, são fórmulas (V P rop ) é fórmula (falso) α e β são fórmulas, então são fórmulas (α β), (α β), (α β) e ( α) DCC-FCUP -TAI -Sistemas Dedutivos
Leia maisComo construir um compilador utilizando ferramentas Java
Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 4 Análise Léxica Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir
Leia maisAnálise Sintática Bottom-up
MAB 471 2011.2 Análise Sintática Bottom-up http://www.dcc.ufrj.br/~fabiom/comp Recapitulando parsers top-down Constróem árvore sintática da raiz até as folhas Recursão à esquerda faz parsers entrarem em
Leia maisLINGUAGENS 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 maisLINGUAGENS 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 maisGramá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
Leia maisLinguagens 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 maisCompiladores. 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
Leia maisLFA 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 maisConcurso 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 maisExemplos de autómatos finitos
Exemplos de utómtos finitos s s 2 reconhece lingugem: {x {, } x termin em e não têm s consecutivos} s s 2 reconhece lingugem {x x {, } e tem como suplvr} Deprtmento de Ciênci de Computdores d FCUP MC Aul
Leia maisSCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha
Linguagem Livre de Contexto Autômato de Pilha Programas SCC-5832 - Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha João Luís Garcia Rosa 1 1 Instituto de Ciências Matemáticas e de Computação
Leia maisLINGUAGEM 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 maisTeoria 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
Leia maisINE5317 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 maisINE5317 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 maisPlano 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 maisGramá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 maisLinguagens 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
Leia maisGramá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 maisSCC-5832: II. Ling. Livres de Contexto e Autômatos de Pilha
SCC-5832 - Capítulo 2 e João Luís Garcia Rosa 1 1 Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos joaoluis@icmc.usp.br 2009 Sumário 1 Lema do Bombeamento para Linguagens
Leia mais2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30
Universidade Federal do ABC Rua Santa Adélia, 166 - Bairro Bangu - Santo André - SP - Brasil CEP 09.210-170 - Telefone/Fax: +55 11 4996-3166 1. CÓDIGO E NOME DA DISCIPLINA MC3106 - LINGUAGENS FORMAIS E
Leia maisCompiladores. 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 maisPropriedades 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
Leia maisDraft-v0.2. Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra
10 Gramáticas Independentes do Contexto Como vimos nos capítulos anteriores, apesar da classe das Linguagens Regulares serem particularmente bem comportadas tanto em termos de complexidade dos seus algoritmos
Leia maisSCC 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
Leia maisAnálise sintática. Questão. E se a análise sintática pudesse ser modelada por autômatos?
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 maisUniversidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação SCC-205 TEORIA DA COMPUTAÇÃO E LINGUAGENS FORMAIS Turma 1 2º. Semestre de 2012 Prof. João Luís
Leia maisLinguagens 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 maisLLC'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
Leia maisLinguagens 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 maisOs movimentos do reconhecedor correspondem ao uso de derivações mais à esquerda; A árvore de sintaxe é montada de cima para baixo (da raiz em direção
Os movimentos do reconhecedor correspondem ao uso de derivações mais à esquerda; A árvore de sintaxe é montada de cima para baixo (da raiz em direção às folhas); Caracteriza a classe das gramáticas (e
Leia maisMáquinas de Turing: uma introdução
Máquinas de Turing: uma introdução Nelma Moreira Armando Matos Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto email: {nam,acm}@ncc.up.pt 1996 Revisão: Maio 2001 1
Leia maisA. (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
Leia maisCapítulo II Gramáticas
Capítulo II Gramáticas II.1 Motivação O que é uma Gramática? Um sistema gerador de linguagens; Um sistema de reescrita; Uma maneira finita de representar uma linguagem; Um dispositivo formal usado para
Leia maisV Teoria de Parsing. Termos Básicos: Parser Analisador Sintático Parsing Analise Sintática Parse Representação da analise efetuada
V Teoria de Parsing Termos Básicos: Parser Analisador Sintático Parsing Analise Sintática Parse Representação da analise efetuada Ascendentes: S + x (* Seq. Invertida Reducao *) dir Exemplo: Descendentes:
Leia mais