Gramática Livre de Contexto

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

Download "Gramática Livre de Contexto"

Transcrição

1 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] Árvore de Derivação Prof. Yandre Maldonado - 2 Uma maneira de representar a derivação de uma sentença a partir de uma GLC; Particularmente útil em algumas aplicações, como compiladores; m uma árvore de derivação: A raiz é o símbolo de partida da GLC; Os nós internos são símbolos de V; Os nós folha são símbolos de T (ou λ); Árvore de Derivação Prof. Yandre Maldonado - 3 árvore de derivação para a sentença x+x*x a partir da seguinte GLC; 1) + 2) * 3) () 4) x x+ x+* x+x* x+x*x x + x * x 1

2 Ambigüidade Prof. Yandre Maldonado - 4 Uma sentença é dita ambígua, quando existir pelo menos dois caminhos de derivação para ela; Assim, existe mais do que uma árvore de derivação associada a uma sentença ambígua; Uma gramática é dita ambígua, se ela produzir pelo menos uma sentença de forma ambígua; Ambigüidade 1) + 2) * 3) () 4) x dois caminhos para x+x*x + * Prof. Yandre Maldonado - 5 x x * x x+ x+* x+x* x+x*x x + x * +* x+* x+x* x+x*x x Prof. Yandre Maldonado - 6 É possível simplificar algumas produções de uma GLC sem reduzir o seu poder de geração; Tipos de simplificação: xclusão de símbolos inúteis; xclusão de produções vazias; xclusão de produções da forma A B; 2

3 Prof. Yandre Maldonado - 7 xclusão de símbolos inúteis: Variáveis (não-terminais) ou terminais que não contribuem com a produção de sentenças; tapas: xclusão de símbolos improdutivos; xclusão de símbolos inacessíveis; Prof. Yandre Maldonado - 8 xclusão de símbolos inúteis: É importante por vários motivos m gramáticas grandes, como gramáticas de linguagens de programação, pode acontecer de se esquecer de definir regras relativas a alguma variável, ou então, uma variável, apesar de ter suas regras já definidas, pode não ter sido utilizada na formação de novas regras. XMPLO: Seja a Gramática ({S, A, B, C}, {a, b, c}, P,S} onde P contém as regras: Prof. Yandre Maldonado - 9 1) S AB a 2) B b 3) C c 1) S a C é inútil (não é acessível) A é inútil (não está definido) B é inútil (não usado em palavras da linguagem) liminando-se as variáveis inúteis e as regras que as referenciam, além dos terminais b e c que não ocorrem em nenhuma regra (não são usados para formar palavras da linguagem gerada) tem-se esta regra A Gramática equivalente é dada por ({S}, {a}, S a, S} 3

4 tapa 1: garante que qualquer não terminal gera terminais; Algoritmo: parte de G(V,T,P,S) e dá origem a G 1 (V 1,T,P 1,S); Construção de V 1 : Prof. Yandre Maldonado - 10 V 1 = repita V 1 = V 1 {A A α e α ϵ (T V 1 ) * } até que o cardinal de V 1 não aumente; Conjunto P 1 : P menos as produções cujos não terminais não pertencem a V 1 ; Prof. Yandre Maldonado - 11 Qqr não terminal gera terminal 1) S aaa 2) S bbb 3) A a 4) A S 5) C c 6) B bb 1) S aaa 2) A a 3) A S 4) C c V 1 = repita V 1 = V 1 {A A α e α ϵ (T V 1 ) * } até que o cardinal de V 1 não aumente; iteração início V 1 {A, C} {A, C, S} {A, C, S} tapa 2: garante que qualquer símbolo é atingível a partir do símbolo inicial; Algoritmo: parte de G 1 (V 1,T 1,P 1,S) e dá origem a G 2 (V 2,T 2,P 2,S); Prof. Yandre Maldonado - 12 T 2 = ; V 2 = {S}; repita V 2 = V 2 {A X αaβ ϵ P 1, X ϵ V 2 }; T 2 = T 2 {a X αaβ ϵ P 1, X ϵ V 2 }; até que os cardinais de V 2 e T 2 não aumentem; Conjunto P 2 : P 1 menos as produções cujos símbolos não pertencem a V 2 ou T 2 ; 4

5 Prof. Yandre Maldonado ) S aaa 2) A a 3) A S 4) C c 1) S aaa 2) A a 3) A S T 2 = ; V 2 = {S}; repita V 2 = V 2 {A X αaβ ϵ P 1, X ϵ V 2 }; T 2 = T 2 {a X αaβ ϵ P 1, X ϵ V 2 }; até que os cardinais de V 2 e T 2 não aumentem; iteração início 1 2 variáveis {S} {S, A} {S, A} terminais {a} {a} Prof. Yandre Maldonado - 14 xclusão de produções vazias: Produções vazias são produções da forma A λ; tapas: Variáveis que constituem produções vazias; xclusão das produções vazias; Inclusão da geração da palavra vazia, se necessário; Prof. Yandre Maldonado - 15 tapa 1: conjunto de variáveis que constituem produções vazias; Considera inicialmente todas as variáveis que geram diretamente λ; A seguir, sucessivamente são determinadas as variáveis que indiretamente geram λ; Algoritmo: V λ = { A A λ }; repita V λ = V λ { X X X 1 X n ϵ P X 1,, X n ϵ V λ } até que o cardinal de V λ não aumente; 5

