Apresentação - Extensibilidade Léxica de Compiladores - Compilers Lexical Extensibility - Por...
-
Upload
gprimola -
Category
Technology
-
view
1.215 -
download
0
description
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