Construção de Ambiente
para
Edição de Programas
bolsista: Giorgio Prímola Ferreira G. Torresorientador: Vladimir Oliveira Di Iorio
UNIVERSIDADE FEDERAL DE VIÇOSACENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
DEPARTAMENTO DE INFORMÁTICA
VIÇOSA, OUTUBRO/2011
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
• Linguagens de programação
– Linguagens de domínio específico (DSL’s)
• Gramáticas pequenas
– Linguagens de propósito geral (GPL)
• Gramáticas muito grandes
• Plataformas de programação
– Linguagem de programação + Bibliotecas
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
• Ambientes de edição de programas (IDE)
– Oferecem recursos de programação para linguagens
– Aceleram o processo de desenvolvimento
– Java: Eclipse e NetBeans.
public class Point {private int x;private int y;private String name = “P1”;
public void setX(int X) { this.x = X; }public void setY(int Y) { this.y = Y; }
}
public class Point {private int x;private int y;private String name = “P1”;
public void setX(int X) { this.x = X; }public void setY(int Y) { this.y = Y; }
}
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
• Coloração da sintaxe (Syntax Highlighting)
• Validação (Syntax Validation)
CompilationUnit ->PackageImports*ClassDef
ClassDef ->Modif? “class” ID (Extends)? (Implements)? “{” ClassBody “}”
package com.exemplo;import java.util.List;public class SomeClass {
private String name = “P1”;
public String getName() { return name; }public void setName(String N) { this.name = N; }
}
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
Resolução de Referência
Balão de Ajuda
Verificação de erros
Ocultação de código
Vista de destaques
Auto-completar
Introdução – Recursos – ObjetivoXText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
• Conhecer e estudar duas ferramentas meta-ambientes para a IDE Eclipse, para futuramente implementar um ambiente que ofereça recursos para a linguagem XAJ
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
• Ferramenta de código aberto criada pela empresa Itemis
• Foco: linguagens de domínio específico (DSL’s)
• Oferece suporte a todos os recursos de ambiente de desenvolvimento de programas
• Utiliza analisador sintático (parser) gerado pela ferramenta ANTLR
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
• Ainda não possui definições de gramáticas de linguagens de propósito geral como Java, C++, AspectJ, etc
• Não possui mecanismo para extensão de GPL
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
• Ferramenta de código aberto que reúne outras ferramentas poderosas de transformação de código: Stratego, IMP e SDF
• Oferece suporte a todos os recursos de ambientes de edição de programas (IMP)
• Como Spoofax utiliza a SDF suporta linguagens grandes
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
• Já possui definições de Java, AspectJ e outras GPL’s
• Possui mecanismo para extensão de linguagens
• Poderoso mecanismo de definição modular de sintaxe
Introdução – Recursos – Objetivo
XText – Spoofax – ResultadosTrabalhos Futuros – Dúvidas – Bibliografia
• Spoofax foi o meta-ambiente escolhido para construir o ambiente de XAJ
• Teste de comparação de desempenho entre os analisadores sintáticos Rats! e JSGLR.
• Seção “Comparação com Trabalhos Similares” do artigo “Definição Modular da Gramática de AspectJusando Parsing Expressin Grammar” que foi submetido ao Workshop Latino-Americano em Desenvolvimento de Software com Orientação a Aspectos de 2011(LA-WASP 2011), e foi um dos 7 trabalhos aprovados, dos 19 submetidos ao simpósio.
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
• Implementação do Ambiente de Desenvolvimento para a linguagem XAJ
• Trabalhos sobre definição modular de gramáticas extensíveis
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia
Introdução – Recursos – Objetivo
XText – Spoofax – Resultados
Trabalhos Futuros – Dúvidas – Bibliografia• Di Iorio, V. O.; Reis, L. V. d. S.; Bigonha, R. d. S. & Bigonha, M. A. d. S. (2009). A proposal for
extensible AspectJ. In DSAL '09: Proceedings of the 4th workshop on Domain-specific aspectlanguages, pp. 2124, New York, NY, USA. ACM.
• Reis, L. V. d. S.; Di Iorio, V. O.; Bigonha, R. d. S.; Bigonha, M. A. d. S. & Ladeira, R. d. C. (2009). XAJ: Anextensible aspect-oriented language. In Proceedings of the III Latin American Workshop onAspect-Oriented Software Development, pp. 57-62. Federal University of Ceará.
• XTEXT. Versão: 2.0. [S.l.]: Itemis, 2008. Disponível em:<http://xtext.itemis.com/xtext/language=en/36553/downloads>. Acesso em: 24 de julho de 2011.
• Lennart C. L. Kats, Eelco Visser. The Spoofax Language Workbench. Rules for DeclarativeSpecification of Languages and IDEs. In Martin Rinard, editor, Proceedings of the 25th AnnualACM SIGPLAN Conference on Object Oriented Programming, Systems, Languages, and Applications(OOPSLA 2010), ACM, 2010.
• SDF Syntax Definition Formalism. Versão: n/a. [S.l.]: ProgramTransformationOrg, 2000.Disponível em: <http://www.syntax-definition.org/>. Acesso em: 25 de julho de 2011.
Top Related