Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouCecília Serpa Alterado mais de 10 anos atrás
1
Creating an Eclipse-based IDE for the D programming language
by Bruno Medeiros, VERSION 2.
2
Motivação O que é a linguagem D? Porquê uma IDE para D?
Linguagem recente, desenhada para substituir o C++. Linguagem da familia do C, estaticamente tipificada, compilada, com meta-programação. Porquê uma IDE para D? A toolchain e bibliotecas são tão importantes como a linguagem em si, e havia lacunas neste aspecto. Porquê uma IDE baseada em Eclipse? Eclipse Platform – uma framework extensiva para a criação de IDEs. Interface e comportamento uniforme. Possibilidade de integração entre linguagens.
3
Uma IDE para D Objectivos iniciais:
Editor de código D. Gestão de projecto. Project Builder. Open Definition. Find References. Code Completion. Code Templates. Vistas de Outline e Type Hierarchy. Formatação de código. Refactoring simples (refactor-rename). Construir algo usável e reaproveitável.
4
Abordagem Analisar o estado da arte. Estudar o JDT.
Leitura da documentação, artigos. Leitura do código. Elementos principais: Parser para a linguagem. Integração com Eclipse. Análise de ferramentas e código existentes. Não havia muito que pudesse ser usado. Desenvolver parser.
5
Desenvolvimento inicial
Initicialmente desenvolvido um parser ANTLR mas depois foi adoptado o parser DMD/Descent. Funcionalidade semântica (find-definition) é iniciado a partir deste. Protótipo inicial de find-definition realizado Funciona apenas para um conjunto pequeno da linguagem. Mas mostra como poderá ser implementado na sua totalidade. Próximo passo: Eclipse
6
Integração com o Eclipse
Protótipo completo: Editor com syntax highlighting. Editor outline. Comandos UI para find-definition. Syntax Highlighting configurável. D project nature e project wizard. D project model e UI. Eclipse Platform é de facto bastante poderosa e extensiva. Mas ao preço de uma curva de aprendizagem bastante elevada, particularmente para uma IDE.
7
Funcionalidade semântica.
Find-Definition Definitions and References. Scope lookup. DMD AST inadequada -> conversão da AST. Code Completion. Versão modificada da funcionalidade anterior. Unit testing para a funcionalidade semântica. Completar detalhes, actualizar parser. Lançada a primeira versão pública da IDE.
8
Funcionalidade Avançada
Funcionalidades avançadas da IDE: DOM AST. Model caching. Model indexing. Refactoring. É então que surge o DLTK. Model caching & indexing. Java-like project model. Muito código UI comum. Projecto convertido para DLTK, com resultados bastante bons.
9
Creating an Eclipse-based IDE for the D programming language
DEMONSTRAÇÃO...
10
Conclusões Eclipse bastante extensivel e poderoso.
Requer bastante esforço em aprendizagem. Mas compensa face ao desenvolvimento de raiz. Componentes essenciais da IDE: parser, AST, motor semântico. Vários aspectos a ter em conta para a implementação do core da IDE. Em desenvolvimento novos projectos para dar ainda mais funcionalidade à Eclipse Platform (DLTK, IMP).
11
Trabalho futuro Integração com futuras versões do DLTK.
Actualizar para os novos desenvolvimentos da linguagem D. Integração com o Descent. Melhorar o motor de análise semântica. Melhoramentos no parser (error recovery). Desenvolver refactoring.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.