Problemas decidíveis para LICs

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

Download "Problemas decidíveis para LICs"

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

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.

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

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

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma

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)

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

Á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

Gramáticas ( [HMU00], Cap. 5.1)

Gramá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 mais

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada.

Autómatos de Pilha. 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 mais

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )

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

Revisões de Conjuntos

Revisõ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 mais

Linguagens recursivamente enumeráveis

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

Modelos de Computação

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

MT como calculadoras de funções parciais

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

Noções de grafos (dirigidos)

Noçõ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 mais

Autómatos determísticos de k-pilhas

Autó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 mais

Linguaguens recursivamente enumeráveis e recursivas

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

Linguaguens recursivamente enumeráveis

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

Computaçã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? 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 mais

Linguagem (formal) de alfabeto Σ

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

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

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1

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

Autómatos finitos não determinísticos (AFND)

Autó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 mais

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ).

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

Compiladores - Análise Ascendente

Compiladores - Análise Ascendente Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,

Leia mais

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

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

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

Compiladores - Análise Ascendente

Compiladores - Análise Ascendente Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,

Leia mais

Marcos Castilho. DInf/UFPR. 21 de março de 2019

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

formais e autómatos Linguagens g recursivas e recursivamente enumeráveis Gramáticas não-restringidas

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

Teoria da Computação

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

Gramáticas e Linguagens independentes de contexto

Gramá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 mais

Alfabeto, Cadeias, Operações e Linguagens

Alfabeto, Cadeias, Operações e Linguagens Linguagens de Programação e Compiladores - Aula 3 1 Alfabeto, Cadeias, Operações e Linguagens 1.Conjuntos Para representar um determinado conjunto é necessário buscar uma notação para representá-lo e ter

Leia mais

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

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

Leia mais

Capítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268

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

Leia mais

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

Modelos de Computação Folha de trabalho n. 10 Modelos de Computação Folha de trabalho n. 10 Nota: Os exercícios obrigatórios marcados de A a D constituem os problemas que devem ser resolvidos individualmente. A resolução em papel deverá ser depositada

Leia mais

Segunda Lista de Exercícios 2004/2...

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

Teoria da Computação Aula - Linguagens e Gramáticas Formais

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

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

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

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO LICENCIATURA EM CIÊNCIAS DA COMPUTAÇÃO TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO José Carlos Costa Dep. Matemática e Aplicações Universidade do Minho Braga, Portugal 31 de Maio de 2010

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

Aula de 28/10/2013. sticas; Implementação. em Ruby

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

Faculdade de Computaçã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

Leia mais

Aná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. 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 mais

Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção

Reduce: 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 mais

UNIVERSIDADE DA BEIRA INTERIOR

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

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

Análise Sintáctica. Definições: Conjuntos First() e Follow() Compiladores, Aula Nº 19 João M. P. Cardoso. Conjunto First(β)

Aná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 mais

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

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

Leia mais

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

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

Automata e Linguagens Formais

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

Teoria da Computação

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

Fórmulas da lógica proposicional

Fó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 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 4 Análise Léxica Prof. Márcio Delamaro delamaro@icmc.usp.br Como construir

Leia mais

Análise Sintática Bottom-up

Análise Sintática Bottom-up MAB 471 2011.2 Análise Sintática Bottom-up http://www.dcc.ufrj.br/~fabiom/comp Recapitulando parsers top-down Constróem árvore sintática da raiz até as folhas Recursão à esquerda faz parsers entrarem em

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

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

Gramáticas e Linguagens Independentes de Contexto

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

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

Compiladores. Top-Down x Bottom Up. Plano da aula. Redução exemplo 1. Redução exemplo 1. Lembrando: construir a tabela de análise LL(1) A Abc b B d

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

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

Exemplos de autómatos finitos

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

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha

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

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

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Pós-Graduação em Ciência da Computação DCC/ICEx/UFMG Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Observações: Pontos

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

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

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

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

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

SCC-5832: II. Ling. Livres de Contexto e Autômatos de Pilha

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

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

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

Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto

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

Leia mais

Draft-v0.2. Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra

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

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

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

Leia mais

Análise sintática. Questão. E se a análise sintática pudesse ser modelada por autômatos?

Aná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 mais

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

LLC's: Lema do Bombeamento e Propriedades de Fechamento

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

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

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

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

Máquinas de Turing: uma introdução

Má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 mais

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

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

Leia mais

Capítulo II Gramáticas

Capí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 mais

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