Dissertação

{en_GB=Refactoring Dynamic Languages} {} EVALUATED

{pt=Tipicamente, os programadores inexperientes não dominam as regras de estilo das linguagens de programação que estão a usar e frequentemente não tem a agilidade lógica para evitar a escrita de código redundante. Consequentemente, os seus programas até podem estar correctos do ponto de vista lógico, mas podem ser melhorados. Por isso, é importante para o programador aprender o que pode fazer para melhorar o programa, sem mudar o significado do programa, transformando-o para seguir as regras de estilo da linguagem de programação usada. Estas transformações são do domínio das ferramentas de refactorização. Contudo, estas são tipicamente associadas a ambientes de desenvolvimento integrados (IDEs) sofisticados que são excessivamente complexos para programadores inexperientes. Por outro lado, como existem varias linguagens de programação a serem usadas em cursos de introdução a programação, não é expectável que convirjam para uma só linguagem a ser ensinada nos vários cursos de introdução a programação. Nesta tese, apresentamos uma ferramenta de refactorização desenhada para programadores inexperientes, que disponibilizamos no DrRacket, um IDE simples e pedagógico. A nossa ferramenta fornece várias operações de refactorização específicas para os erros típicos feitos por programadores inexperientes e é pretendido que seja usado como parte do processo de aprendizagem. Apresentamos ainda, uma framework desenhada para simplificar a criação de ferramentas de refactorização para linguagens dinâmicas, que avaliamos ao criar ferramentas de refactorização para Python, Processing e Racket., en=Typically, beginner programmers do not master the style rules of the programming language they are using and, frequently, do not have yet the logical agility to avoid writing redundant code. As a result, although their programs might be correct, they can also be improved and it is important for the programmer to learn about the improvements that, without changing the meaning of the program, simplify it or transform it to follow the style rules of the language. These kinds of transformations are the realm of refactoring tools. However, these tools are typically associated with sophisticated integrated development environments (IDEs) that are excessively complex for beginners. On the other hand, there are several different programming languages being used in introductory courses to teach beginner programmers and, it is not expected that the languages used in these introductory courses will converge into one single language in the near future. In this thesis, we present a refactoring tool designed for beginner programmers, which we made available in DrRacket, a simple and pedagogical IDE. Our tool provides several refactoring operations for the typical mistakes made by beginners and is intended to be used as part of their learning process. We also present a framework designed to simplify the creation of refactoring tools for dynamic languages, which we evaluate by creating refactoring tools for Python and Racket.}
{pt=Ferramenta de refactorização, Pedagogia, Framework, Racket, en=Refactoring Tool, Pedagogy, Framework, Racket}

Maio 30, 2016, 10:30

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

António Paulo Teles de Menezes Correia Leitão

Departamento de Engenharia Informática (DEI)

Professor Auxiliar