6 Prof. Yandre Maldonado ) S axa 2) S bxb 3) S λ 4) X a 5) X b 6) X Y 7) Y λ V λ = { A A λ }; repita V λ = V λ { X X X 1 X n ϵ P X 1,, X n ϵ V λ } até que o cardinal de V λ não aumente; iteração início 1 2 V λ {S, Y} {S, Y, X} {S, Y, X} tapa 2: conjunto de produções sem produções vazias; Algoritmo: parte de G(V,T,P,S) e dá origem a G 1 (V,T,P 1,S); Prof. Yandre Maldonado - 17 P 1 = {A α α λ}; repita até para toda A αϵp 1 e X ϵ V λ α =α 1 Xα 2 e α 1 α 2 λ faca P 1 = P 1 { A α1α2 } que o cardinal de P 1 não aumente; Prof. Yandre Maldonado ) S axa 2) S bxb 3) S λ 4) X a 5) X b 6) X Y 7) Y λ 1) S axa 2) S bxb 3) S aa 4) S bb 5) X a 6) X b 7) X Y Resultado da etapa 1: V λ = {S, Y, X} iteração inicial 1 2 P 1 = {A α α λ}; repita até produções {S axa bxb, X a b Y} {S axa bxb aa bb, X a b Y} {S axa bxb aa bb, X a b Y} para toda A αϵp 1 e X ϵ V λ α =α 1 Xα 2 e α 1 α 2 λ faca P 1 = P 1 { A α1α2 } que o cardinal de P 1 não aumente; 6

7 Prof. Yandre Maldonado - 19 tapa 3: quando a palavra vazia pertencer à linguagem gerada pela gramática, uma regra do tipo S λ deve ser incluída em P; tapa 1: 1) S axa 2) S bxb 3) S λ 4) X a 5) X b 6) X Y 7) Y λ Resultado: V λ = {S, Y, X} tapa 2: 1) S axa 2) S bxb 3) S aa 4) S bb 5) X a 6) X b 7) X Y tapa 3: 1) S axa 2) S bxb 3) S aa 4) S bb 5) S λ 6) X a 7) X b 8) X Y Note que Y se tornou inútil 1) P APB C 2) A AaaA λ 3) B BBb C 4) C cc λ iteração início 1 V λ {A, C} {A, C, P, B} Prof. Yandre Maldonado ) P APB AB AP PB A B C λ 2) A AaaA aaa Aaa aa 3) B BBb Bb b C 4) C cc c 1) P BPA A 2) A aa λ 3) B Bba λ iteração início 1 V λ {A, B} {A, B, P} Prof. Yandre Maldonado ) P BPA PA BP BA B A λ 2) A aa a 3) B Bba ba 7

8 Prof. Yandre Maldonado - 22 xclusão de produções da forma A B: Produções da forma A B não adicionam informação sintática alguma; tapas: Construção do fecho de cada variável; xclusão das produções da forma A B; tapa 1: construção do fecho de cada variável; Algoritmo: para toda A ϵ V Prof. Yandre Maldonado - 23 faça FCHO-A = { B A B e A *B} usando exclusivamente produções da forma X Y; Prof. Yandre Maldonado ) S axa 2) S bxb 3) X a 4) X b 5) X S 6) X λ para toda A ϵ V faça Fecho-S Fecho-X {S} FCHO-A = { B A B e A *B} usando exclusivamente produções da forma X Y; 8

9 tapa 2: exclusão das produções da forma A B; Algoritmo: parte de G(V,T,P,S) e dá origem a G 1 (V,T,P 1,S); Prof. Yandre Maldonado - 25 P 1 = { A α α V }; para faça toda A ϵ V e B ϵ FCHO-A se B αϵ P e α V então P 1 = P 1 {A α}; Prof. Yandre Maldonado ) S axa 2) S bxb 3) X a 4) X b 5) X S 6) X λ 1) S axa 2) S bxb 3) X a 4) X b 6) X λ 7) X axa 8) X bxb iteração Inicial S X tapa 1: Fecho-S= e Fecho-X={S} produções {S axa bxb, X a b λ} {S axa bxb, X a b λ} {S axa bxb, X a b λ axa bxb} P 1 = { A α α V }; para faça toda A ϵ V e B ϵ FCHO-A se B αϵ P e α V então P 1 = P 1 {A α}; Prof. Yandre Maldonado - 27 Simplificações combinadas: A eliminação de produções vazias pode gerar símbolos inúteis; A eliminação de produções unitárias (X Y) também pode gerar símbolos inúteis; Por isso, em simplificações combinadas recomenda-se a seguinte seqüência: xclusão de Produções Vazias; xclusão de Produções Unitárias; xclusão de Símbolos Inúteis; 9

