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

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

IV Gramáticas Livres de Contexto

Capítulo II Gramáticas

Capítulo II Gramáticas

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

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

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

Como construir um compilador utilizando ferramentas Java

LINGUAGENS FORMAIS E AUTÔMATOS

Universidade Federal de Alfenas

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

EXPRESSÃO REGULAR PARA UMA FUNÇÃO EQUIVALENTE EM PASCAL, UTILIZANDO DOIS ALGORITMOS BASEADOS NO TEOREMA DE KLEENE RONALD GLATZ

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

INCLUSÃO DO ALGORITMO DE TRANSFORMAÇÃO DE UM AUTÔMATO FINITO EM EXPRESSÃO REGULAR NO AMBIENTE EDITOR DE AUTÔMATOS FINITOS

Linguagens Formais e Autômatos P. Blauth Menezes

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

Gramáticas Livres de Contexto

Universidade Federal de Alfenas

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

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. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Linguagens Livres de Contexto

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

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

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

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

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Linguagens Formais e Autômatos P. Blauth Menezes

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

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

I LINGUAGENS E PROCESSADORES: INTRODUÇÃO 1

Linguagens Formais e Autômatos

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:

Linguagens Formais e Autômatos P. Blauth Menezes

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

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

Linguagens e Programação Gramáticas. Paulo Proença

Linguagens Formais e Problemas de Decisão

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Introdução Análise Sintática Descendente Análise Sintática Ascendente. Aula Prática. Fernando Antônio Asevedo Nóbrega

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.

COMPILADORES. Revisão Linguagens formais Parte 02. Prof. Geovane Griesang

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1

Gramática. Gramática. Gramática

Linguagens Formais e Autômatos P. Blauth Menezes

Compiladores. Prof. Bruno Moreno Aula 8 02/05/2011

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos

Análise Sintática. Fabiano Baldo

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

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

FACULDADE LEÃO SAMPAIO

Linguagens Livres de Contexto

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

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

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Linguagens Formais e Autômatos P. Blauth Menezes

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

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

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

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

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

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

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

Máquinas de Turing - Computabilidade

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

Histórico e motivação

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

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

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

Hierarquia de Chomsky e sua relação com os autômatos

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

Ferramenta de apoio a identificação de eventos utilizando Linguagem Natural. Aluno: Ricardo Tomelin Orientador: Everaldo Artur Grahl

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

O que é Linguagem Regular. Um teorema sobre linguagens regulares. Uma aplicação do Lema do Bombeamento. Exemplo de uso do lema do bombeamento

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

Autômatos Finitos Não Determinís5cos (AFN)

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

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

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

Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010

INF1626 Linguagens Formais e Autômatos em

Um Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1

Linguagens Formais e Autômatos P. Blauth Menezes

Análise Léxica. Fundamentos Teóricos. Autômatos Finitos e Conjuntos Regulares (cap. III da apostila de Linguagens Formais e Compiladores)

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB DEPARTAMENTO DE CIÊNCIAS EXATAS - DCE PLANO DE CURSO DISCIPLINA

Gramá3ca Livre de Contexto (GLC)

Modelagem e CLP Autômatos

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

Capítulo 3: Gramáticas

Expressões Regulares. Tiago Alves de Oliveira

SCC-5832 Teoria da Computação

Transcrição:

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 Objetivos Hierarquia de Chomsky Tipos de Recursividade Recursividade Não-Auto-Embutida à Esquerda Recursividade Não-Auto-Embutida à Direita Recursividade Auto-Embutida Montagem da Expressão Regular Teorema de Kleene

Introdução Mostrar uma forma de conversão de uma linguagem livre do contexto na íntegra para uma expressão regular estendida; Existem métodos para transformação de uma linguagem livre do contexto, mas não na sua totalidade para expressões regulares; Problema quando existe definição auto-embutida (recursividade).

Motivação O fato que motivou o desenvolvimento deste trabalho foi a relação entre linguagens livres do contexto e linguagens regulares e a possibilidade de validar as linguagens livres do contexto utilizando os teoremas usados para validar as linguagens regulares; O assunto sobre transformações de uma linguagem livre do contexto na sua íntegra para uma expressão regular não foi encontrado na literatura tradicional;

Objetivos transformar linguagens livres do contexto em uma expressão regular estendida; eliminar a recursividade que possa surgir no processo de transformação; aplicar o Teorema de Kleene para criação do autômato finito determinístico.

