Adams, Stephen (2017) Data-Driven Refactorings for Haskell. Doctor of Philosophy (PhD) thesis, University of Kent,. (KAR id:69589)
PDF
Publisher pdf
Language: English
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
|
|
Download this file (PDF/1MB) |
Preview |
Abstract
Agile software development allows for software to evolve slowly over time. Decisions
made during the early stages of a program's lifecycle often come with a cost in the
form of technical debt. Technical debt is the concept that reworking a program that
is implemented in a naive or "easy" way, is often more difficult than changing the
behaviour of a more robust solution. Refactoring is one of the primary ways to reduce
technical debt.
Refactoring is the process of changing the internal structure of a program without
changing its external behaviour. The goal of performing refactorings is to increase code
quality, maintainability, and extensibility of the source program. Performing refactorings
manually is time consuming and error-prone. This makes automated refactoring
tools very useful.
Haskell is a strongly typed, pure functional programming language. Haskell's rich
type system allows for complex and powerful data models and abstractions. These
abstractions and data models are an important part of Haskell programs. This thesis
argues that these parts of a program accrue technical debt, and that refactoring is an
important technique to reduce this type of technical debt.
Refactorings exist that tackle issues with a program's data model, however these
refactorings are specific to the object-oriented programming paradigm. This thesis reports
on work done to design and automate refactorings that help Haskell programmers
develop and evolve these abstractions.
This work also discussed the current design and implementation of HaRe (the Haskell Refactorer). HaRe now supports the Glasgow Haskell Compiler's implementation of
the Haskell 2010 standard and its extensions, and uses some of GHC's internal packages
in its implementation.
Item Type: | Thesis (Doctor of Philosophy (PhD)) |
---|---|
Thesis advisor: | Thompson, Simon |
Uncontrolled keywords: | refactoring, functional programming, haskell |
Divisions: | Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing |
SWORD Depositor: | System Moodle |
Depositing User: | System Moodle |
Date Deposited: | 16 Oct 2018 09:10 UTC |
Last Modified: | 05 Nov 2024 12:31 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/69589 (The current URI for this page, for reference purposes) |
- Link to SensusAccess
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):