Design of a modular multiparadigm programming language for teaching programming concepts

AUTOR(ES)
DATA DE PUBLICAÇÃO

2005

RESUMO

A criaÃÃo de uma linguagem de programaÃÃo pode ser comparada ao desenvolvimento de um sistema computacional. Sendo assim, o projeto e a implementaÃÃo da linguagem devem atender a um conjunto de requisitos. Alguns deles estÃo relacionados Ãs propriedades que a linguagem desenvolvida deve apresentar, como expressividade, capacidade de aprendizagem e produtividade. Outro grupo de requisitos compreende aqueles comuns ao desenvolvimento da maioria dos softwares, como extensibilidade, modularidade e reuso de cÃdigo. Este segundo grupo de requisitos pode ser obtido atravÃs do uso de tÃcnicas modernas de engenharia de software. Neste trabalho, apresentamos o desenvolvimento de uma linguagem multiparadigma modular que faz uso de programaÃÃo Orientada a Objetos, design patterns e um paradigma de programaÃÃo mais recente chamado ProgramaÃÃo Orientada a Aspectos. A linguagem, que tambÃm pode ser vista como um conjunto de linguagens, à desenvolvida de maneira incremental, partindo de uma simples linguagem de expressÃes atà linguagens mais complexas representando alguns dos mais representativos paradigmas de programaÃÃo, finalizando com o desenvolvimento de linguagens multiparadigmas. Esta famÃlia de linguagens à criada atravÃs da integraÃÃo de componentes que representam conceitos de programaÃÃo. A modularidade obtida atravÃs do design proposto possibilita o reuso destes componentes na criaÃÃo de diferentes linguagens, mesmo que pertencentes a diferentes paradigmas. Adicionalmente, à possÃvel a evoluÃÃo ortogonal das linguagens, jà que a inclusÃo de novos conceitos à obtida atravÃs da simples inclusÃo dos componentes correspondentes, sem comprometer o funcionamento dos componentes jà utilizados. A abordagem proposta para o design e implementaÃÃo da linguagem tambÃm se mostrou bastante Ãtil no ensino de conceitos de programaÃÃo, jà que oferece um ambiente uniforme e extensÃvel para a prÃtica e exploraÃÃo dos conceitos pelos estudantes. Dessa forma, os estudantes nÃo precisam lidar com diferentes notaÃÃes e ambientes de desenvolvimento ao abordarem conceitos relacionados a diversos paradigmas

ASSUNTO(S)

paradigmas de programaÃÃo, linguagens multiparadigma, projeto de linguagens de programaÃÃo, design patterns, programaÃÃo orientada a aspectos, aspectj ciencia da computacao programming paradigm, multiparadigm languages, design of programming languages, design patterns, aspect-oriented programming, aspectj

Documentos Relacionados