Hierarquia de Chomsky Linguagens Enumeráveis Recursivamente ou Tipo 0 Linguagens Sensíveis ao Contexto ou Tipo 1 Linguagens Livres do Contexto ou Tipo 2 Linguagens Regulares ou Tipo 3 Linguagens Abordadas

Composição das produções de uma Gramática Livre do Contexto N A y #id Símbolo Pode Ser uma Opção Operador OU Símbolo vazio Identificador léxico Literal Não-Terminal Não-Terminal

Tipos de Recursividade que podem ser encontrados N α 1 N β 1 α n Não-Auto-Embutidas À direita À esquerda Auto-Embutidas

Recursividade Não-Auto-Embutida à Esquerda N N α 1 β 1 N α n β n Opções com Recursividade N (β 1 β n ) (α 1 α n ) * Operador Estrela

Recursividade Não-Auto-Embutida à Direita N α 1 N β 1 α n N β n Opções com Recursividade N (α 1 α n ) * (β 1 β n ) Operador Estrela

Recursividade Auto-Embutida N α 1 N α n β 1 β n Opção com Recursividade N α 1 ~ (β 1 β n ) α n Operadores de Iteração

Montagem da Expressão Regular N A 'a' C A 'c' C 'd' C 'x' ( 'd' )* ( x' ) N A a C N (1) N (2) a C a * c c d x ( c ) a C ( c ) a ( 'd' ) * ( x' )

Árvore com os operadores de iteração N a N b x N a~ ( x ) b N ~ a x b

Teorema de Kleene Qualquer conjunto reconhecido por uma máquina de estado finito é regular, e qualquer conjunto regular pode ser reconhecido por uma máquina de estado finito determinístico.

Transformação de uma expressão regular em um autômato finito determinístico pelo método tradicional de Kleene Para tanto são necessários os seguintes passos: transformar a expressão regular em um grafo de transições; transformar o grafo de transições em uma tabela de transições; a partir da tabela gerar o autômato finito determinístico.

Algoritmo de Kleene para transformação da expressão regular em um grafo de transições R - X + Y A A B B I J I K J A A + B I J I J B Λ A * Λ I J I K J A

Transformação da Expressão Regular: a ( b c )* em um Grafo de Transições pelo método tradicional de Kleene a ( b c )* 1-2 + a ( b c )* 1-2 3 + a ( b c ) 1-2 3 4 + b 1 - a 2 3 4 + c

Tabela de transições b 1 - a 2 3 4 + c mi a b c final { 1 } { 2, 3, 4 } { 3, 4 } { 2, 3, 4 } { } { } { } { 3, 4 } { 3, 4 } + { } { 3, 4 } { 3, 4 } + b - a b + + {3, 4 } { 1 } { 2, 3, 4 } c c

Algoritmo do Desmonte transformar a expressão regular da forma infixa a (b c)* para forma pós-fixa; montar a tabela para construção do grafo para a expressão regular na forma pós-fixa: abc *. ; gerar o autômato finito determinístico a partir desta tabela.

Tabela para construção do grafo para a expressão pós-fixa: abc *. Nó de Saída Símbolo Próximo Nó 1. 4 1 2 2 3 3 3 3 a * b c 2 4 3 4 3 3 3

Grafo de Transições Nó de Saída Símbolo Próximo Nó 1 a 2 2 3 3 4 3 b 3 3 c 3 b 1 - a 2 3 4 + c

Autômato finito determinístico b 1 - a 2 3 4 + c mi a b c final { 1 } {2,3,4} { } { } { 2, 3, 4} { 3, 4} { } {3, 4} {3, 4} + { } {3, 4} {3, 4} + b - a b + + {3, 4 } { 1 } { 2, 3, 4 } c c

Conclusão Para atingir o objetivo de transformar L.L.C. para E.R. foram introduzidos 2 novos operadores de iteração ( ~, ), modificando suas características originais tornando-a estendida; Para duas classificações de linguagem (regulares e livres do contexto) - duas notações diferentes para representá-las - com este trabalho é proposto uma única notação para representar os dois tipos de linguagem; foi necessário retirar todos os tipos de recursividade, o que inicialmente não havia sido previsto;

Extensões os operadores de iteração deverão ser tratados na transformação do grafo para autômato finito determinístico; fazer o tratamento de ações semânticas dirigidas pela sintaxe quando da transformação de uma linguagem livre do contexto para expressão regular;