10 Formas Normais Prof. Yandre Maldonado - 28 As formas normais estabelecem restrições rígidas a formação das regras em uma GLC sem diminuir o poder de representação deste tipo de gramática; Muito utilizadas em algoritmos de reconhecimento, transformações e prova de teoremas; Formas Normais Prof. Yandre Maldonado - 29 As mais conhecidas são: Forma Normal de Chomsky (FNC); (FNG); Na FNC, as regras devem ser da forma: A BC ou A a Na FNG, as regras devem ser da forma: A aα Sendo A, B e C V, a T e α V* Forma Normal de Chomsky Prof. Yandre Maldonado - 30 Chomsky, 1928 As regras devem ser da forma: A BC ou A a O algoritmo é dividido em três etapas: Simplificação da gramática: exclusão de produções vazias e de produções unitárias, opcionalmente pode-se excluir símbolos inúteis; Transformação do lado direito de regras que tenham um comprimento maior ou igual a 2; Transformação do lado direito de regras que tenham um comprimento maior ou igual a 2 em produções com exatamente 2 variáveis; 10

11 Forma Normal de Chomsky Prof. Yandre Maldonado - 31 tapa 1: simplificação da gramática; xcluir produções vazias; xcluir produções unitárias; xcluir símbolos inúteis (opcional); 1) + 2) * 3) () 4) x A gramática já está simplificada. Forma Normal de Chomsky Prof. Yandre Maldonado - 32 tapa 2: transformação do lado direito de regras com tamanho maior ou igual a 2; Faz com que esses lados direitos apresentem apenas não terminais; Algoritmo: parte de G 1 (V 1,T,P 1,S) e dá origem a G 2 (V 2,T,P 2,S); V 2 = V 1 ; P 2 = P 1 ; Para toda A X 1 X 2..X n ϵ P 2 tal que n >= 2 faça se para r ϵ {1,.., n}, X r é terminal então (suponha Xr = a ) V 2 = V 2 {C a }; susbstitui a por C a em 1) + 2) * 3) () 4) x A X 1 X 2 X n ϵ P 2 ; P 2 = P 2 {C a a}; 1) C + 2) C * 3) C ( C ) 4) x 5) C + + 6) C * * 7) C ( ( 8) C ) ) Forma Normal de Chomsky Prof. Yandre Maldonado - 33 tapa 3: transformação do lado direito das produções com tamanho maior ou igual a 3 em produções com exatamente 2 variáveis; Faz com que esses lados direitos apresentem exatamente 2 variáveis; Algoritmo: parte de G 2 (V 2,T,P 2,S) e dá origem a G 3 (V 3,T,P 3,S); V 3 = V 2; P 3 = P 2; Para toda A B 1 B 2..B n ϵ P 3 tal que n >= 3 faça P 3 = P 3 {A B 1 B 2.. B n }; V 3 = V 3 {D 1,, D n-2 }; P 3 = P 3 {A B 1 D 1, D 1 B 2 D 2,, D n-3 B n-2 D n-2, D n-2 B n-1 D n-1 }; 1) C + 2) C * 3) C ( C ) 4) x 5) C + + 6) C * * 7) C ( ( 8) C ) ) 1) D 1 2) D 2 3) C ( D 3 4) x 5) C + + 6) C * * 7) C ( ( 8) C ) ) 9) D 1 C + 10) D 2 C * 11) D 3 C ) 11

12 Forma Normal de Chomsky Prof. Yandre Maldonado - 34 Seja uma GLC G = ({L,S,},{a, (,)}, P, L), onde P consta das regras: 1) L (S) 2) S S λ 3) a L Forma Normal de Chomsky Prof. Yandre Maldonado ) L (S) 2) S S λ 3) a L Observando-se que S é a única variável anulável, tem-se as seguintes regras após a eliminação de regra λ 1) L (S) ( ) 2) S S 3) a L Forma Normal de Chomsky Prof. Yandre Maldonado ) L (S) ( ) 2) S S 3) a L Observando-se os fechos Fecho(L)={} Fecho(S)={,L} Fecho()={L} Obtem-se as seguintes regras após a eliminação de regras unitárias: 1) L (S) ( ) 2) S S a (S) ( ) 3) a (S) ( ) 12

