Linguagens Formais e Autômatos P. Blauth Menezes

Documentos relacionados
INE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes

IV Gramáticas Livres de Contexto

INE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares

INE5317 Linguagens Formais e Compiladores AULA 8: Linguagens Livres de Contexto

Linguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC)

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

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

Linguagens Regulares. Prof. Daniel Oliveira

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Gramática Livre de Contexto

Teoria da Computação Aula 02 Introdução

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Livres de Contexto

Gramáticas Livres de Contexto

Lema do Bombeamento para Linguagens Livres do Contexto

Problemas decidíveis para LICs

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

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

Problemas decidíveis para LICs

Compiladores - Análise Ascendente

Compiladores - Análise Ascendente

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

Expressões Regulares e Gramáticas Regulares

Linguagens Formais e Autômatos P. Blauth Menezes

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Linguagens Formais e Autômatos P. Blauth Menezes

Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação

Gramática Livre de Contexto

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas

Automata e Linguagens Formais

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

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

Gramáticas Livres de Contexto Parte 1

Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes

Linguagens Livres de Contexto

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

Linguagens Livres do Contexto. Adaptado de H. Brandão

Propriedades das Linguagens Livres do Contexto

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

Máquinas de Turing - Computabilidade

LLC's: Lema do Bombeamento e Propriedades de Fechamento

Linguagens livres de contexto e autômatos de pilha

IBM1088 Linguagens Formais e Teoria da

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

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

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

V Análise Sintática. V.1.1 Gramáticas Livres de Contexto Definições de GLC

FOLHA DE PROVA. Descreva e ilustre, com um exemplo, o algoritmo de minimização de um autômato.

Capítulo II Gramáticas

Problemas Computáveis

Compiladores. Exemplo. Caraterísticas de Gramáticas. A αβ 1 αβ 2. A αx X β 1 β 2. Lembrando... Gramáticas Livres de Contexto

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

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

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

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos

Capítulo II Gramáticas

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

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

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

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

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

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

Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

Aula 8: Gramáticas Livres de Contexto

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

Análise Sintática LL(1)

Teoria da Computação

Autômatos com Pilha: Reconhecedores de LLCs

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

Faculdade de Computação

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

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

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Introdução Definição Conceitos Básicos de Linguagem

Análise Sintática Bottom-up

Exercícios 02. A gramática acima gera sentenças que tenham os N primeiros bits 0 e o último bit é sempre 1.

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

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

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

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

Primeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens:

Formas Normais sobre GLC's

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

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Modelos de Computação

Transcrição:

Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1

Linguagens 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

6 Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 3

7 Propriedades e Reconhecimento das LLC Linguagens Formais e Autômatos - P. Blauth Menezes 4

7 Propriedades e Reconhecimento das LLC A Classe das LLC mais geral que a das Regulares mas ainda é relativamente restrita Linguagens Formais e Autômatos - P. Blauth Menezes 5

Fácil definir linguagens que não são LLC Palavra duplicada { ww w é palavra sobre { a, b } } analogia com questões similares de linguagens de programação exemplo: declaração de uma variável antes do seu uso Triplo balanceamento { a n b n c n n 0 } importante limitação das LLC (propositalmente) incomum nas linguagens de programação se-então-senão é uma estrutura deste tipo? Exercício usando Autômato com Pilha fácil intuir por que não são LLC Linguagens Formais e Autômatos - P. Blauth Menezes 6

Assim como determinar se uma linguagem é LLC? é fechada para operações união? intersecção? concatenação? complemento? como verificar se uma linguagem livre do contexto é infinita finita (ou até mesmo vazia)? Linguagens Formais e Autômatos - P. Blauth Menezes 7

Algumas questões não possuem solução computacional não existe algoritmo capaz de analisar duas LLC quaisquer concluir se são iguais ou diferentes Uma palavra pertence ou não a uma linguagem? uma das principais questões relacionadas com LF Algoritmos de reconhecimento válidos para qualquer linguagem da classe importante: quantidade de recursos que o algoritmo necessita tempo & espaço Linguagens Formais e Autômatos - P. Blauth Menezes 8

Algoritmos construídos a partir de uma GLC Autômato com Pilha Descendente Algoritmo de Cocke-Younger-Kasami Algoritmo de Early Reconhecedores que usam autômato com pilha muito simples em geral, ineficientes tempo de processamento é proporcional a k w w palavra de entrada k depende do autômato Linguagens Formais e Autômatos - P. Blauth Menezes 9

