This Is AuburnElectronic Theses and Dissertations

Show simple item record

An Extract Function Refactoring for the Go Language


Metadata FieldValueLanguage
dc.contributor.advisorOverbey, Jeffreyen_US
dc.contributor.authorGnanaprakasa, Steffi Mariyaen_US
dc.date.accessioned2015-07-31T15:45:18Z
dc.date.available2015-07-31T15:45:18Z
dc.date.issued2015-07-31
dc.identifier.urihttp://hdl.handle.net/10415/4835
dc.description.abstractRefactoring is a disciplined technique for restructuring an existing body of code, altering its internal code structure without changing its external behavior. Refactoring is specified as a parameterized program transformation that requires a set of preconditions to be satisfied. The Go Doctor is a refactoring tool for the Go language. This thesis focuses on the design and implementation of an Extract Function refactoring adapted to the unique requirements of the Go language. The code that is to be refactored is parsed and type checked before the process is initialized. The tool ensures that certain preconditions are met; if they are not, it warns the user with the exact details as to why the refactoring will not continue. Then, a Live Variable analysis is used to determine what variables need to be passed to, returned from and declared in the new function that is created from the extracted code. To analyze the robustness of the refactoring, it was applied to 200 random statements selected from the top 100 GitHub projects using Go. These projects were also used to assess the potential impact of some of the refactoring limitations - specifically, its inability to extract return statements, defer statements, and anonymous functions.en_US
dc.subjectComputer Scienceen_US
dc.titleAn Extract Function Refactoring for the Go Languageen_US
dc.typeMaster's Thesisen_US
dc.embargo.statusNOT_EMBARGOEDen_US
dc.contributor.committeeHendrix, Deanen_US
dc.contributor.committeeHafiz, Munawaren_US

Files in this item

Show simple item record