13 Forma Normal de Chomsky 1) L (S) ( ) 2) S S a (S) ( ) 3) a (S) ( ) Substituindo os terminais por variáveis nas regras cujo lado direito é maior ou igual a 2: Prof. Yandre Maldonado ) L C ( SC ) C ( C ) 2) S S a C ( SC ) C ( C ) 3) a C ( SC ) C ( C ) 4) C ( ( 5) C ) ) Forma Normal de Chomsky Prof. Yandre Maldonado ) L C ( SC ) C ( C ) 2) S S a C ( SC ) C ( C ) 3) a C ( SC ) C ( C ) 4) C ( ( 5) C ) ) 1) L C ( D 1 C ( C ) 2) S S a C ( D 1 C ( C ) 3) a C ( D 1 C ( C ) 4) C ( ( 5) C ) ) 6) D 1 SC ) Quebrando as regras com lado direito maior que 2, obtem-se: Forma Normal de Chomsky xercício: Coloque a seguinte gramática na FNC: Prof. Yandre Maldonado - 39 G=(V, T, P, S), onde: V={S, A, B, C} T={a, b, c} P={ S ASCA S ABCA A a B bbb B λ C c } 13

14 Uma GLC G = (V, T, P, S) é dita estar na (FNG) se todas as suas regras são da forma: A aα Sendo A V, a T e α (V T) * Prof. Yandre Maldonado - 40 Greibach??? A maioria dos autores definem α V*, o fato é que a transformação daquela forma para esta, mais restritiva, é trivial. Sheila Greibach, 1939 Prof. Yandre Maldonado - 41 Depois de simplificada, a transformação de uma GLC para FNG envolve as etapas que serão descritas na seqüência: tapa 1: renomeação das variáveis para uma ordem crescente qualquer; As variáveis da gramática são renomeadas em uma ordem crescente qualquer; xemplo: A 1, A 2, A n onde n é um cardinal de V; Diferentes critérios de renomeação podem resultar em diferentes gramáticas na FNG; Nesta etapa, a partir de uma gramática G 1 =(V 1, T 1, P 1, S), obtêm-se a gramática G 2 conforme descrito a seguir: Gramática resultante: G 2 = (V 2, T 1, P 2, S) Prof. Yandre Maldonado - 42 Suponha que o cardinal de V 1 é n Construção de V 2 e P 2 V 2 = { A 1, A 2,, A n } é V 1 renomeando os elementos em uma ordem qualquer Inicialmente, P 2 é P 1 renomeando as variáveis na produção 14

15 Prof. Yandre Maldonado ) S AA 2) S a 3) A b 4) A SS Renomeando as variáveis S e A para A 1 e A 2 respectivamente * Note que a gramática já está simplificada. 1) A 1 A 2 A 2 2) A 1 a 3) A 2 b 4) A 2 A 1 A 1 Prof. Yandre Maldonado - 44 tapa 2: transformação das produções para a forma A r A s α onde r s; Produções são modificadas garantindo que a primeira variável do lado direito é maior ou igual que a do lado esquerdo; A r A s α onde r > s são modificadas; Substitui a variável A s pelas suas respectivas produções; O conjunto de variáveis é finito: existe um limite para as produções crescentes; Prof. Yandre Maldonado ) A 1 A 2 A 2 2) A 1 a 3) A 2 b 4) A 2 A 1 A 1 Substituindo A 1 no lado direito da regra 1) A 1 A 2 A 2 2) A 1 a 3) A 2 b 4) A 2 aa 1 5) A 2 A 2 A 2 A 1 15

16 Prof. Yandre Maldonado - 46 tapa 3: exclusão das recursões da forma A r A r α; Podem existir originalmente na gramática ou serem geradas pela etapa anterior; liminação da recursão à esquerda: introduzindo variáveis auxiliares e incluindo recursão à direita (B r αb r ); Prof. Yandre Maldonado ) A 1 A 2 A 2 2) A 1 a 3) A 2 b 4) A 2 aa 1 5) A 2 A 2 A 2 A 1 1) A 1 A 2 A 2 2) A Introduzindo uma 1 a variável B 2 e incluindo 3) A 2 b recursão a direita 4) A 2 aa 1 5) A 2 bb 2 6) A 2 aa 1 B 2 8) B 2 A 2 A 1 9) B 2 A 2 A 1 B 2 Prof. Yandre Maldonado - 48 tapa 4: garante que o lado direito das produções iniciem com um terminal; Todas as produções da forma A r A s α onde r<s; Consequentemente, as produções da maior variável A n só podem iniciar por terminais no lado direito; Assim, se em A n-1 A n α for substituído A n pelas suas correspondentes produções (ex: A n aβ), o lado direito das produções de A n-1 também iniciará por terminal (ex: A n-1 aβα); A repetição do algoritmo para A n-2,, A 1 resultará em produções exclusivamente da forma A r aα; 16