Existem algoritmos mais eficientes não baseados em AP tempo de processamento proporcional a w 3 até menos tempo proporcional a w 3 : não é provado se é efetivamente necessário para que um algoritmo genérico reconheça LLC Linguagens Formais e Autômatos - P. Blauth Menezes 10

6 Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 11

7.1 Propriedades das LLC 7.1.1 Investigação se é LLC Para mostrar que é LLC expressá-la usando os formalismos livre do contexto Gramática Livre do Contexto Autômato com Pilha Demonstração de que não é LLC realizada caso a caso Lema do Bombeamento para as LLC útil no estudo das propriedades pode ser usado para verificar se não é LLC Linguagens Formais e Autômatos - P. Blauth Menezes 12

Teorema: Bombeamento para as LLC Se L é uma LLC, então existe uma constante n tal que para qualquer palavra w L onde w n, w pode ser definida como w = u x v y z x v y n, x y 1 para todo i 0, u x i v y i z é palavra de L Prova: Uma maneira é usando gramáticas na Forma Normal de Chomsky se a gramática possui s variáveis pode-se assumir que n = 2 s prova não será detalhada Linguagens Formais e Autômatos - P. Blauth Menezes 13

Para w = u x v y z tal que x y 1 x ou y pode ser a palavra vazia (mas não ambas) resulta em bombeamentos não balanceados linguagens regulares duplo bombeamento balanceado importante característica das LLC duplo balanceamento : { a n b n n 0 } palavra e sua reversa : { ww r w pertence a { a, b }* } Linguagens Formais e Autômatos - P. Blauth Menezes 14

Conclusões a partir dos lemas do bombeamento regulares são capazes de expressar apenas bombeamentos sem qualquer balanceamento livres do contexto são capazes de expressar bombeamentos balanceados dois a dois livres do contexto não são capazes de expressar triplo bombeamento balanceado Linguagens Formais e Autômatos - P. Blauth Menezes 15

Exp: Triplo Balanceamento - L = { a n b n c n n 0 } Prova por absurdo. Suponha que L é LLC Então existe uma gramática na Forma Normal de Chomsky G com s variáveis gera palavras não-vazias de L sejam r = 2 s e w = a r b r c r Pelo bombeamento, w pode ser definida como w = u x v y z x v y r x y 1 para todo i 0, u x i v y i z é palavra de L Absurdo!!!. Por que? Linguagens Formais e Autômatos - P. Blauth Menezes 16

De fato, como x v y r não é possível supor que x y possui símbolos a e c quaisquer ocorrências de a e c estão separadas por, pelo menos, r ocorrências de b x y jamais possuirá ocorrências de a, b e c simultaneamente aplicação do bombeamento pode desbalancear as ocorrências de a, b e c Linguagens Formais e Autômatos - P. Blauth Menezes 17

6 Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 18

7.1.2 Operações Fechadas sobre as LLC Operações sobre linguagens podem ser usadas para construir novas linguagens a partir de linguagens conhecidas definindo-se uma álgebra provar propriedades construir algoritmos Classe das LLC União concatenação intersecção complemento Linguagens Formais e Autômatos - P. Blauth Menezes 19

Teorema: Operações Fechadas sobre LLC União Concatenação Prova: União: (direta) AP + não-determinismo (GLC: exercício) Suponha L 1 e L 2, LLC. Então, existem AP M 1 = (Σ 1, Q 1, δ 1, q 0 1, F 1, V 1 ) e M 2 = (Σ 2, Q 2, δ 2, q 0 2, F 2, V 2 ) tais que ACEITA(M 1 ) = L 1 e ACEITA(M 2 ) = L 2 Linguagens Formais e Autômatos - P. Blauth Menezes 20

Seja M 3 (suponha que Q 1 Q 2 { q 0 } = e V 1 V 2 = ) M 3 = (Σ 1 Σ 2, Q 1 Q 2 { q 0 }, δ 3, q 0, F 1 F 2, V 1 V 2 ) ( ε, ε, ε) q 01 M 1 q 0 ( ε, ε, ε) q 02 M 2 Claramente, M 3 reconhece L 1 L 2 Linguagens Formais e Autômatos - P. Blauth Menezes 21

