The Elimination of Overheads due to Type Annotations and the Identification of Candidate Refactorings

No Thumbnail Available

Date

2002-08-13

Journal Title

Series/Report No.

Journal ISSN

Volume Title

Publisher

Abstract

Refactorings are meaning-preserving transformations of object-oriented programs carried out with the aim of improving their design. Sometimes refactorings accomplish just cosmetic improvements. At other times, they make programs easier to modify. Many systems for refactoring programs have been described in the literature. The past few years have seen a plethora of object-oriented languagesthat enforce strict static type-checking and use explicit type declarations (type annotations). Type annotations add to the expense of modification. Our first result is a categorisation of refactorings by their effect on type annotations. In the second part of this thesis, we study a tool that makes it easier to change programs with type annotations. The tool uses type inference to automate the management of type annotations. The third part of the thesis concerns the use of type inference tools to select candidate refactorings. In particular, these refactorings are recommended when type inconsistencies are found in a program. Thus, refactorings and type inference can mutually benefit each other.

Description

Keywords

type annotations, refactorings, type inference, programming languages, software engineering, type constraints, refactoring tools, identification of refactorings

Citation

Degree

MS

Discipline

Computer Science

Collections