17 Prof. Yandre Maldonado ) A 1 A 2 A 2 2) A 1 a 3) A 2 b 4) A 2 aa 1 5) A 2 bb 2 6) A 2 aa 1 B 2 8) B 2 A 2 A 1 9) B 2 A 2 A 1 B 2 Substituindo as variáveis no início dos lados direitos 1) A 1 ba 2 2) A 1 aa 1 A 2 3) A 1 bb 2 A 2 4) A 1 aa 1 B 2 A 2 5) A 1 a 6) A 2 b 7) A 2 aa 1 8) A 2 bb 2 9) A 2 aa 1 B 2 10) B 2 ba 1 11) B 2 aa 1 A 1 12) B 2 bb 2 A 1 13) B 2 aa 1 B 2 A 1 14) B 2 ba 1 B 2 15) B 2 aa 1 A 1 B 2 16) B 2 bb 2 A 1 B 2 17) B 2 aa 1 B 2 A 1 B 2 Prof. Yandre Maldonado - 50 Algoritmo das etapas 2 e 3: Gramática resultante G 3 = (V 3, T 1, P 3, S) Suponha que o cardinal de V 2 é n P 3 = P 2 para r variando de 1 até n faça para s variando de 1 até r-1 faça para toda A r A s α P 3 faça excluir A r A s α de P 3 ; para toda A s β P 3 faça P 3 = P 3 { A r βα} para toda A r A r α P 3 faça excluir A r A r α de P 3 ; V 3 = V 3 {B r } P 3 = P 3 {B r α} {B r αb r } para toda A r Φ P 3 tq Φ não inicia por A r e alguma A r A r α foi excluída faça P 3 = P 3 { A r ΦB r }; Garante variável da esquerda menor ou igual a da direita limina recursão a esquerda Algoritmo da etapa 4: Gramática resultante G 4 = (V 3, T 1, P 4, S) Construção de P 4 Prof. Yandre Maldonado - 51 P 4 = P 3 ; para r variando de n-1 até 1 e toda A r A s α P 4 faça excluir A r A s α de P 4 ; para toda A s β de P 4 faça P 4 = P 4 {A r βα}; para toda B r A s β r faça excluir B r A s β r de P 4 para toda A s aα faça P 4 = P 4 { B r aαβ r }; Também é necessário garantir que as produções relativas às variáveis auxiliares B r iniciam por um terminal do lado direito. 17

18 xercício: transforme a seguinte GLC para FNG; Prof. Yandre Maldonado - 52 S AB SCB SB bb b A aa a cc c B bb b C cc c A 1 A 2 A 3 A 1 A 4 A 3 A 1 A 3 ba 3 b A 2 aa 2 a ca 4 c A 3 ba 3 b A 4 ca 4 c Renomeando as variáveis (tapa 1) A produções já estão na forma A r A s α onde r s (tapa 2) xercício (continuação): Prof. Yandre Maldonado - 53 A 1 A 2 A 3 A 1 A 4 A 3 A 1 A 3 ba 3 b A 2 aa 2 a ca 4 c A 3 ba 3 b A 4 ca 4 c A 1 A 2 A 3 ba 3 b A 2 A 3 B 1 ba 3 B 1 bb 1 A 2 aa 2 a ca 4 c A 3 ba 3 b A 4 ca 4 c B 1 A 4 A 3 A 3 A 4 A 3 B 1 A 3 B 1 liminando recursão a esquerda: A r A r α (tapa 3) xercício (continuação): Prof. Yandre Maldonado - 54 A 1 A 2 A 3 ba 3 b A 2 A 3 B 1 ba 3 B 1 bb 1 A 2 aa 2 a ca 4 c A 3 ba 3 b A 4 ca 4 c B 1 A 4 A 3 A 3 A 4 A 3 B 1 A 3 B 1 Garantindo que todo lado direito inicie com terminal (tapa 4) A 1 aa 2 A 3 aa 3 ca 4 A 3 ca 3 ba 3 b aa 2 A 3 B 1 aa 3 B 1 ca 4 A 3 B 1 ca 3 B 1 ba 3 B 1 bb 1 A 2 aa 2 a ca 4 c A 3 ba 3 b A 4 ca 4 c B 1 ca 4 A 3 ca 3 ba 3 b ca 4 A 3 B 1 ca 3 B 1 ba 3 B 1 bb 1 18

19 Bibliografia Prof. Yandre Maldonado - 55 MNZS, Paulo Blauth. Linguagens Formais e Autômatos. Porto Alegre: ditora Sagra-Luzzatto, 1998; DLAMARO, Márcio duardo. Linguagens Formais e Autômatos. UM, 1998; VIIRA, Newton José. Introdução aos Fundamentos da Computação. São Paulo: ditora Thomson Learning,

Linguagens Formais e Autômatos P. Blauth Menezes

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

Leia mais

Se o símbolo inicial não fizer parte do conjunto de símbolos férteis, a linguagem gerada pela gramática é vazia.

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

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

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

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

Leia mais

Gramática. Gramática. 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

Leia mais

Linguagens Livres de Contexto

Linguagens Livres de Contexto Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011

Leia mais

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

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

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

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

Leia mais

Análise Sintática. Fabiano Baldo