Concatenação: (direta) GLC (AP: exercício) Suponha L 1 e L 2, LLC. Então, existem GLC G 1 = (V 1, T 1, P 1, S 1 ) e G 2 = (V 2, T 2, P 2, S 2 ) tais que GERA(G 1 ) = L 1 e GERA(G 2 ) = L 2 Seja G 3 (suponha que V 1 V 2 { S } = ) G 3 = (V 1 V 2 { S }, T 1 T 2, P 1 P 2 { S S 1 S 2 }, S) Claramente qualquer palavra gerada por G 3 terá, como prefixo, uma palavra de L 1 sufixo, uma palavra de L 2 Logo, L 1 L 2 é LLC Linguagens Formais e Autômatos - P. Blauth Menezes 22

Teorema a seguir mostra que a Classe das LLC não é fechada para intersecção complemento Aparentemente, uma contradição foi verificado que, se L é LLC existe AP M tal que ACEITA(M) = L e REJEITA(M) = ~L rejeita qualquer palavra que não pertença a L teorema a seguir se L é LLC não se pode afirmar que ~L também é LLC Linguagens Formais e Autômatos - P. Blauth Menezes 23

Assim é possível um AP rejeitar o complemento de uma LLC embora nem sempre seja possível aceitar o complemento Explicação intuitiva: AP aceita se pelo menos um dos caminhos alternativos aceita aceita rejeita... rejeita Linguagens Formais e Autômatos - P. Blauth Menezes 24

Inversão de aceita/rejeita situação continua sendo de aceitação rejeita aceita... aceita Linguagens Formais e Autômatos - P. Blauth Menezes 25

Teorema: Operações Não-Fechadas sobre Linguagens Livres do Contexto Intersecção Complemento Prova: Intersecção: (direta) Sejam LLC contra-exemplo L 1 = { a n b n c m n 0 e m 0 } e L 2 = { a m b n c n n 0 e m 0 } Intersecção de L 1 com L 2, não é LLC L 3 = { a n b n c n n 0 } Linguagens Formais e Autômatos - P. Blauth Menezes 26

Complemento: (direta) Conseqüência direta (por quê?) Intersecção pode ser representada em termos da união e do complemento Classe das LLC não é fechada para a operação de intersecção como é fechada para a união não se pode afirmar que é fechada para o complemento Linguagens Formais e Autômatos - P. Blauth Menezes 27

6 Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 28

7.1.3 Investigação se é Vazia, Finita ou Infinita Teorema: LLC Vazia, Finita ou Infinita Prova: Suponha L LLC Vazia: (direta) Seja G = (V, T, P, S), GLC tal que GERA(G) = L Seja G SI = (V SI, T SI, P SI, S) equivalente a G excluindo os símbolos inúteis Se P SI for vazio, então L é vazia Linguagens Formais e Autômatos - P. Blauth Menezes 29

Finita e Infinita: (direta) Seja G = (V, T, P, S) GLC tal que GERA(G) = L Seja G FNC = (V FNC, T FNC, P FNC, S) equivalente na FN de Chomsky Se existe A variável tal que A BC X YA ou X AY existe um ciclo em A A no lado esquerdo A no lado direito A + α A β A é capaz de gerar palavras de qualquer tamanho L é infinita Caso não exista tal A, então L é finita Linguagens Formais e Autômatos - P. Blauth Menezes 30

6 Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 31

7.2 Algoritmos de Reconhecimento Podem ser classificados como Top-Down ou Preditivo constrói uma árvore de derivação a partir da raiz (símbolo inicial da gramática) com ramos em direção às folhas (terminais) Bottom-Up oposto do top-down parte das folhas construindo a árvore de derivação em direção à raiz Linguagens Formais e Autômatos - P. Blauth Menezes 32

6 Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 33

7.2.1 Autômato com Pilha como Reconhecedor Reconhecedores usando AP construção relativamente simples e imediata relação quase direta entre produções e as transições do AP algoritmos top-down simula derivação mais à esquerda não-determinismo: produções alternativas da gramática Linguagens Formais e Autômatos - P. Blauth Menezes 34

Foi visto que qq LLC pode ser especificada por um AP a partir de uma Gramática na Forma Normal de Greibach cada produção gera exatamente um terminal geração de w: w etapas de derivação cada variável: pode ter diversas produções associadas AP testa as diversas alternativas número de passos para reconhecer w: proporcional a k w aproximação de k: metade da média de produções das variáveis portanto, o AP construído tempo de reconhecimento proporcional ao expoente em w pode ser muito ineficiente para entradas mais longas Linguagens Formais e Autômatos - P. Blauth Menezes 35

