SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
UNIVERSIDADE FEDERAL DE VIÇOSA
       CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
            DEPARTAMENTO DE INFORMÁTICA



Construção de Ambiente
         para
 Edição de Programas
bolsista: Giorgio Prímola Ferreira G. Torres
orientador: Vladimir Oliveira Di Iorio


                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.
Introdução – Recursos – Objetivo
 XText – Spoofax – Resultados
 Trabalhos Futuros – Dúvidas – Bibliografia

• Coloração da sintaxe (Syntax Highlighting)
public class Point {             public class Point {
   private int x;                   private int x;
   private int y;                   private int y;
   private String name = “P1”;      private String name = “P1”;

    public void setX(int X)          public void setX(int X)
    { this.x = X; }                  { this.x = X; }
    public void setY(int Y)          public void setY(int Y)
    { this.y = Y; }                  { this.y = Y; }

}                                }
Introdução – Recursos – Objetivo
 XText – Spoofax – Resultados
 Trabalhos Futuros – Dúvidas – Bibliografia

• Validação (Syntax Validation)
package com.exemplo;                CompilationUnit ->
import java.util.List;                     Package
public class SomeClass {                   Imports*
   private String name = “P1”;             ClassDef

    public String getName()         ClassDef ->
    { return name; }                       Modif? “class” ID
    public void setName(String N)          (Extends)?
    { this.name = N; }                     (Implements)?
                                           “{” ClassBody “}”
}
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 – Objetivo
XText – 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 – Resultados
Trabalhos 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 AspectJ
  usando 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 aspect
         languages, 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: An
         extensible aspect-oriented language. In Proceedings of the III Latin American Workshop on
         Aspect-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 Declarative
        Specification of Languages and IDEs. In Martin Rinard, editor, Proceedings of the 25th Annual
        ACM 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.

Contenu connexe

Similaire à Ferramentas para Construção de IDE

Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacao
pablogranola
 
Planode Aula
Planode AulaPlanode Aula
Planode Aula
softeam
 

Similaire à Ferramentas para Construção de IDE (20)

LabTeX Presentation
LabTeX  PresentationLabTeX  Presentation
LabTeX Presentation
 
001 cesep - turma java
001   cesep - turma java001   cesep - turma java
001 cesep - turma java
 
Algoritomos aula 3 rafael
Algoritomos aula 3 rafaelAlgoritomos aula 3 rafael
Algoritomos aula 3 rafael
 
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutosTDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
 
R: a alternativa ao SPSS e ao NVivo em software livre
R: a alternativa ao SPSS e ao NVivo em software livreR: a alternativa ao SPSS e ao NVivo em software livre
R: a alternativa ao SPSS e ao NVivo em software livre
 
Linguagem Python
Linguagem PythonLinguagem Python
Linguagem Python
 
Python x R: mas e o Weka?
Python x R: mas e o Weka? Python x R: mas e o Weka?
Python x R: mas e o Weka?
 
TDC2016SP - Python x R: mas e o Weka?
TDC2016SP - Python x R: mas e o Weka?TDC2016SP - Python x R: mas e o Weka?
TDC2016SP - Python x R: mas e o Weka?
 
Automação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com PythonAutomação de Aplicativos: Scripting com Python
Automação de Aplicativos: Scripting com Python
 
Swift na linha de comando
Swift na linha de comandoSwift na linha de comando
Swift na linha de comando
 
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfPARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
 
ANTLR & ANTTLRWorks
ANTLR & ANTTLRWorksANTLR & ANTTLRWorks
ANTLR & ANTTLRWorks
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5
 
Atps paradigmas linguagem programacao
Atps paradigmas linguagem programacaoAtps paradigmas linguagem programacao
Atps paradigmas linguagem programacao
 
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrõesMC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
MC31 - Desenvolvimento um Aplicativo completo usando JSF, EJB e padrões
 
Conhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java PlatformConhecendo a JSR 223: Scripting for the Java Platform
Conhecendo a JSR 223: Scripting for the Java Platform
 
Planode Aula
Planode AulaPlanode Aula
Planode Aula
 
Aula 1 - Seja um programador Java
Aula 1 - Seja um programador JavaAula 1 - Seja um programador Java
Aula 1 - Seja um programador Java
 
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO ILIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
LIVRO PROPRIETÁRIO - PROGRAMAÇÃO I
 
SFD - C# para a comunidade
SFD - C# para a comunidadeSFD - C# para a comunidade
SFD - C# para a comunidade
 

Ferramentas para Construção de IDE

  • 1. UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS DEPARTAMENTO DE INFORMÁTICA Construção de Ambiente para Edição de Programas bolsista: Giorgio Prímola Ferreira G. Torres orientador: Vladimir Oliveira Di Iorio VIÇOSA, OUTUBRO/2011
  • 2. 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
  • 3. 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.
  • 4. Introdução – Recursos – Objetivo XText – Spoofax – Resultados Trabalhos Futuros – Dúvidas – Bibliografia • Coloração da sintaxe (Syntax Highlighting) public class Point { public class Point { private int x; private int x; private int y; private int y; private String name = “P1”; private String name = “P1”; public void setX(int X) public void setX(int X) { this.x = X; } { this.x = X; } public void setY(int Y) public void setY(int Y) { this.y = Y; } { this.y = Y; } } }
  • 5. Introdução – Recursos – Objetivo XText – Spoofax – Resultados Trabalhos Futuros – Dúvidas – Bibliografia • Validação (Syntax Validation) package com.exemplo; CompilationUnit -> import java.util.List; Package public class SomeClass { Imports* private String name = “P1”; ClassDef public String getName() ClassDef -> { return name; } Modif? “class” ID public void setName(String N) (Extends)? { this.name = N; } (Implements)? “{” ClassBody “}” }
  • 6. 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
  • 7. Introdução – Recursos – Objetivo XText – 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. Introdução – Recursos – Objetivo XText – Spoofax – Resultados Trabalhos 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 AspectJ usando 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.
  • 13. 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
  • 14. Introdução – Recursos – Objetivo XText – Spoofax – Resultados Trabalhos Futuros – Dúvidas – Bibliografia
  • 15. 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 aspect languages, 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: An extensible aspect-oriented language. In Proceedings of the III Latin American Workshop on Aspect-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 Declarative Specification of Languages and IDEs. In Martin Rinard, editor, Proceedings of the 25th Annual ACM 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.