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

12
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

description

Por: Giorgio Torres [email protected]

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

Page 1: Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por Giorgio Torres

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

Page 2: Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por Giorgio Torres

Introdução

Um analisador léxico faz a identificação

dos símbolos que pertencem a uma

linguagem de programação.

Page 3: Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por Giorgio Torres

Linguagem de Programação

Alfabeto formado por símbolos

Sintaxe definida por produções

Compilador

Page 4: Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por Giorgio Torres

XAJ

XAJ é uma extensão da AspectJ.

Permite estender sua sintaxe concreta.

Traz a unidade de compilação SyntaxClass.

Desafio: compilador.

Page 5: Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por Giorgio Torres

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.

Page 6: Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por Giorgio Torres

Análise Léxica

Identifica padrões da linguagem num

programa.

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

uma linguagem.

Page 7: Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por Giorgio Torres

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.

Page 8: Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por Giorgio Torres

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.

Page 9: Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por Giorgio Torres

Objetivo

Fazer o analisador léxico do Polyglot

reconhecer símbolos novos.

Page 10: Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por Giorgio Torres

Analisador Léxico Extensível

Identificar símbolos diferentes.

Nomeá-los.

Defini-los para a ferramenta JFlex gerar

analisador que os reconheça.

Page 11: Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por Giorgio Torres

Analisador Léxico Extensível