Autômato com Pilha Descendente forma alternativa de construir AP igualmente simples e com o mesmo nível de eficiência a partir de uma GLC sem recursão à esquerda simula a derivação mais à esquerda algoritmo inicialmente, empilha o símbolo inicial topo = variável: substitui, (não-determinismo), por todas as produções da variável topo = terminal: testa se é igual ao próximo símbolo da entrada Linguagens Formais e Autômatos - P. Blauth Menezes 36

Def: Algoritmo: Autômato com Pilha Descendente GLC G = (V, T, P, S), sem recursão à esquerda M = (T, { q 0, q 1, q f }, δ, q 0, { q f }, V T) δ(q 0, ε, ε) = { (q 1, S) } δ(q 1, ε, A) = { (q 1, α) A α P } δ(q 1, a, a) = { (q 1, ε) } δ(q 1,?,?) = { (q f, ε) } A de V a de T (ε, ε, S) q 0 q 1 (?,?, ε) q f (ε, A 1, α 1 )... (ε, A u, α u ) (a 1, a 1, ε)... (a v, a v, ε) Linguagens Formais e Autômatos - P. Blauth Menezes 37

Exp: AP Descendente: Duplo Balanceamento L = { a n b n n 1 } G = ({ S }, { a, b }, P, S) P = { S asb ab } GLC sem recursão à esquerda Autômato com pilha descendente M = ({ a, b }, { q 0, q 1, q f }, δ, q 0, { q f }, { S, a, b }) (ε, ε, S) q 0 q 1 (?,?, ε) q f (ε, S, asb), (ε, S, ab) (a, a, ε), (b, b, ε) Linguagens Formais e Autômatos - P. Blauth Menezes 38

6 Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 39

7.1.2 Algoritmo de Cocke-Younger-Kasami Algoritmo de Cocke-Younger-Kasami desenvolvido independentemente por J. Cocke, D. H. Younger e T. Kasami, em 1965 a partir de uma GLC na Forma Normal de Chomsky gera bottom-up todas as árvores de derivação da entrada w tempo de processamento proporcional a w 3 idéia básica tabela triangular de derivação célula: raízes que podem gerar a correspondente sub-árvore Linguagens Formais e Autômatos - P. Blauth Menezes 40

Def: Algoritmo de Cocke-Younger-Kasami ou CYK G = (V, T, P, S) w = a 1 a 2 a n entrada GLC na Forma Normal de Chomsky V r s células da tabela s conjunto de raízes para as árvores de derivação da subpalavra a 2...a n a 1 a 2... a n r Linguagens Formais e Autômatos - P. Blauth Menezes 41

Etapa 1: variáveis que geram diretamente terminais (A a) para r variando de 1 até n faça V r 1 = { A A a r P } Etapa 2: produções que geram duas variáveis (A BC) para s variando de 2 até n faça para r variando de 1 até n - s + 1 faça V r s = para k variando de 1 até s - 1 faça V r s = V rs { A A BC P, B V rk e C V (r+k) (s-k) } limite de iteração para r é (n - s + 1): a tabela é triangular V r k e V (r+k) (s-k) são as raízes das sub-árvores de V r s célula vazia: não gera qualquer sub-árvore Linguagens Formais e Autômatos - P. Blauth Menezes 42

Etapa 3: condição de aceitação da entrada. símbolo inicial pertence à V 1 n aceita (raiz de toda palavra) Linguagens Formais e Autômatos - P. Blauth Menezes 43

Exp: Algoritmo de Cocke-Younger-Kasami G = ({ S, A }, { a, b }, P, S) P = { S AA AS b, A SA AS a } S,A Como S é raiz da árvore de derivação, a entrada é aceita S,A S,A S,A S S,A S,A A S S,A A S A A S a b a a b Linguagens Formais e Autômatos - P. Blauth Menezes 44

6 Propriedades e Reconhecimento das LLC 7.1 Propriedades das LLC 7.1.1 Investigação se é LLC 7.1.2 Operações Fechadas sobre as LLC 7.1.3 Investigação se é Vazia, Finita ou Infinita 7.2 Algoritmos de Reconhecimento 7.2.1 Autômato com Pilha como Reconhecedor 7.2.2 Algoritmo de Cocke-Younger-Kasami 7.2.3 Algoritmo de Early Linguagens Formais e Autômatos - P. Blauth Menezes 45

7.1.3 Algoritmo de Early Algoritmo de Early desenvolvido em 1968 possivelmente o mais rápido algoritmo para LLC tempo de processamento proporcional a em geral: w 3 gramáticas não-ambíguas: w 2 muitas gramáticas de interesse prático: w Linguagens Formais e Autômatos - P. Blauth Menezes 46

Algoritmo top-down a partir de uma GLC sem produções vazias parte do símbolo inicial executa sempre a derivação mais à esquerda cada ciclo gera um terminal comparado com o símbolo da entrada sucesso -> construção do conjunto de produções que, potencialmente, pode gerar o próximo símbolo Linguagens Formais e Autômatos - P. Blauth Menezes 47

Def: Algoritmo de Early G = (V, T, P, S) w = a 1 a 2 a n GLC sem produções vazias palavra a ser verificada marcador " antecedendo a posição, em cada produção, que será analisada na tentativa de gerar o próximo símbolo terminal sufixo "/u" adicionado a cada produção indica o u-ésimo ciclo em que passou a ser considerada Linguagens Formais e Autômatos - P. Blauth Menezes 48

Etapa 1: construção de D 0 : primeiro conjunto de produções produções que partem de S (1) produções que podem ser aplicadas (2) em sucessivas derivações mais à esquerda (a partir de S) D 0 = para toda S α P (1) faça D 0 = D 0 { S α/0 } repita para toda A Bβ/0 D 0 (2) faça para toda B φ P faça D 0 = D 0 { B φ/0 } até que o cardinal de D 0 não aumente Linguagens Formais e Autômatos - P. Blauth Menezes 49

Etapa 2: construção dos demais conjuntos de produção n = w conjuntos de produção a partir de D 0 ao gerar a r, constrói D r : produções que podem gerar a r+1 para r variando de 1 até n (1) faça D r = ; para toda A α a r β/s D r-1 (2) faça D r = D r { A αa r β/s }; repita para toda A α Bβ/s D r (3) faça para toda B φ P faça D r = D r { B φ/r } para toda A α /s de D r (4) faça para toda B β Aφ/k D s faça D r = D r { B βa φ/k } até que o cardinal de D r não aumente Linguagens Formais e Autômatos - P. Blauth Menezes 50

(1) cada ciclo gera um conjunto de produções D r (2) gera o símbolo a r (3) produções que podem derivar o próximo símbolo (4) uma subpalavra de w foi reduzida à variável A inclui em D r todas as produções de D s que referenciaram A; Linguagens Formais e Autômatos - P. Blauth Menezes 51

Etapa 3: condição de aceitação da entrada. uma produção da forma S α /0 pertence a D n w foi aceita S α /0 é uma produção que parte do símbolo inicial S foi incluída em D 0 ("/0") todo o lado direito da produção foi analisado com sucesso (" " está no final de α) Linguagens Formais e Autômatos - P. Blauth Menezes 52

Otimização do Algoritmo de Early ciclos repita-até podem ser restritos exclusivamente às produções recentemente incluídas em D r ou em D 0 ainda não-analisadas. Linguagens Formais e Autômatos - P. Blauth Menezes 53

Exp: Algoritmo de Early: Expressão Simples "Expressão simples" da linguagem Pascal G = ({ E, T, F }, { +,, [, ], x }, P, E), na qual: P = { E T E+T, T F T F, F [E] x } Reconhecimento da palavra x x D 0 : E T/0 E E+T/0 T F/0 T T F/0 F [E]/0 F x/0 produções que partem do símbolo inicial produções que podem ser aplicadas em derivação mais à esquerda a partir do símbolo inicial Linguagens Formais e Autômatos - P. Blauth Menezes 54

D 1 : reconhecimento de x em x x F x /0 x foi reduzido a F T F /0 inclui todas as produções de D 0 que T T F/0 referenciaram F direta ou indiretamente E T /0 movendo o marcador " " E E +T/0 um símbolo para a direita D 2 : reconhecimento de em x x T T F/0 F [E]/2 F x/2 gerou ; o próximo será gerado por F inclui todas as produções de P que podem gerar o próximo terminal a partir de F Linguagens Formais e Autômatos - P. Blauth Menezes 55

D 3 : reconhecimento de x em x x F x /2 x foi reduzido à F T T F /0 incluído de D 2 (pois F x /2); entrada reduzida à T E T /0 incluído de D 0 (pois T T*F /0); entrada reduzida à E T T F/0 incluído de D 0 (pois T T F /0) E E +T/0 incluído de D 0 (pois E T /0) Como w = x x foi reduzida a E e como E T /0 pertence a D 3 entrada aceita Linguagens Formais e Autômatos - P. Blauth Menezes 56

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 57

Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 58