Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por...

Post on 05-Dec-2014

1.215 views 0 download

description

Por: Giorgio Torres torres.giorgio@gmail.com

Transcript of Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por...

Analisador

Léxico

Extensível• Introdução

• Linguagem de

Programação

• XAJ

• Compilador

• Análise Léxica

• Polyglot

• Compilador de XAJ

• Objetivo

• Analisador Léxico Extensível

• Apêndice - Código

Introdução

Um analisador léxico faz a identificação

dos símbolos que pertencem a uma

linguagem de programação.

Linguagem de Programação

Alfabeto formado por símbolos

Sintaxe definida por produções

Compilador

XAJ

XAJ é uma extensão da AspectJ.

Permite estender sua sintaxe concreta.

Traz a unidade de compilação SyntaxClass.

Desafio: compilador.

Compilador

Um compilador faz tradução de uma linguagem de programação de alto nível para uma linguagem de hardware.

É exclusivo para uma linguagem de programação.

Um compilador pode ser construído utilizando ferramentas.

O processo de compilação é dividido em etapas.

Análise Léxica

Identifica padrões da linguagem num

programa.

Um padrão é um símbolo do alfabeto de

uma linguagem.

Polyglot

Ferramenta que auxilia o compilador de XAJ a estender sua sintaxe

Framework

Utiliza a ferramenta JFlex para gerar seu analisador léxico.

Não permite estender o alfabeto da linguagem – reconhecimento de novos símbolos.

Compilador de XAJ

Compila AspectJ

Utiliza o Polyglot para permitir extensibilidade sintática

SyntaxClass

Problema: as classes sintáticas podem trazer novos símbolos. O Polyglot não reconhece novos símbolos.

Objetivo

Fazer o analisador léxico do Polyglot

reconhecer símbolos novos.

Analisador Léxico Extensível

Identificar símbolos diferentes.

Nomeá-los.

Defini-los para a ferramenta JFlex gerar

analisador que os reconheça.

Analisador Léxico Extensível

Contato

torres.giorgio@gmail.com

giorgio.torres@ufv.br