Linguagens Formais e Autômatos P. Blauth Menezes
|
|
|
- Rayssa Galvão Freire
- 9 Há anos
- Visualizações:
Transcrição
1 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
2 Linguagens Formais e Autômatos P. Blauth Menezes 1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 9 Hierarquia de Classes e Linguagens e Conclusões Linguagens Formais e Autômatos - P. Blauth Menezes 2
3 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 3
4 6 Linguagens Livres do Contexto Linguagens Formais e Autômatos - P. Blauth Menezes 4
5 6 Linguagens Livres do Contexto Estudo da Classe das Linguagens Livres do Contexto ou Tipo 2 é de fundamental importância universo mais amplo de linguagens comparativamente com as LR trata, adequadamente, questões típicas de linguagens de programação parênteses balanceados construções bloco-estruturadas, etc. Algoritmos reconhecedores e geradores relativamente simples eficiência razoável Linguagens Formais e Autômatos - P. Blauth Menezes 5
6 Aplicações típicas centradas em linguagens artificiais em especial, nas linguagens de programação analisadores sintáticos tradutores de linguagens processadores de texto em geral Hierarquia de Chomsky Classe das Linguagens Livres do Contexto contém propriamente a Classe das Linguagens Regulares Entretanto, é uma classe relativamente restrita fácil definir linguagens que não pertencem a esta classe Linguagens Formais e Autômatos - P. Blauth Menezes 6
7 Abordagens Gramática Livre do Contexto (axiomático ou gerador) restrições na forma das regras de produção mais livre que na gramática regular Autômato com Pilha (operacional ou reconhecedor) análogo ao autômato finito não-determinístico adicionalmente: memória auxiliar tipo pilha pode ser lida ou gravada Linguagens Formais e Autômatos - P. Blauth Menezes 7
8 Relativamente às GLC Árvore de derivação representa a derivação de uma palavra na forma de árvore parte do símbolo inicial como a raiz termina em símbolos terminais como folhas Gramática Ambígua pelo menos uma palavra com duas ou mais árvores de derivação Simplificação de Gramática (produções) sem reduzir o poder de geração Forma Normal: restrições rígidas na forma das produções sem reduzir o poder de geração da gramática Linguagens Formais e Autômatos - P. Blauth Menezes 8
9 Autômato com pilha construído a partir de uma GLC construção de um reconhecedor a partir de sua gramática simples e imediata estrutura de pilha é suficiente como única memória pode ser reconhecida por autômato com pilha com um estado estados não são necessários para "memorizar" o passado Linguagens Formais e Autômatos - P. Blauth Menezes 9
10 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 10
11 6.1 Gramática Livre do Contexto Def: Gramática Livre do Contexto (GLC) G = (V, T, P, S) qualquer regra de produção é da forma A α A é variável de V α é palavra de (V T)* lado esquerdo = uma variável Linguagens Formais e Autômatos - P. Blauth Menezes 11
12 Def: Linguagem Livre do Contexto (LLC) ou Tipo 2 Linguagem gerada pela gramática livre do contexto G GERA(G) = { w T* S + w } Portanto, é livre do contexto qualquer linguagem regular Linguagens Formais e Autômatos - P. Blauth Menezes 12
13 Relação entre as classes de linguagens estudadas Universo de Todas as Linguagens Linguagens Livre do Contexto Linguagens Regulares Linguagens Formais e Autômatos - P. Blauth Menezes 13
14 "Livre do contexto"??? mais geral classe de linguagens cuja produção é da forma A α em uma derivação, a variável A deriva α sem depender ("livre") de qualquer análise dos símbolos que antecedem ou sucedem A (o "contexto") na palavra que está sendo derivada Linguagens Formais e Autômatos - P. Blauth Menezes 14
15 Exp: GLC: Duplo Balanceamento G 1 = ({ S }, { a, b }, P 1, S) P 1 = { S asb S ε } GERA(G 1 ) = L 1 Derivação da palavra aabb L 1 = { a n b n n 0 } S asb aasbb aaεbb = aabb Linguagens Formais e Autômatos - P. Blauth Menezes 15
16 Importante: Duplo Balanceamento analogia com estruturas de duplo balanceamento em linguagens de programação linguagens bloco-estruturadas begin n end n e similares linguagens com parênteses balanceados ( n ) n Linguagens Formais e Autômatos - P. Blauth Menezes 16
17 Exp: GLC: Expressões Aritméticas L 2 - expressões aritméticas com colchetes balanceados, dois operadores e um operando G 2 = ({ E }, { +,, [, ], x }, P 2, E) P 2 = { E E+E E E [E] x } Derivação da expressão [x+x] x E E E [E] E [E+E] E [x+e] E [x+x] E [x+x] x existe outra seqüência de derivação? Quantas? quais produções controlam o duplo balanceamento de parênteses? Linguagens Formais e Autômatos - P. Blauth Menezes 17
18 Obs: BNF: Backus Naur Form Maneira usual de representar uma GLC variáveis palavras delimitadas pelos símbolos e terminais palavras não-delimitadas representação de uma regra de produção A α A ::= α Linguagens Formais e Autômatos - P. Blauth Menezes 18
19 Exp: BNF: Identificador em Pascal A variável identificador é o símbolo inicial identificador ::= letra identificador letra identificador dígito letra ::= a b z dígito ::= Linguagens Formais e Autômatos - P. Blauth Menezes 19
20 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 20
21 6.2 Árvore de Derivação Derivação de palavras na forma de árvore partindo do símbolo inicial como a raiz terminando em símbolos terminais como folhas Conveniente em muitas aplicações Compiladores processadores de textos Linguagens Formais e Autômatos - P. Blauth Menezes 21
22 Def: Árvore de Derivação Raiz: símbolo inicial Vértices interiores: variáveis se A é um vértice interior e X 1, X 2,,X n são os "filhos" de A A X 1 X 2 X n é uma produção da gramática X 1, X 2,,X n são ordenados da esquerda para a direita Vértice folha ou folha: terminal ou o símbolo vazio se vazio: único filho de seu pai (A ε) raiz S vértice interior A A... a X 1 X 2... X n ε folhas Linguagens Formais e Autômatos - P. Blauth Menezes 22
23 Exp: Árvore de Derivação: aabb e [x+x] x S E a S b E E a S b [ E ] x ε E + E x x Uma árvore de derivação pode representar derivações distintas de uma mesma palavra Linguagens Formais e Autômatos - P. Blauth Menezes 23
24 Exp: Árvore de Derivação Derivações: x+x x E E+E x+e x+e E x+x E x+x x E E+E E+E E E+E x E+x x x+x x E E+E E+E E x+e E x+x E x+x x etc mais a esquerda mais a direita E E + E x E E x x Linguagens Formais e Autômatos - P. Blauth Menezes 24
25 Def: Derivação mais à Esquerda (Direita) Seqüência de produções aplicada sempre à variável mais à esquerda (direita) da palavra Exp: Derivação mais à Esquerda (Direita): x+x x E E+E x+e x+e E x+x E x+x x E E+E E+E E E+E x E+x x x+x x E mais a esquerda mais a direita E + E x E E x x Linguagens Formais e Autômatos - P. Blauth Menezes 25
26 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 26
27 6.3 GLC Ambígua Gramática ambígua uma palavra associada a duas ou mais árvores de derivação Pode ser desejável que a gramática usada seja nãoambígua desenvolvimento e otimização de alguns algoritmos de reconhecimento Nem sempre é possível eliminar ambigüidades é fácil definir linguagens para as quais qualquer GLC é ambígua Linguagens Formais e Autômatos - P. Blauth Menezes 27
28 Linguagens Formais e Autômatos - P. Blauth Menezes 28 Def: Gramática (Livre do Contexto) Ambígua Existe pelo menos uma palavra que possui duas ou mais árvores de derivação Exp: Gramática Ambígua: x+x x E E E E E x x + x E E E E E x x + x
29 Mais de uma derivação à esquerda (direita) x+x x Derivação mais à esquerda E E+E x+e x+e E x+x E x+x x E E E E+E E x+e E x+x E x+x x Derivação mais à direita E E+E E+E E E+E x E+x x x+x x E E E E x E+E x E+x x x+x x Linguagens Formais e Autômatos - P. Blauth Menezes 29
30 Forma equivalente de definir gramática ambígua existe pelo menos uma palavra com duas ou mais derivações mais à esquerda alternativamente, mais à direita Teorema: Gramática Ambígua Uma GLC é uma Gramática Ambígua se existe pelo menos uma palavra duas ou mais derivações mais à esquerda ou duas ou mais derivações mais à direita Linguagens Formais e Autômatos - P. Blauth Menezes 30
31 Def: Linguagem Inerentemente Ambígua Qualquer GLC é ambígua Exp: Linguagem Inerentemente Ambígua { w w = a n b n c m d m ou w = a n b m c m d n, n 1, m 1 } Linguagens Formais e Autômatos - P. Blauth Menezes 31
32 Exp: Linguagem Inerentemente Ambígua: contraexemplo Expressões aritméticas é não-ambígua (exercício) Correto entendimento da solução é especialmente importante justifica a maneira aparentemente estranha de definir expressões na maioria das gramáticas das linguagens de programação Linguagens Formais e Autômatos - P. Blauth Menezes 32
33 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto Símbolos Inúteis Produções Vazias Produções que Substituem Variáveis Simplificações Combinadas 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 33
34 6.4 Simplificação de GLC Simplificação de alguns tipos de produções sem reduzir o poder de geração das GLC Simplificações são importantes construção e otimização de algoritmos demonstração de teoremas Linguagens Formais e Autômatos - P. Blauth Menezes 34
35 Simplificações Símbolos inúteis exclusão de variáveis ou terminais não-usados Produções vazias, da forma A ε se ε pertence à linguagem: incluída produção vazia específica Produções que substituem variáveis, da forma A B substituem uma variável por outra não adicionam informação de geração de palavras Provas omitidas algoritmos de simplificação atingem os objetivos propostos Linguagens Formais e Autômatos - P. Blauth Menezes 35
36 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto Símbolos Inúteis Produções Vazias Produções que Substituem Variáveis Simplificações Combinadas 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 36
37 6.4.1 Símbolos Inúteis Símbolos inúteis símbolos não-usados na geração de palavras de terminais Simplificação exclui produções que fazem referência a esses símbolos os próprios símbolos inúteis não é necessária qualquer modificação adicional Linguagens Formais e Autômatos - P. Blauth Menezes 37
38 Algoritmo Etapa 1: qualquer variável gera terminais restringe o conjunto de variáveis considera todas as variáveis que geram terminais diretamente (exemplo: A a) adiciona, sucessivamente, variáveis que geram terminais indiretamente (exemplo: B Ab) Etapa 2: qualquer símbolo é atingível a partir do símbolo inicial analisa as produções da gramática a partir do símbolo inicial considera exclusivamente o símbolo inicial sucessivamente as produções da gramática são aplicadas: símbolos referenciados são adicionados aos novos conjuntos Linguagens Formais e Autômatos - P. Blauth Menezes 38
39 Def: Algoritmo: Exclusão dos Símbolos Inúteis G = (V, T, P, S) GLC Etapa 1: qualquer variável gera terminais. Gramática resultante construção de V 1 V G 1 = (V 1, T, P 1, S) V 1 = ; repita V 1 = V 1 { A A α P e α (T V 1 )* } até que o cardinal de V 1 não aumente; P 1 possui os mesmos elementos que P, excetuando-se produções cujas variáveis não pertencem a V 1 Linguagens Formais e Autômatos - P. Blauth Menezes 39
40 Etapa 2: qualquer símbolo é atingível a partir do símbolo inicial Gramática resultante G 2 = (V 2, T 2, P 2, 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; P 2 possui os mesmos elementos que P 1, excetuando-se produções cujos símbolos não pertencem a V 2 ou T 2 Linguagens Formais e Autômatos - P. Blauth Menezes 40
41 Se as etapas forem executadas em ordem inversa (Etapa 2 antes da Etapa 1) pode não atingir o resultado esperado demonstração: apresentar um contra-exemplo (exercício) Linguagens Formais e Autômatos - P. Blauth Menezes 41
42 Exp: Exclusão dos Símbolos Inúteis G = ({ S, A, B, C }, { a, b, c }, P, S) P = { S aaa bbb, A a S, C c } Etapa 1: qualquer variável gera terminais Iteração Variáveis início 1 { A, C } 2 { A, C, S } 3 { A, C, S } S bbb é excluída: B não pertence ao novo conjunto de variáveis Linguagens Formais e Autômatos - P. Blauth Menezes 42
43 gramática resultante da etapa 1 G 1 = ({ A, C, S }, { a }, { S aaa, A a S, C c }, S) Etapa 2: qualquer símbolo é atingível a partir do símbolo inicial Iteração Variáveis Terminais início { S } 1 { S, A } { a } 2 { S, A } { a } C c é excluída: C e c não pertencem aos novos conjuntos gramática resultante da etapa 2 G 2 = ({ S, A }, { a }, { S aaa, A a S }, S) Linguagens Formais e Autômatos - P. Blauth Menezes 43
44 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto Símbolos Inúteis Produções Vazias Produções que Substituem Variáveis Simplificações Combinadas 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 44
45 6.4.2 Produções Vazias Exclusão de produções vazias (da forma A ε) pode determinar modificações diversas nas produções Algoritmo Etapa 1: variáveis que constituem produções vazias A ε: variáveis que geram diretamente ε B A: sucessivamente, variáveis que indiretamente geram ε Etapa 2: exclusão de produções vazias considera apenas as produções não-vazias cada produção cujo lado direito possui uma variável que gera ε, determina uma produção adicional, sem essa variável Etapa 3: geração da palavra vazia, se necessário Linguagens Formais e Autômatos - P. Blauth Menezes 45
46 Def: Algoritmo: Exclusão das Produções Vazias G = (V, T, P, S) GLC Etapa 1: variáveis que constituem produções vazias Vε, conjunto das variáveis que geram ε Vε = { A A ε }; repita Vε = Vε { X X X 1 X n P tal que X 1,, X n Vε } até que o cardinal de Vε não aumente; Linguagens Formais e Autômatos - P. Blauth Menezes 46
47 Etapa 2: exclusão de produções vazias Gramática resultante construção de P 1 G 1 = (V, T, P 1, S) P 1 = { A α α ε }; repita para toda A α P 1, X Vε tal que α = α 1 X α 2, α 1 α 2 ε faça P 1 = P 1 { A α 1 α 2 } até que o cardinal de P 1 não aumente; Linguagens Formais e Autômatos - P. Blauth Menezes 47
48 Etapa 3: geração da palavra vazia, se necessário se ε pertence à linguagem introduz a produção S ε gramática resultante G 2 = (V, T, P 2, S) P 2 = P 1 { S ε } Linguagens Formais e Autômatos - P. Blauth Menezes 48
49 Exp: Exclusão das Produções Vazias G = ({ S, X, Y }, { a, b }, P, S) P = { S axa bxb ε, X a b Y, Y ε } Etapa 1: variáveis que constituem produções vazia Iteração Vε início { S, Y } 1 { S, Y, X } 2 { S, Y, X } Linguagens Formais e Autômatos - P. Blauth Menezes 49
50 Etapa 2: exclusão de produções vazias Iteração Produções início { S axa bxb, X a b Y } 1 { S axa bxb aa bb, X a b Y } 2 { S axa bxb aa bb, X a b Y } Gramática resultante G 1 = ({ S, X, Y }, { a, b }, { S axa bxb aa bb, X a b Y }, S) Etapa 3: geração da palavra vazia, se necessário. palavra vazia pertence à linguagem: S ε é incluída Linguagens Formais e Autômatos - P. Blauth Menezes 50
51 Gramática resultante G 2 = ({ S, X, Y }, P 2, S) P 2 = { a, b }, { S axa bxb aa bb ε, X a b Y } Observe Y, originalmente um símbolo útil, resultou em um símbolo inútil exclusão de produções vazias gerou símbolo inútil Conclusão não é qualquer combinação de simplificações de gramática que atinge o resultado desejado Linguagens Formais e Autômatos - P. Blauth Menezes 51
52 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto Símbolos Inúteis Produções Vazias Produções que Substituem Variáveis Simplificações Combinadas 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 52
53 6.4.3 Produções que Substituem Variáveis Produção que substitui uma variável por outra tipo A B não adiciona informação em termos de geração de palavras se B α, então A B pode ser substituída por A α generalização da idéia: algoritmo proposto Linguagens Formais e Autômatos - P. Blauth Menezes 53
54 Algoritmo Etapa 1: fecho transitivo de cada variável conjunto de variáveis que podem substituí-la transitivamente ex: se A B e B C, então B e C pertencem ao fecho de A Etapa 2: exclusão das produções que substituem variáveis se α é atingível a partir de A através de seu fecho substitui A B por A α Linguagens Formais e Autômatos - P. Blauth Menezes 54
55 Def: Algoritmo: Exclusão das Produções que Substituem Variáveis G = (V, T, P, S) GLC Etapa 1: fecho transitivo de cada variável para toda A V faça FECHO-A = { B A B e A + B usando exclusivamente produções de P da forma X Y }; Linguagens Formais e Autômatos - P. Blauth Menezes 55
56 Etapa 2: exclusão das produções que substituem variáveis Gramática resultante construção de P 1 G 1 = (V, T, P 1, S) P 1 = { A α A α P e α V }; para toda A V e B FECHO-A faça se B α P e α V então P 1 = P 1 { A α }; Linguagens Formais e Autômatos - P. Blauth Menezes 56
57 Exp: Exclusão das Produções que Substituem Variáveis G = ({ S, X }, { a, b }, P, S) GLC P = { S axa bxb, X a b S ε } Etapa 1: fecho transitivo da cada variável FECHO-S = FECHO-X = { S } Linguagens Formais e Autômatos - P. Blauth Menezes 57
58 Etapa 2: exclusão das produções da forma A B Iteração Produções inicial { S axa bxb, X a b ε } S { S axa bxb, X a b ε } X { S axa bxb, X a b ε axa bxb } Gramática resultante G 1 = ({ S, X }, { a, b }, P 1, S) P 1 = { S axa bxb, X a b ε axa bxb }, S) Linguagens Formais e Autômatos - P. Blauth Menezes 58
59 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto Símbolos Inúteis Produções Vazias Produções que Substituem Variáveis Simplificações Combinadas 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 59
60 6.4.4 Simplificações Combinadas Não é qualquer combinação de simplificações de GLC que atinge o resultado desejado Exemplo: gramática sem símbolos inúteis, mas com produções que substituem variáveis algoritmo para excluir produções que substituem variáveis pode gerar símbolos inúteis (por quê?) Seqüência de simplificação recomendada Exclusão das produções vazias Exclusão das produções que substituem variáveis Exclusão dos símbolos inúteis Linguagens Formais e Autômatos - P. Blauth Menezes 60
61 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais Forma Normal de Chomsky Forma Normal de Greibach 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 61
62 6.5 Formas Normais Formas normais restrições rígidas na forma das produções sem reduzir o poder de geração das GLC excetuando-se a geração da palavra vazia Aplicações desenvolvimento de algoritmos destaque para reconhecedores de linguagens prova de teoremas Linguagens Formais e Autômatos - P. Blauth Menezes 62
63 Forma Normal de Chomsky: produções são da forma A BC ou A a Forma Normal de Greibach: produções são da forma A aα α palavra de variáveis Algoritmos de conversão provas omitidas de que os algoritmos atingem os objetivos propostos Linguagens Formais e Autômatos - P. Blauth Menezes 63
64 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais Forma Normal de Chomsky Forma Normal de Greibach 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 64
65 6.5.1 Forma Normal de Chomsky Def: Forma Normal de Chomsky (FNC) G = (V, T, P, S) GLC Todas produções são da forma (A, B e C são variáveis, a é terminal) A BC ou A a Palavra vazia não pertence à linguagem gerada por uma gramática na FNC Linguagens Formais e Autômatos - P. Blauth Menezes 65
66 Algoritmo: três etapas Etapa 1: simplificação da gramática A ε linguagem não possui ε A B um símbolo no lado direito: terminal símbolos inúteis opcional Etapa 2: variáveis no lado direito das produções lado direito de comprimento 2: exclusivamente variáveis se for um terminal? Etapa 3: exatamente duas variáveis no lado direito das produções como transformar produções da forma A B 1 B 2 B n (n 2)? Linguagens Formais e Autômatos - P. Blauth Menezes 66
67 Def: Algoritmo - Forma Normal de Chomsky G = (V, T, P, S) GLC tal que ε GERA(G) Etapa 1: simplificação da gramática G 1 = (V 1, T 1, P 1, S) simplificações combinadas produções vazias produções que substituem variáveis símbolos inúteis (opcional) gramática resultante (algoritmos estudados) Linguagens Formais e Autômatos - P. Blauth Menezes 67
68 Etapa 2: transformação do lado direito das produções de comprimento maior ou igual a dois G 2 = (V 2, T 1, P 2, S) gramática resultante construção de V 2 e P 2 (para cada variável a, suponha C a V 2 ) 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 é um símbolo terminal então (suponha X r = a) V 2 = V 2 { C a }; substitui a por C a em A X 1 X 2 X n P 2 ; P 2 = P 2 { C a a }; Linguagens Formais e Autômatos - P. Blauth Menezes 68
69 Etapa 3: transformação do lado direito das produções de comprimento maior ou igual a três em produções com exatamente duas variáveis G 3 = (V 3, T 1, P 3, S) gramática resultante construção de V 3 e P 3 a cada ciclo, suponha D 1 V 3,,D n-2 V 3 ) 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 B n }; Linguagens Formais e Autômatos - P. Blauth Menezes 69
70 Exp: Algoritmo: Forma Normal de Chomsky G = ({ E }, { +,, [, ], x }, P, E) expr. aritméticas P = { E E+E E E [E] x } Etapa 1: simplificação da gramática já está simplificada Etapa 2: lado direito das produções de comprimento 2 E x está OK demais produções E E C+ E E C E C[ E C] C+ + C C [ [ C ] ] Linguagens Formais e Autômatos - P. Blauth Menezes 70
71 Etapa 3: exatamente duas variáveis no lado direito das produções produções substituídas por E E D 1 E D 2 C[ D 3 D 1 C+ E D 2 C E D 3 E C ] E E C+ E E C E C [ E C ] Linguagens Formais e Autômatos - P. Blauth Menezes 71
72 Gramática resultante, na Forma Normal de Chomsky G FNC = ({ E, C+, C, C[, C], D 1, D 2, D 3 }, { +,, [, ], x }, P FNC, E) Produções de P FNC E E D 1 E D 2 C [ D 3 x, D 1 C+ E D 2 C E D 3 E C], C+ + C C [ [ C ] ] Linguagens Formais e Autômatos - P. Blauth Menezes 72
73 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais Forma Normal de Chomsky Forma Normal de Greibach 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 73
74 6.5.2 Forma Normal de Greibach Def: Forma Normal de Greibach (FNG) G = (V, T, P, S) Todas as suas produções são da forma GLC (α é uma palavra de V*) A aα Palavra vazia não pertence à linguagem gerada por uma gramática na FNG Linguagens Formais e Autômatos - P. Blauth Menezes 74
75 Algoritmo (etapas) Etapa 1: simplificação da gramática. Análoga à FNC A ε A B símbolos inúteis linguagem não possui ε primeiro símbolo no lado direito: terminal opcional Etapa 2: renomeação das variáveis em uma ordem crescente exemplo: A 1, A 2,, A n diferentes critérios de renomeação diferentes gramáticas na FNG todas equivalentes (geram a mesma linguagem) #V = n Linguagens Formais e Autômatos - P. Blauth Menezes 75
76 Etapa 3: produções na forma A r A s α, em que r s A r A s α tais que r > s são modificadas substitui A s pelas suas produções (A s β 1 β m ) resulta em A r β 1 α β m α e assim sucessivamente conjunto de variáveis é finito: limite para produções crescentes geração de terminal A r aα geração de recursão A r A r α Linguagens Formais e Autômatos - P. Blauth Menezes 76
77 Etapa 4: exclusão das recursões da forma A r A r α podem existir originalmente na gramática ou serem geradas pela etapa anterior eliminação da recursão à esquerda introduz variáveis auxiliares inclui recursão à direita B r αb r Linguagens Formais e Autômatos - P. Blauth Menezes 77
78 Etapa 5: um terminal no início do lado direito de cada produção produções da forma A r A s α são tais que r < s portanto, produções da maior variável A n obrigatoriamente iniciam por terminal no lado direito A n-1 A n α: substituí A n pelas suas produções (A n aβ) lado direito das produções de A n-1 também inicia por terminal exemplo: A n-1 aβα repetição para A n-2,,a 1 resulta em produções exclusivamente da forma A r aα Etapa 6: produções na forma A aα, α palavra de variáveis análoga à correspondente etapa do algoritmo relativo à FNC Linguagens Formais e Autômatos - P. Blauth Menezes 78
79 Def: Algoritmo: Forma Normal de Greibach G = (V, T, P, S) GLC tq ε GERA(G) Etapa 1: simplificação da gramática G 1 = (V 1, T 1, P 1, S) simplificações combinadas produções vazias produções que substituem variáveis símbolos inúteis (opcional) gramática resultante (algoritmos estudados) Linguagens Formais e Autômatos - P. Blauth Menezes 79
80 Etapa 2: renomeação das variáveis em uma ordem crescente qualquer. G 2 = (V 2, T 1, P 2, A i ) gramática resultante suponha que A i corresponde à renomeação de S Etapas 3 e 4: transformação de produções para a forma A r A s α, na qual r s e exclusão das recursões da forma Ar A r α G 3 = (V 3, T 1, P 3, A i ) gramática resultante construção de V 3 e P 3 supondo cardinal de V 2 é n a cada ciclo, B r V 3 Linguagens Formais e Autômatos - P. Blauth Menezes 80
81 P3 = P2 para r variando de 1 até n faça para s variando de 1 até r-1 Etapa 3 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 Etapa 4 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 }; Linguagens Formais e Autômatos - P. Blauth Menezes 81
82 Etapa 5: um terminal no início do lado direito de cada produção G 4 = (V 3, T 1, P 4, A i ) gramática resultante construção de P 4 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 β α }; Linguagens Formais e Autômatos - P. Blauth Menezes 82
83 produções relativas às variáveis auxiliares B r iniciam por um terminal do lado direito 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 }; Etapa 6: produções na forma A aα, α palavra de variáveis análoga à correspondente etapa da Forma Normal de Chomsky Linguagens Formais e Autômatos - P. Blauth Menezes 83
84 Exp: Algoritmo: Forma Normal de Greibach G = ({ S, A }, { a, b }, P, S) GLC P = { S AA a, A SS b } Etapa 1: simplificação da gramática já está simplificada Etapa 2: renomeação das variáveis em uma ordem crescente qualquer S e A são renomeadas para A 1 e A 2 A 1 A 2 A 2 a A 2 A 1 A 1 b Linguagens Formais e Autômatos - P. Blauth Menezes 84
85 Etapas 3 e 4: transformação de produções para a forma A r A s α, na qual r s e exclusão das recursões da forma Ar A r α A 2 A 1 A 1 necessita ser modificada, resultando em A 1 A 2 A 2 a A 2 A 2 A 2 A 1 aa 1 b A 2 A 2 A 2 A 1 contém recursão (variável auxiliar B) A 1 A 2 A 2 a A 2 aa 1 b aa 1 B bb B A 2 A 1 A 2 A 1 B Linguagens Formais e Autômatos - P. Blauth Menezes 85
86 Etapa 5: um terminal no início do lado direito de cada produção lado direito das produções da maior variável A 2 inicia por um terminal substitui A 2 em A 1 A 2 A 2 pelas correspondentes derivações A 1 aa 1 A 2 ba 2 aa 1 BA 2 bba 2 a A 2 aa 1 b aa 1 B bb B A 2 A 1 A 2 A 1 B produções referentes à variável B B aa 1 A 1 ba 1 aa 1 BA 1 bba 1 aa 1 A 1 B ba 1 B aa 1 BA 1 B bba 1 B Linguagens Formais e Autômatos - P. Blauth Menezes 86
87 Etapa 6: produções na forma A aα, α composta por variáveis produções já estão nessa forma Gramática resultante, na Forma Normal de Greibach P FNG = { G FNG = ({ A 1, A 2, B }, { a, b }, P FNG, A 1 ), A 1 aa 1 A 2 ba 2 aa 1 BA 2 bba 2 a, A 2 aa 1 b aa 1 B bb, B aa 1 A 1 ba 1 aa 1 BA 1 bba 1 aa 1 A 1 B ba 1 B aa 1 BA 1 B bba 1 B } Linguagens Formais e Autômatos - P. Blauth Menezes 87
88 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Linguagens Formais e Autômatos - P. Blauth Menezes 88
89 6.6 Recursão à Esquerda Recursão à esquerda A + Aα Freqüentemente é desejável que a gramática não seja recursiva à esquerda exemplo: desenvolvimento de algoritmos reconhecedores Algoritmo quatro primeiras etapas do algoritmo Forma Normal de Greibach Linguagens Formais e Autômatos - P. Blauth Menezes 89
90 Def: Algoritmo: Gramática sem Recursões à Esquerda G = (V, T, P, S) GLC Etapa 1: simplificação da gramática Etapa 2: renomeação das variáveis em uma ordem crescente qualquer Etapa 3: produções na forma A r A s α, na qual r s Etapa 4: exclusão das recursões da forma A r A r α Linguagens Formais e Autômatos - P. Blauth Menezes 90
91 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Definição do Autômato com Pilha Autômato com Pilha e Linguagens Livres do Contexto Número de Pilhas e o Poder Computacional Linguagens Formais e Autômatos - P. Blauth Menezes 91
92 6.7 Autômato com Pilha Classe das Linguagens Livres do Contexto pode ser associada a um formalismo do tipo autômato Autômato com Pilha Autômato com pilha análogo ao autômato finito incluindo uma pilha como memória auxiliar não-determinismo Linguagens Formais e Autômatos - P. Blauth Menezes 92
93 Pilha independente da fita de entrada não possui limite máximo de tamanho tão grande quanto se queira baseada na noção de conjunto infinitamente contável Linguagens Formais e Autômatos - P. Blauth Menezes 93
94 Estrutura de uma pilha último símbolo gravado é o primeiro a ser lido base: fixa e define o seu início topo: variável e define a posição do último símbolo gravado gravação leitura topo sentido de crescimento base Linguagens Formais e Autômatos - P. Blauth Menezes 94
95 Não-determinismo: importante e necessário aumenta o poder computacional dos AP exemplo { ww r w é palavra sobre { a, b } } reconhecimento só é possível por um AP Não-Determinístico Linguagens Formais e Autômatos - P. Blauth Menezes 95
96 AP Número de estados qualquer LLC pode ser reconhecida por um AP com somente um estado (ou três estados, dependendo da definição) pilha é suficiente como única memória estados não são necessários para "memorizar" informações passadas estados no AP poderiam ser excluídos sem se reduzir o poder computacional como a pilha não possui tamanho máximo AP pode assumir tantos estados quanto se queira Linguagens Formais e Autômatos - P. Blauth Menezes 96
97 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Definição do Autômato com Pilha Autômato com Pilha e Linguagens Livres do Contexto Número de Pilhas e o Poder Computacional Linguagens Formais e Autômatos - P. Blauth Menezes 97
98 6.7.1 Definição do Autômato com Pilha Duas definições universalmente aceitas estados finais pára aceitando ao atingir um estado final inicialmente a pilha é vazia pilha vazia pára aceitando quando a pilha estiver vazia inicialmente, a pilha um símbolo inicial da pilha não existem estados finais definições equivalentes (possuem o mesmo poder computacional) adotada a definição que usa estados finais Linguagens Formais e Autômatos - P. Blauth Menezes 98
99 AP Não-Determinístico ou simplesmente AP Fita análoga à do autômato finito Pilha memória auxiliar pode ser usada para leitura e gravação Unidade de Controle reflete o estado corrente da máquina possui: cabeça de fita e cabeça de pilha Programa, Função Programa ou Função de Transição comanda leitura da fita leitura e gravação da pilha define o estado da máquina Linguagens Formais e Autômatos - P. Blauth Menezes 99
100 Pilha cada célula armazena um símbolo do alfabeto auxiliar pode ser igual ao alfabeto de entrada leitura ou gravação é sempre no topo não possui tamanho fixo, nem máximo tamanho corrente: tamanho da palavra armazenada valor inicial: vazio (palavra vazia) Linguagens Formais e Autômatos - P. Blauth Menezes 100
101 Unidade de controle número finito e predefinido de estados Cabeça da Fita unidade de leitura: acessa uma célula da fita de cada vez move exclusivamente para a direita pode testar se a entrada foi completamente lida Cabeça da Pilha unidade de leitura e gravação Linguagens Formais e Autômatos - P. Blauth Menezes 101
102 Cabeça da Pilha: leitura e gravação Leitura move para a direita ("para baixo") ao ler um símbolo acessa um símbolo de cada vez, sempre do topo exclui o símbolo lido pode testar se a pilha está vazia Gravação move para a esquerda ("para cima") ao gravar pode gravar uma palavra composta por mais de um símbolo símbolo do topo é o mais à esquerda da palavra gravada Linguagens Formais e Autômatos - P. Blauth Menezes 102
103 Controle Finito? Unidade de controle: número finito e predefinido de estados Mas não é dita de controle finito (em oposição aos autômatos finitos) conteúdo da pilha também caracteriza o estado do sistema Linguagens Formais e Autômatos - P. Blauth Menezes 103
104 Programa é uma função parcial dependendo estado corrente símbolo lido da fita símbolo lido da pilha determina novo estado palavra a ser gravada (na pilha) possui a facilidade de movimento vazio permite mudar de estado sem ler da fita Linguagens Formais e Autômatos - P. Blauth Menezes 104
105 Def: Autômato com Pilha (Não-Determinístico) M = (Σ, Q, δ, q 0, F, V) Σ - alfabeto de símbolos) de entrada Q - conjunto de estados possíveis o qual é finito δ - (função) programa ou função de transição função parcial δ: Q (Σ { ε,? }) (V { ε,? }) 2 Q V* δ(p, x, y) = { (q 1, v 1 ),,(q n, v n ) } transição q 0 - elemento distinguido de Q: estado inicial F - subconjunto de Q: conjunto de estados finais V - alfabeto auxiliar ou alfabeto da pilha Linguagens Formais e Autômatos - P. Blauth Menezes 105
106 Características da função programa função parcial "?" indica teste de pilha vazia toda palavra de entrada lida leitura de ε indica movimento vazio da fita ou pilha (não lê, nem move a cabeça) não-determinístico: basta que o movimento seja vazio na fita gravação de ε nenhuma gravação é realizada na pilha (e não move a cabeça) Linguagens Formais e Autômatos - P. Blauth Menezes 106
107 Exemplo: δ(p,?, ε) = { (q, ε) } no estado p, se a entrada foi completamente lida, não lê da pilha assume o estado q e não grava na pilha Programa como diagrama: δ(p, x, y) = { (q, v) } p (x, y, v) q estado anterior novo estado símbolo lido da fita palavra gravada na pilha símbolo lido da pilha Linguagens Formais e Autômatos - P. Blauth Menezes 107
108 Computação de um AP sucessiva aplicação da função programa para cada símbolo da entrada (da esquerda para a direita) até ocorrer uma condição de parada é possível que nunca atinja uma condição de parada processa indefinidamente (loop infinito) exemplo: empilha e desempilha um mesmo símbolo indefinidamente, sem ler da fita definição formal estende a definição da função programa argumento: um estado e uma palavra exercício Linguagens Formais e Autômatos - P. Blauth Menezes 108
109 Parada de um AP Aceita pelo menos um dos caminhos alternativos atinge um estado final não importa se leu ou não toda a entrada Rejeita todos os caminhos alternativos rejeitam a entrada a função programa é indefinida para cada caso Loop pelo menos um caminho alternativo está em loop infinito demais: rejeitam ou também estão em loop infinito Linguagens Formais e Autômatos - P. Blauth Menezes 109
110 Def: Linguagem Aceita, Rejeitada, Loop M = (Σ, Q, δ, q 0, F, V) autômato com pilha Linguagem Aceita ou Linguagem Reconhecida: ACEITA(M) ou L(M) todas as palavras de Σ* aceitas por M, a partir de q 0 Linguagem Rejeitada: REJEITA(M) todas as palavras de Σ* rejeitadas por M, a partir de q 0 Linguagem Loop: LOOP(M) todas as palavras de Σ* para as quais M fica processando indefinidamente a partir de q 0 Linguagens Formais e Autômatos - P. Blauth Menezes 110
111 Partição de Σ* induzida por um AP M Σ* ACEITA(M) REJEITA(M) LOOP(M) algum conjunto vazio? partição induzida contém um conjuntos a menos uma classe de equivalência não pode ser vazia Linguagens Formais e Autômatos - P. Blauth Menezes 111
112 Exp: Autômato com Pilha: Duplo Balanceamento M 1 = ({ a, b }, { q 0, q 1, q f }, δ 1, q 0, { q f }, { B }) (b, B, ε) (a, ε, B) q 0 q 1 (b, B, ε) (?,?, ε) (?,?, ε) q f Linguagens Formais e Autômatos - P. Blauth Menezes 112
113 Exp: Autômato com Pilha: Duplo Balanceamento AP determinístico ACEITA(M 1 ) = L 1 LOOP(M 1 ) é vazio? M 1 = ({ a, b }, { q 0, q 1, q f }, δ 1, q 0, { q f }, { B }) δ 1 (q 0, a, ε) = { (q 0, B) } δ 1 (q 0, b, B) = { (q 1, ε) } δ 1 (q 0,?,?) = { (q f, ε) } δ 1 (q 1, b, B) = { (q 1, ε) } δ 1 (q 1,?,?) = { (q f, ε) } Linguagens Formais e Autômatos - P. Blauth Menezes 113
114 Exp: Autômato com Pilha: Palavra e sua Reversa L 3 = { ww r w pertence a { a, b }* } ACEITA(M 3 ) = L 3 LOOP(M 3 ) é vazio? AP não-determinístico (por quê?) (ε, ε, ε) q 0 q 1 (?,?, ε) q f (a, ε, a) (b, ε, b) (a, a, ε) (b, b, ε) Linguagens Formais e Autômatos - P. Blauth Menezes 114
115 Exp: Autômato com Pilha: a n b m a n+m L 4 = { a n b m a n+m n 0, m 0 } ACEITA(M 4 ) = L 4 LOOP(M 4 ) é vazio? AP não-determinístico (por quê?) (ε, ε, ε) (ε, ε, ε) q 0 q 1 q 2 (?,?, ε) q f (a, ε, X) (b, ε, X) (a, X, ε) Linguagens Formais e Autômatos - P. Blauth Menezes 115
116 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Definição do Autômato com Pilha Autômato com Pilha e Linguagens Livres do Contexto Número de Pilhas e o Poder Computacional Linguagens Formais e Autômatos - P. Blauth Menezes 116
117 6.7.2 AP e Linguagens Livres do Contexto Classe linguagens aceitas por AP = Classe LLC classe das linguagens geradas pelas GLC Construção de um AP a partir de uma GLC qualquer, permite concluir construção de um reconhecedor para uma LLC a partir de sua gramática é simples e imediata qualquer LLC pode ser aceita por um AP com somente um estado estados não aumentam o poder computacional Linguagens Formais e Autômatos - P. Blauth Menezes 117
118 Teorema: GLC AP Se L é uma LLC, então existe M, AP M tal que ACEITA(M) = L Prova: Suponha que ε L Construção de um AP a partir da gramática na FNG produções da forma A aα, α palavra de variáveis AP resultante simula a derivação mais à esquerda lê o símbolo a da fita lê o símbolo A da pilha empilha a palavra de variáveis α AP M a partir da gramática G = (V, T, P, S) Linguagens Formais e Autômatos - P. Blauth Menezes 118
119 G FNG = (V FNG, T FNG, P FNG, S), é G na Forma Normal de Greibach M = (T FNG, { q 0, q 1, q f }, δ, q 0, { q f }, V FNG ) δ(q 0, ε, ε) = { (q 1, S) } δ(q 1, a, A) = { (q 1, α) A aα P FNG } δ(q 1,?,?) = { (q f, ε) } (ε, ε, S) q 0 q 1 (?,?, ε) q f (a 1, A 1, α 1 )... (a n, A n, α n ) Linguagens Formais e Autômatos - P. Blauth Menezes 119
120 A demonstração de que ACEITA(M) = GERA(G FNG ) indução no número de movimentos de M (ou derivações de G FNG ) exercício como o AP pode ser modificado para tratar a palavra vazia? Linguagens Formais e Autômatos - P. Blauth Menezes 120
121 Exp: GLC AP: L 5 = { a n b n n 1 } Gramática na Forma Normal de Greibach G 5 = ({ S, B }, { a, b }, P 5, S) P 5 = { S ab asb, B b } Correspondete AP M 5 = ({ a, b }, { q 0, q, q f }, δ 5, q 0, { q f }, { S, B }) (ε, ε, S) q 0 q 1 (?,?, ε) q f (a, S, B) (a, S, SB) (b, B, ε) Linguagens Formais e Autômatos - P. Blauth Menezes 121
122 Corolário : AP Número de Estados Se L é uma LLC, então existe M AP com controle de aceitação por estados finais, com três estados, tal que ACEITA(M) = L AP com controle de aceitação por pilha vazia, com um estado tal que ACEITA(M) = L Corolário : Existência de um AP que Sempre Pára Se L é uma LLC, então existe M, AP, tal que ACEITA(M) = L REJEITA(M) = Σ* - L LOOP(M) = Linguagens Formais e Autômatos - P. Blauth Menezes 122
123 Teorema: AP GLC Se L é aceita por um AP, então L é LLC demonstração omitida Obs: Estados Poder Computacional dos AP A combinação dos resultados: Corolário: AP Número de Estados Corolário: Existência de um AP que Sempre Pára Teorema: AP GLC comprovam que o uso dos estados como "memória" não aumenta o poder de reconhecimento do AP Linguagens Formais e Autômatos - P. Blauth Menezes 123
124 6 Linguagens Livres do Contexto 6.1 Gramática Livre do Contexto 6.2 Árvore de Derivação 6.3 Gramática Livre do Contexto Ambígua 6.4 Simplificação de Gramática Livre do Contexto 6.5 Formas Normais 6.6 Recursão à Esquerda 6.7 Autômato com Pilha Definição do Autômato com Pilha Autômato com Pilha e Linguagens Livres do Contexto Número de Pilhas e o Poder Computacional Linguagens Formais e Autômatos - P. Blauth Menezes 124
125 6.7.3 Número de Pilhas e o Poder Computacional Linguagens Formais e Autômatos - P. Blauth Menezes 125
126 Modelo autômato com pilha Adequado para estudos aplicados e formais pilha é adequada para implementação em computadores poucas modificações na definição determinam significativas alterações no poder computacional principais estudos de linguagens e computabilidade podem ser desenvolvidos usando-se exclusivamente AP variando o número de pilhas com ou sem não-determinismo Linguagens Formais e Autômatos - P. Blauth Menezes 126
127 Autômato com Pilha, sem usar a estrutura de pilha estados: única forma de memorizar informações passadas muito semelhante ao autômato finito AP, sem usar a pilha, com ou sem não-determinismo reconhecem a Classe das Linguagens Regulares Linguagens Formais e Autômatos - P. Blauth Menezes 127
128 Autômato com Pilha Determinístico aceita a Classe das Linguagens Livres do Contexto Determinísticas importante subconjunto próprio da Classe das LLC implementação de um AP determinístico é simples e eficiente facilita o desenvolvimento de analisadores sintáticos algumas propriedades da Classe das LLC Determinísticas existe um tipo de gramática que gera exatamente tal classe (exercício de pesquisa) é fechada para a operação de complemento não é fechada para as operações de união, intersecção e concatenação Linguagens Formais e Autômatos - P. Blauth Menezes 128
129 Autômato com (uma) Pilha Não-Determinístico aceitam exatamente a Classe das LLC Autômato com Duas Pilhas mesmo poder computacional da Máquina de Turing considerada o dispositivo mais geral de computação se existe um algoritmo para resolver um problema pode ser expresso como um autômato com duas pilhas não-determinismo não aumenta o poder computacional Linguagens Formais e Autômatos - P. Blauth Menezes 129
130 Autômato com Múltiplas Pilhas poder computacional de um autômato com mais de duas pilhas equivalente ao do autômato com duas pilhas se um problema é solucionado por um autômato com múltiplas pilhas pode ser solucionado por um autômato com duas pilhas Linguagens Formais e Autômatos - P. Blauth Menezes 130
131 Linguagens Formais e Autômatos P. Blauth Menezes 1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 9 Hierarquia de Classes e Linguagens e Conclusões Linguagens Formais e Autômatos - P. Blauth Menezes 131
132 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 132
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
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
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
Gramática Livre de Contexto
Gramática Livre de Contexto Prof. Yandre Maldonado - 1 Árvore de derivação Ambigüidade Simplificação de Gramática Forma Normal de Chomsky (FNC) Forma Normal de Greibach (FNG) Prof. Yandre Maldonado e Gomes
Gramática Livre de Contexto
Prof. Yandre Maldonado - 1 Gramática Livre de Contexto Árvore de derivação Ambigüidade Simplificação de Gramática Forma Normal de Chomsky (FNC) (FNG) Prof. Yandre Maldonado e Gomes da Costa [email protected]
Linguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens
Linguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens
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
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
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada
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
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Proposta por Alan Turing em 1936; É universalmente conhecida e aceita como formalização de algoritmo; Teoria
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
Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente
ESIN/UCPel 058814 Linguagens Formais e Autômatos TEXTO 5 Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente Prof. Luiz A M Palazzo Maio de 2007 0. Introdução A Ciência da Computação
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
Gramáticas Livres de Contexto
Gramáticas Livres de Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz [email protected] Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 42 Frase do dia Quando vires
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
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
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
Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.
Máquinas Universais Máquina de Celso Olivete Júnior [email protected] http://www2.fct.unesp.br/docentes/dmec/olivete/ Roteiro Hipótese de Church - Máquinas Universais: Máquina de Máquina de : Noção
Apostila 05 Assunto: Linguagens dos tipos 0 e 1
Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e
Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)
Linguagens Formais e Autômatos Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Linguagens Regulares A teoria da computação começa com uma pergunta: O que é um computador? É, talvez, uma
Teoria da Computação. Máquinas Universais Máquina com Pilhas
Máquinas Universais Máquina com Pilhas Cristiano Lehrer Introdução A Máquina com Pilhas diferencia-se das Máquinas de Turing e de Post principalmente pelo fato de possuir uma memória de entrada separada
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto [email protected]
Linguagens Livres de Contexto
Linguagens Livres de Contexto 1 Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha
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
Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)
Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q
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.
Teoria da Computação. Máquinas Universais Máquina de Turing
Máquinas Universais Máquina de Turing Cristiano Lehrer Máquina de Turing Proposta por Alan Turing, em 1936. Universalmente conhecida e aceita como formalização de algoritmo. Trata-se de um mecanismo simples
COMPILADORES. Revisão Linguagens formais Parte 02. Prof. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 02 Prof. [email protected] Legenda: = sigma (somatório) = delta ε = epsilon λ =
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto [email protected]
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
Linguagens Livres de Contexto
Linguagens Livres de Contexto 1 Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha
LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.
LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos Modelos Matemáticos Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real. Ressalta-se contudo que é muito importante
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
Teoria da Computação
Ciência da Computação Teoria da Computação (ENG10395) Profa. Juliana Pinheiro Campos E-mail: [email protected] Máquinas Universais Máquinas Universais podem ser entendidas de duas formas: Se é capaz
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.
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
Autômatos com Pilha: Reconhecedores de LLCs
Autômatos com Pilha: Reconhecedores de LLCs 1 Autômatos com Pilha (AP) Definições alternativas para Linguagens Livres de Contexto Extensão de AFND com uma pilha, que pode ser lida, aumentada e diminuída
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:
Máquinas de Turing - Computabilidade
BCC244-Teoria da Computação Prof. Lucília Figueiredo Lista de Exercícios 03 DECOM ICEB - UFOP Máquinas de Turing - Computabilidade 1. Seja L uma linguagem não livre de contexto. Mostre que: (a) Se X uma
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
INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída
INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída baseado em material produzido pelo prof Paulo B auth Menezes e pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira
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
INE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares
INE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares baseado em material produzido pelo prof Paulo B auth Menezes e pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja
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
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
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
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
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
V Análise Sintática. V.1.1 Gramáticas Livres de Contexto Definições de GLC
V Análise Sintática V.1 Fundamentos Teóricos V.1.1 G.L.C V.1.2 Teoria de Parsing V.2 Especificação Sintática de Ling. de Prog. V.3 - Implementação de PARSER s V.4 - Especificação Sintática da Linguagem
Linguagens Livres do Contexto. Adaptado de H. Brandão
Linguagens Livres do Contexto Adaptado de H. Brandão Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres do Contexto; Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres
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
Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1
Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática
Gramática. Gramática. Gramática
Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática
Resolução Exe 2.12 Monolítico Recursivo
Resolução Exe 2.12 Monolítico Recursivo Recursivo P R é R 1 onde R 1 def (se T1 então R 2 senão R 3 ) R 2 def F; R 3 R 3 def (se T2 então R 4 senão R 7 ) R 4 def G; R 5 R 5 def (se T1 então R 7 senão R
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
Compiladores Aula 4. Celso Olivete Júnior.
Aula 4 Celso Olivete Júnior [email protected] Na aula de hoje... Revisão: gramáticas Relações em uma gramática: Cabeça, Último, Primeiro (First) e Seguinte (Follow) Capítulo 4 (seção 4.4.2) do livro
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
Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.
Teoria da Computação Capítulo 1 Máquina de Turing Prof. Wanderley de Souza Alencar, MSc. Pauta 1. Introdução 2. Definição de Máquina de Turing 3. Variações de Máquina de Turing 4. A Tese de Church-Turing
Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador
Estrutura de um compilador programa fonte Compiladores Análise lexical () Expressões Regulares analisador léxico analisador sintático analisador semântico análise gerador de código intermediário otimizador
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
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)
Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.
Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel 8.1 - Introdução. Como observado no capítulo anterior, podemos substituir a definição informal de procedimento pela
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
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
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
Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.
LFA Aula 02 Linguagens regulares - introdução 28/09/2015 Celso Olivete Júnior [email protected] 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas
Aula 8: Gramáticas Livres de Contexto
Teoria da Computação Primeiro Semestre, 2015 Aula 8: Gramáticas Livres de Contexto DAINF-UTFPR Prof. Ricardo Dutra da Silva Veremos agora maneira de gerar as strings de um tipo específico de linguagem,
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
Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.
LFA Aula 04 Autômatos Finitos 16/11/2016 Celso Olivete Júnior [email protected] 1 Classificação das Linguagens segundo Hierarquia de Chomsky Máquina de Turing Máquina de Turing com fita limitada Autômato
Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes
Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes Questões do POSCOMP 2011 A resposta certa está assinalada em vermelho. Por que é correta e por que as demais alternativas são incorretas?
Teoria da Computação. Computabilidade e complexidade computacional
Teoria da Computação Computabilidade e complexidade computacional 1 Computabilidade e Complexidade Computabilidade: verifica a existência de algoritmos que resolva uma classe de linguagens trata a possibilidade
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
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
Matemática Discreta para Computação e Informática
Matemática Discreta para Computação e Informática P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Computação e Informática
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,
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.
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
Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.
LFA Aula 01 Apresentação 24/10/2016 Celso Olivete Júnior [email protected] 1 Professor Celso Olivete Júnior Bacharelado em Ciência da Computação (Unoeste-2002) Mestrado e Doutorado em Engenharia Elétrica
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,
Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz
Autômato com pilha IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz [email protected] Departmento de Computação e Matemática FFCLRP Universidade de São Paulo E.E.S Ruiz (DCM USP)
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
INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas
INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticas bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: [email protected] URL:
SCC 205 Teoria da Computação e Linguagens Formais
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação SCC 205 Teoria da Computação e Linguagens Formais Autômatos com pilha Lista 3 1. Dê um
COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 01 [email protected] Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda
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
Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)
Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL) 1 Gramática Sensível ao Contexto Definição: Uma gramática G é sensível ao contexto se
Automata e Linguagens Formais
Automata e Linguagens Formais 5 Prof. Carlos H. C. Ribeiro [email protected] Gramáticas A Hierarquia de Chomsky Tipos de gramáticas e linguagens Pré-normalização de GLCs Formas Normais: Chomsky e Greibach
