Geradores de analisadores léxicos

Slides:



Advertisements
Apresentações semelhantes
Tópicos em Compiladores
Advertisements

Compiladores Claudio Benossi
II – Análise léxica DEI Papel do analisador léxico.
II – Análise léxica DEI lex: linguagem de especificação para analisadores léxicos Implementação de simuladores de autómatos finitos Bibliografia aconselhada:
I - Noções dum compilador Partes dum compilador Ferramentas de construção de compiladores Bibliografia aconselhada: –Aho, Sethi e Ullman – Cap. 1 LFA 1999/2000.
III – Análise sintáctica Geradores de parsers Bibliografia aconselhada: –Aho, Sethi e Ullman – secção 4.9 LFA 1999/ Jorge Morais.
Compiladores I Cristiano Damiani Vasconcellos
Linguagem de Montagem Visão geral.
Deyvisson, Rafael M.P., Renato, Robson C.F., Rodolfo
Software Básico Silvio Fernandes
INTRODUÇÃO À PROGRAMAÇÃO
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Softwares.
YACC.
Lex e Yacc.
Relações em uma Gramática
Linguagem de Prog. e Programas
Autômatos Finitos Determinísticos
Construção de Compiladores
Tradutores de Linguagens
Técnicas de Programação I
Prof. Bruno Moreno Aula 4 – 11/03/2011
PROGRAMAÇÃO I UNIDADE 1.
Lex Linguagem (e compilador) para especificar analisadores léxicos.
Análise léxica e sintática
Ferramentas para a Construção de Compiladores: Lex & Yacc
Compiladores, Aula Nº 5 João M. P. Cardoso
Compiladores Prof. Claudio Benossi.
Análises léxica e sintática
SableCC José Francisco Pereira Equipe de Monitores
Análise léxica e sintática
Análise Léxica Primeira fase de um compilador
Mayerber Carvalho Neto
Professor: Márcio Amador
Capítulo II Gramáticas e Linguagens
Analise sintática aula-07-analise-sintática.pdf.
Paradigma funcional.
Análises léxica e sintática
Analise Semântica aula-10-analise-semântica.pdf.
Analisador Léxico Prof. Alexandre Monteiro
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Projeto de Linguagens de Programação
Compiladores Prof. Claudio Benossi.
Compiladores Análise Léxica
Equipe: Osias Carneiro, Anderson Soares, André Araújo
Análise Léxica Prof. Alexandre Monteiro
Aula 1 – Profª Danielle Costa
CES-41 COMPILADORES Aulas Práticas Capítulo II A Ferramenta Yacc.
Back-End Compilação aula-11-back-end.pdf.
Analisador Léxico.
CES-41 COMPILADORES Aulas Práticas
Programação Lógica com Prolog
Revisão Compiladores – AP1
Aula de SableCC Teoria e Implementação de Linguagens Computacionais (Compiladores) - IF688 – Artur Ribeiro de Aquino – ara Allan Jefferson – ajss.
COMPILADORES 04 Prof. Marcos.
Fundamentos de linguagens de programação
Compiladores – IF688 Professor: André Santos
Linguagens de Programação
Sintaxe de uma Linguagem
SISTEMAS DE INFORMAÇÃO
Faculdade Pernambuca - FAPE
PLP – JavaCC Java Compiler Compiler
2.
Aula 6 1 Análise Lexical Compiladores, Aula Nº 6 João M. P. Cardoso.
Compilador Software que traduz o texto (linguagem fonte) que representa um programa para código máquina(linguagem alvo) capaz de ser executado pelo.
Faculdade Pernambuca - FAPE Compiladores Abril/2007 Compiladores Abril/2007.
Informática Teórica Engenharia da Computação. Teoria da Computação Contexto do que vamos começar a estudar As linguagens também podem ser definidas formalmente.
COMPILADORES 03 Prof. Marcos.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
Transcrição da apresentação:

Geradores de analisadores léxicos

O que é? Até o momento desenvolvemos o nosso próprio analisador léxico a partir de um autômato finito. Dessa forma fizemos algo parecido com o diagrama abaixo que representa um autômato e uma implementação que simula o funcionamento desse autômato.

Implementar um analisador léxico é uma tarefa muito trabalhosa, como essa complexidade é frequente surgiriam algumas ferramentas que apoiam esse tipo de programação. Essas ferramentas são conhecidas como geradores de analisadores léxicos, elas automatizam o processo de implementação de um autômato no reconhecimento de sentenças regulares partir de expressões regulares. Existem diversas implementações para gerar analisadores léxicos para diferentes linguagens de programação.

Exemplo de GAL Flex – versão GNU do lex para C. http://flex.sourceforge.net/ JFlex – versão Java com pequena diferença na sintaxe de entrada. http://jflex.de/download.html Turbo Pascal Lex/Yacc http://www.musikwissenschaft.uni-mainz.de/~ag/tply/ Flex++ http://www.kohsuke.org/flex++bison++/ CSLex – versão C#, derivada do Jlex. http://www.cybercom.net/~zbrad/DotNet/Lex

Os geradores de analisadores léxicos geram rotinas para fazer a análise léxica de uma linguagem de programação a partir de um arquivo de especificações contendo basicamente expressões regulares que descrevem os tokens. É possível fazer a identificação de cada token através do seu padrão, após esse processo é gerado um arquivo fonte com a implementação do analisador léxico que transforma os padrões de em uma sequencia de tokens O GAL utiliza uma linguagem denominada linguagem Lex e a ferramenta em si é conhecida como “compilador Lex”.

JFlex A figura abaixo define a estrutura de um processo de geração de um analisador léxico utilizando a ferramenta JFlex, outros analisadores que implementam a linguagem Lex utilizando o mesmo processo

Um arquivo de entrada escrito em linguagem Lex chamado regras Um arquivo de entrada escrito em linguagem Lex chamado regras.flex descreve o analisador léxico em si, o “Flex transforma o arquivo regras.flex em um código fonte Java chamado do yylex.java que será utilizado para processar o fluxo de caracteres da linguagem de programação.

Estrutura básica da linguagem Lex. Declarações %% %{ Funções - variaveis %} Definições regulares Regras de tradução