Análise Sintática. Fabiano Baldo Compiladores Análise Sintática Fabiano Baldo Gramáticas Livre de Contexto (GLC) É utilizada na especificação formal lda sintaxe de uma linguagem de programação. É um conjunto de produções ou regras gramaticais

Leia mais

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Introdução Problema: definir um conjunto de cadeias de símbolos; Prof. Yandre Maldonado - 2 Exemplo: conjunto

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

Linguagens Formais e Autômatos P. Blauth Menezes

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

Leia mais

Gramáticas Livres de Contexto Parte 1

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

Leia mais

Apostila 03 Linguagens Livres de Contexto

Apostila 03 Linguagens Livres de Contexto Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

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

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

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

Matemática Discreta para Ciência da Computação

Matemática Discreta para Ciência da Computação Matemática Discreta para Ciência da Computação P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação

Leia mais

Apostila 03 - Linguagens Livres de Contexto Exercícios

Apostila 03 - Linguagens Livres de Contexto Exercícios Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

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

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

Leia mais

Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Regulares. Prof. Daniel Oliveira Linguagens Regulares Prof. Daniel Oliveira Linguagens Regulares Linguagens Regulares ou Tipo 3 Hierarquia de Chomsky Linguagens Regulares Aborda-se os seguintes formalismos: Autômatos Finitos Expressões

Leia mais

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

COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise sintática Parte 02 Prof. [email protected] Data Conteúdo 23/09/2013 3. Análise Sintática: 3.1 analisadores

Leia mais

Hierarquia de Chomsky Exemplos de gramáticas

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

Leia mais

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ. Linguagens O conceito de linguagem engloba uma variedade de categorias distintas de linguagens: linguagens naturais, linguagens de programação, linguagens matemáticas, etc. Uma definição geral de linguagem

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 [email protected] www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Classes Gramaticais Linguagens

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 6 Análise Sintática Prof. Márcio Delamaro [email protected] Como construir

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

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

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos Linguagens Formais e Autômatos Conversão de Expressões Regulares (ER) para Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Introdução A construção sistemática de um Autômato Finito para

Leia mais

Construção de Compiladores

Construção de Compiladores Construção de Compiladores Parte 1 Introdução Linguagens e Gramáticas F.A. Vanini IC Unicamp Klais Soluções Motivação Porque compiladores? São ferramentas fundamentais no processo de desenvolvimento de

Leia mais

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

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

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

Leia mais

Analisadores Sintáticos LR

Analisadores Sintáticos LR FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 7º Periodo Disciplina: Compiladores Prof. Erinaldo Sanches Nascimento Analisadores Sintáticos LR SLR LR Canônicos LALR Analisadores

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

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

Leia mais

LINGUAGENS FORMAIS: Teoria, Modelagem e Implementação. Material adicional, versão do dia 22 de novembro de 2017 às 17:24

LINGUAGENS FORMAIS: Teoria, Modelagem e Implementação. Material adicional, versão do dia 22 de novembro de 2017 às 17:24 LINGUAGENS FORMAIS: Teoria, Modelagem e Implementação Material adicional, versão do dia 22 de novembro de 2017 às 17:24 1. Página 32, imediatamente depois do Exemplo 1.8: A teoria de conjuntos apresentada

Leia mais

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

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

Expressões Regulares e Gramáticas Regulares

Expressões Regulares e Gramáticas Regulares Universidade Católica de Pelotas Escola de informática 053212 Linguagens Formais e Autômatos TEXTO 2 Expressões Regulares e Gramáticas Regulares Prof. Luiz A M Palazzo Março de 2007 Definição de Expressão

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula 2 BNF e Grafo Sintático Prof. Márcio Delamaro [email protected] Como construir

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

Capítulo 3: Gramáticas

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

Leia mais

Fundamentos da Teoria da Computação

Fundamentos da Teoria da Computação Fundamentos da Teoria da Computação Primeira Lista de Exercícios - Aula sobre dúvidas da lista Sérgio Mariano Dias 1 1 UFMG/ICEx/DCC Entrega da 1 a lista: 31/03/2009 Sérgio Mariano Dias (UFMG) Fundamentos

Leia mais

Análise Sintática Introdução

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

Leia mais

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Conceitos Básicos Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto.

Leia mais

Linguagens Formais e Autômatos (LFA)

Linguagens Formais e Autômatos (LFA) Linguagens Formais e Autômatos (LFA) Aula de 28/08/2013 Sobre as respostas das duplas aos exercícios cios propostos 1 Fatos extraídos dos scores das duplas Tempo médio de resposta - A série inteira de

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

Compiladores - Gramáticas

Compiladores - Gramáticas Compiladores - Gramáticas Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Sintática A análise sintática agrupa os tokens em uma árvore sintática de acordo com a estrutura do programa

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Teoria da Computação Ciência da Computação

Leia mais

Dedução Natural e Sistema Axiomático Pa(Capítulo 6)

Dedução Natural e Sistema Axiomático Pa(Capítulo 6) Dedução Natural e Sistema Axiomático Pa(Capítulo 6) LÓGICA APLICADA A COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Dedução Natural 3. Sistemas axiomático Pa 4. Lista

Leia mais

Linguagens livres de contexto e autômatos de pilha

Linguagens livres de contexto e autômatos de pilha Capítulo 6: Linguagens livres de contexto e autômatos de pilha José Lucas Rangel, maio 1999 6.1 - Introdução. Os aceitadores, ou reconhecedores, das linguagens livres de contexto são os chamados autômatos

Leia mais

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e

Leia mais

CAPÍTULO 6 SIMPLIFICAÇÃO DE GRAMÁTICAS LIVRES DE CONTEXTO E FORMAS NORMAIS

CAPÍTULO 6 SIMPLIFICAÇÃO DE GRAMÁTICAS LIVRES DE CONTEXTO E FORMAS NORMAIS CAPÍTULO 6 SIMPLIFICAÇÃO DE GRAMÁTICAS LIVRES DE CONTEXTO E FORMAS NORMAIS 6.1 Introdução 215 6.2 Métodos para transformar gramáticas 215 6.2.1 Eliminação do carácter 216 6.2.2 Uma regra geral para substituir

Leia mais

Análise Sintática II: Analisadores Descendentes Preditivos

Análise Sintática II: Analisadores Descendentes Preditivos Análise Sintática II: Analisadores Descendentes Preditivos Exercícios LL(1) = Left to right, Left-most derivation, 1 símbolo look-ahead 1. LL(1): definição 2. Para toda produção A -> α β Se β =>* λ, então

Leia mais

Parsing Preditivo. Antes de ser abordado o Parsing Preditivo, será apresentado o Analisador Sintático Descendente Recursivo.

Parsing Preditivo. Antes de ser abordado o Parsing Preditivo, será apresentado o Analisador Sintático Descendente Recursivo. UPE Caruaru Sistemas de Informação Disciplina: Compiladores Prof.: Paulemir G. Campos Parsing Preditivo Antes de ser abordado o Parsing Preditivo, será apresentado o Analisador Sintático Descendente Recursivo.

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

Compiladores. A seção das regras. Especificação (F)lex. Plano da aula. Escolha das regras. Compilação típica com FLEX

Compiladores. A seção das regras. Especificação (F)lex. Plano da aula. Escolha das regras. Compilação típica com FLEX Compilação típica com FLX Compiladores Análise sintática (1) Noções sobre Gramáticas Livres de conteto dição do teto de especificação No arquivo minhas_regras.l 3 partes: Declarações Regras (Rs -> Ação)

Leia mais

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 02 Introdução à Teoria da Computação Prof.ª Danielle Casillo Linguagem: é uma forma precisa de expressar

Leia mais

Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos

Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos. Teoria dos Conjuntos Pode-se dizer que a é em grande parte trabalho de um único matemático: Georg Cantor (1845-1918). noção de conjunto não é suscetível de definição precisa a partir d noções mais simples, ou seja, é uma noção

Leia mais

Expressões regulares

Expressões regulares Expressões regulares 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 / 38 Frase do dia A vida é uma luta inteira

Leia mais

I.2 Introdução a Teoria da Computação

I.2 Introdução a Teoria da Computação I.2 Introdução a Teoria da Computação O que é? Fundamento da Ciência da Computação Tratamento Matemático da Ciência da Computação Estudo Matemático da Transformação da Informação Qual sua importância?

Leia mais

Linguagens Formais e Autômatos. Conceitos Básicos Prof. Anderson Belgamo

Linguagens Formais e Autômatos. Conceitos Básicos Prof. Anderson Belgamo Linguagens Formais e Autômatos Conceitos Básicos Prof. Anderson Belgamo Introdução Teoria das Linguagens Formais Originariamente desenvolvida na década de 1950. Objetivo inicial: desenvolver teorias relacionadas

Leia mais

Autômato com Pilha. Autômato com Pilha. Autômato com Pilha

Autômato com Pilha. Autômato com Pilha. Autômato com Pilha UNIVEIDDE ETDUL DE MINGÁ DEPTMENTO DE INFOMÁTI utômato com Pilha Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da osta utômato com Pilha Prof. Yandre Maldonado - 2 utômato com Pilha - P ão

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)

Leia mais

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Máquina de Turing Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Teoria da Computação Ciência da Computação

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

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

Terceira 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 Terceira Lista de Exercícios 2004/2

Leia mais

Construção de Compiladores Aula 3 - Analisador Sintático

Construção de Compiladores Aula 3 - Analisador Sintático Construção de Compiladores Aula 3 - Analisador Sintático Bruno Müller Junior Departamento de Informática UFPR 20 de Agosto de 2014 Definição A análise sintática (parsing) é um processo que verifica se

