Use this URL to cite or link to this record in EThOS: https://ethos.bl.uk/OrderDetails.do?uin=uk.bl.ethos.555284
Title: Refactoring Haskell programs
Author: Li, Huiqing
ISNI:       0000 0004 2721 341X
Awarding Body: University of Kent
Current Institution: University of Kent
Date of Award: 2006
Availability of Full Text:
Access from EThOS:
Access from Institution:
Abstract:
Refactoring is the process of improving the design of existing programs without changing their external behaviour. Behaviour preservation guarantees that refactoring does not introduce (nor remove) any bugs. If applied properly, refactoring can make a program easier to understand or modify. While it is possible to refactor a program by hand, tool support is considered invaluable as it is more reliable and allows refactorings to be done (and undone) easily. Taking the Haskell programming language as a case study, this research investigates the prospects of refactoring in the context of functional programming languages, both to complement the existing work on refactoring within other programming paradigms, such as OO, and to make refactoring techniques and tools available to functional programmers. By building a tool for refactoring Haskell programs, we addressed the key issues involved in tool support of refactorings, including the supporting technologies for building refactoring tools, analysing the side-conditions and transformation rules of individual refactorings for behaviour preservation purpose, and the preservation of the layout and comments of the refactored programs. Along with the development of the Haskell refactorer, we also investigated the specification and verification of validity of refactorings. This helped us to clarify the definition of refactorings, to improve our confidence in the behaviourpreservation of refactorings, and to reduce the need for testing.
Supervisor: Not available Sponsor: Not available
Qualification Name: Thesis (Ph.D.) Qualification Level: Doctoral
EThOS ID: uk.bl.ethos.555284  DOI:
Keywords: QA 76 Software, computer programming
Share: