Projecto de fim de curso Licenciatura em Ensino de Informática, Informática e Engenharia de Sistemas e Informática Análise comparativa e desempenho da linguagem de programação D Introdução A linguagem de programação D foi concebida em Dezembro de 1999 por Walter Bright como uma evolução das linguagens C/C++. Esta linguagem está a um nível mais alto que C++ mas contínua a permitir chamadas à API do sistema operativo em baixo nível tal como o C. Ao contrário de outras linguagens que evoluíram do C/C++ como Java e C#, não é uma linguagem interpretada baseada numa máquina virtual, mas sim compilada. De facto a linguagem D foi desenhada com intenção de ser relativamente simples o desenvolvimento de um compilador (com optimizador), tentando manter-se a portabilidade do código fonte entre compiladores, máquinas e sistemas operativos. Objectivos Comparar a linguagem D, ao nível da sintaxe com as linguagens C++, C# e Java2. Comparar a geração de código (compilação) do compilador da linguagem D, com o compilador da linguagem C e com as linguagens C# e Java2. Implementar uma pequena biblioteca de cálculo matricial que permita desenvolver aplicações para comparar o desempenho (benchmarking) das linguagens D, C, C++, C# e Java2, para cálculo intensivo. Bibliografia Stroustrup, B., The C++ Programming language (3rd edition), Addison-Wesley Martins, F. Mário, Programação Orientada por Objectos em Java 2 (3ª edição), Tecnologias de informação, FCA editores. Liberty, Jesse, Programmimg C# (4th edition), O’Reilly Projecto Mono: http://www.mono-project.com/Main_Page Linguagem de programação D: http://www.digitalmars.com/d/ Pré-requisitos Conhecimentos sólidos de programação nas linguagem C / C++, Java. Os alunos deverão ter tido aprovação nas disciplinas de EDa, POO e Algoritmos. Material necessário Hardware PC com sistema operativo Windows ou Linux, que possa ser administrado pelos alunos de modo a serem instalados e configurados os pacotes de software necessários. Software Compilador de C / C++ Compilador D J2EE Mono (Windows ou Linux) (Windows ou Linux) (Windows ou Linux) (Windows ou Linux) ou Plataforma .net + #Dev (Windows) Avaliação A avaliação será baseada nas seguintes componentes: - Comparação da sintaxe da linguagem D com C++, C# e Java2 - Comparação da geração de código executável D com C++, C# e Java2 - Implementação da biblioteca de cálculo matricial - Comparação do desempenho das linguagens D, C, C++, C# e Java2 30% 10% 30% 30% Orientador: Helder Daniel, gabinete 2.66, [email protected]. Discentes: 2 Duração prevista: anual Selecção dos candidatos Critérios de selecção - Média de curso - Nota de Programação Orientada por Objectos - Número de disciplinas de informática concluídas, com especial incidência sobre a área científica de Ciências da Computação. Perfil dos candidatos: Fluência em linguagens de programação orientada por objectos, tais como C++ e Java. Conhecimentos sólidos sobre Compiladores e Interpretadores. Se não houver candidatos que se enquadrem no perfil o projecto poderá não ser atribuído.