Leia mais

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

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

Leia mais

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

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior.

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior. LFA Aula 08 Minimização de AFD Autômatos Finitos com saídas 25/01/2017 Celso Olivete Júnior [email protected] www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Na aula de hoje Minimização de autômatos finitos

Leia mais

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: [email protected]

Leia mais

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Análise Léxica A primeira fase da compilação Recebe os caracteres de entrada do programa e os converte em um fluxo de

Leia mais

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Capítulo 6. Autômatos com Pilha 6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto Nos exemplos da seção anterior, vimos que os autômatos com pilha existem para

Leia mais

Lista de Exercícios Definição de gramáticas e Autômatos Finitos Determinísticos

Lista de Exercícios Definição de gramáticas e Autômatos Finitos Determinísticos Lista de Exercícios Definição de gramáticas e Autômatos Finitos Determinísticos Uma das formas de se especificar a gramática de uma linguagem de programação é utilizar a Backus-Naur Form (BNF Ingerman

Leia mais

Definições Exemplos de gramáticas

Definições Exemplos de gramáticas Definições Exemplos de gramáticas 1 Gramáticas Conceito introduzido pela lingüística Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Fracasso da tradução por volta dos anos

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

Leia mais

a n Sistemas de Estados Finitos AF Determinísticos

a n Sistemas de Estados Finitos AF Determinísticos a n Sistemas de Estados Finitos AF Determinísticos 1 Relembrando Uma representação finita de uma linguagem L qualquer pode ser: 1. Um conjunto finito de cadeias (se L for finita); 2. Uma expressão de um

Leia mais

Linguagens Formais e Autómatos

Linguagens Formais e Autómatos Parte teórica - Duração: 5 min Nome Número Atenção: Responda às perguntas na folha do enunciado ndique o seu número e nome A prova é sem consulta Cada resposta errada terá uma cotação negativa de 2/3 do

Leia mais

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema Conceitos Básicos Vocabulário Cadeias Linguagens Problema Alfabeto ou Vocabulário: Conjunto finito não vazio de símbolos. Símbolo é um elemento qualquer de um alfabeto. Ex: {A,B,C,.Z} alfabeto latino (maiúsculas)

Leia mais

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 UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO (Bacharelado) TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

Leia mais

INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC URL:

INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC   URL: INE5317 Linguagens Formais e Compiladores Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: [email protected] URL: www.inf.ufsc.br/~silveira Plano de Ensino OBJETIVO GERAL: Estudar a teoria das linguagens

Leia mais

Capítulo 1: Alfabetos, cadeias, linguagens

Capítulo 1: Alfabetos, cadeias, linguagens Capítulo 1: Alfabetos, cadeias, linguagens Símbolos e alfabetos. Um alfabeto é, para os nossos fins, um conjunto finito não vazio cujos elementos são chamados de símbolos. Dessa maneira, os conceitos de

Leia mais

Introdução à Programação

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

Leia mais

Linguagens Formais e Autômatos P. Blauth Menezes

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

Leia mais

Linguagens e Programação Automátos Finitos. Paulo Proença

Linguagens e Programação Automátos Finitos. Paulo Proença Linguagens e Programação Automátos Finitos Autómatos finitos Formalismo, que permite representar de uma forma clara, um qualquer processo composto por um conjunto de estados e transições entre esses estados.

Leia mais

Análise sintática. Análise sintática. Top-down ou descendente. Com retrocesso: por tentativa e erro. Preditiva: para gramáticas LL(1) 09/04/2012

Análise sintática. Análise sintática. Top-down ou descendente. Com retrocesso: por tentativa e erro. Preditiva: para gramáticas LL(1) 09/04/2012 Análise sintática Função, interação com o compilador Análise descendente e ascendente Especificação e reconhecimento de cadeias de tokens válidas Implementação Tratamento de erros Prof. Thiago A. S. Pardo

Leia mais

Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária. Gramática Livre de Contexto

Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária. Gramática Livre de Contexto LFA - PARTE 2 Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária João Luís Garcia Rosa LFA-FEC-PUC-Campinas 2002 R. Gregory Taylor: http://starbase.cs.trincoll.edu/~rtaylor/thcomp/

Leia mais

Compiladores - Gramáticas

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

Leia mais

Aula 7: Autômatos com Pilha

Aula 7: Autômatos com Pilha Teoria da Computação Segundo Semestre, 2014 Aula 7: Autômatos com Pilha DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos adicionar um memória do tipo pilha ao nossos autômatos para que seja possível aceitar

Leia mais

Prova 1 de INF1626 Linguagens Formais e Autômatos

Prova 1 de INF1626 Linguagens Formais e Autômatos Prova 1 de INF1626 Linguagens Formais e Autômatos Guia de correção proposto pelos professores (Clarisse e Bruno) Algumas das questões a seguir admitem várias respostas corretas. Este documento apenas dá

Leia mais