Creating an Eclipse-based IDE for the D programming language

Slides:



Advertisements
Apresentações semelhantes
Desenvolvimento de Plug-ins Orientado a Testes
Advertisements

Carlos Roberto Marques Junior
Linguagem de Programação I
Programação em Java Prof. Maurício Braga
CALE Curso de Acesso ao Computador Pessoal Usando o Leitor de Ecrã João Moutinho FEUP.
Rational Unified Process
Teste de Software.
Iniciando na plataforma Eclipse
Identificando requisitos
Unified Modeling Language (UML) - Modelação da Arquitectura -
Adriano Teixeira João Vide Luís Silva Maria Pedroto
O Essencial sobre Linguagens de Programação Luís Caires Maio 2005.
Creating IDEs for the Eclipse Platform Survey de Introdução à Investigação.
Rational Unified Process(RUP)
Projeto de Sistemas de Software
Chain of Responsibility
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Francesca Volcan Pio Maiara Heil Cancian Ricardo Bedin França
Aplicação da modelagem 3D no setor Industrial
Testes de Mutação baseado no artigo de Mário Correia,
Uso do Eclipse/SourceForge Paradigmas de Linguagem de Programação
Grupo 5: Fernando Lourenço Pinho Costa Rafael de Souza Santos
Especificação de Requisitos em PIT-RSL
Classes e objetos Modelagem
O Portal do Estudante de Computação
Uma visão geral Grupo: Alexandre Henrique Vieira Soares
1 T-Flex permite criar relações entre elementos dos conjuntos através de ligações geométricas. Assim pode-se criar modelos exactos, gerir e editar conjuntos.
ES – 2º Apresentação Teórica. Rename Method O nome de um método não revela o seu propósito.Motivação Métodos devem ser chamados de uma forma que comuniquem.
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
Distributed Data-Parallel Computing Using a High-Level Programming Language TL1 – Programação com Objetos Distribuídos.
Análise léxica e sintática
Projeto de Sistemas de Informação
Grupo PHP MADS - FEUP 2009/ /01/ Agenda Contexto Tecnologias Ferramentas Arquitectura lógica Arquitectura física Processo de desenvolvimento.
Tecnologias para Apresentação de Publicidade UMa | DME | 2009 Sistemas Multimédia Nuno Santos | Paulo Teixeira |
Estudo dos Conceitos e Paradigmas de Programação
Análise léxica e sintática
Faculdade de Tecnologia SENAC Pelotas
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Modelos de Processo de Software
XIV Jornada de Cursos .NET com C# Antônio Júnior Bruno Inojosa.
2005 Cin - Centro de Informática - Universidade Federal de Pernambuco – UFPE Iniciação Científica Visual # Tool Bolsista: Rodrigo Cavalcante Mendes Orientadores:
Repositório de Suporte ao Reuso de Software Felipe Roos Joana Trindade.
Professor: Márcio Amador
Semântica de Ações Especificação Completa de Specimen, Actress, Projeto RAT, Considerações Finais.
Inteligência Artificial Web Semântica
OMNeT++.
Processos de Software.
Desenvolvimento da Aplicação de Gestão de Licenças de Táxi Luís Miguel da Silva Arêde associação de informática da região centro.
Linguagem de programação. Histórico  Concebida em 1993 por Yukihiro Matsumoto  Primeiro livro em inglês saiu em setembro de 2000  Ruby on Rails é lançado.
Desenvolvimento de Software Dirigido a Modelos
A Linguagem Formal de Especificação VDM-SL
Ferramenta de Modelagem de Requisitos e Agentes (TAOM4e) Laís Xavier Prof.: Jaelson Castro.
Google Web Toolkit Milton Bittencout Augusto Verzbickas João Paulo Maiamaral Bruno Eduardo.
Grupo: Gustavo de Castro Costa Samuel Furtado e Silva Wesley Ferreira.
1 Uso do Eclipse/CVS na cadeira Paradigmas de Linguagem de Programação Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt) Euclides Neto (enan) Prof.:
Java Disciplina: Programação II Professora: Mai-Ly Vanessa.
1 Projeto PDesigner. 2 Agenda PDesigner 3 Motivação MPSoC –Modelagem –Simulação –Análise Integração de Padrões Internacionais –ArchC 2.0 –Distribuição:
Gestão da Configuração do Software
1 III Workshop InteGrade InteGrade IDE – Um Ambiente Integrado de Desenvolvimento para o InteGrade Eduardo Leal Guerra Orientador: Prof.
Programação Pragmática Carla Maria Pinheiro. 05/11/2004 Tópicos Avançados Engenharia de Software 3 Agenda O que é Programação Pragmática? Programador.
UML (Unified Modeling Language) Linguagem Unificada de Modelagem
Equipe: Kéren Glaucya Marco Aurélio. INTRODUÇÃO  JCreator é um IDE, ou seja, é um Ambiente de Desenvolvimento Integrado, criado pela empresa Xinox Software.
RUP – Rational Unified Process Márcia Seabra Cabral Prof. Augusto Sampaio Centro de Informática - UFPE.
OCLE Object Constraint Language Environment Fábio Moura CIn-UFPE.
JBuilder Daniel Almeida, Dayene Mendes, Gustavo Ribeiro, Thiago Dias.
Desenvolvimento WEB II Ajax – Utilização de Frameworks Javascript Professora: Kelly de Paula Cunha.
Capítulo 7 Arthur J. Klas. Design Digital. Pontifícia Universidade Católica do Paraná.
Mauricio Barbosa e Castro.  A construção de um produto multimídia se faz através de um projeto.  O escopo e a complexidade de um projeto de multimídia.
Desenvolvimento Automático de Sistemas Coordenador: Prof. Alberto Silva João Saraiva, Nº Apresentação do TFC.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Transcrição da apresentação:

Creating an Eclipse-based IDE for the D programming language by Bruno Medeiros, VERSION 2. http://www.dsource.org/projects/descent/wiki/Mmrnmhrm

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.

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.

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.

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

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.

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.

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.

Creating an Eclipse-based IDE for the D programming language DEMONSTRAÇÃO...

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).

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.