Functional Programming and Legacy Software Using PureScript to Extend a Legacy JavaScript System

Legacy systems are everywhere. Immense resources are placed on fixing problems caused by them, and on legacy system maintenance and reverse engineering. After decades of research, a solution has yet to be found. In this thesis, both the viability of using purely functional programming to mitigate pr...

Full description

Bibliographic Details
Main Author: Fischer, Christian
Format: Others
Language:English
Published: Umeå universitet, Institutionen för datavetenskap 2018
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:umu:diva-147947
id ndltd-UPSALLA1-oai-DiVA.org-umu-147947
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-umu-1479472018-05-24T05:26:28ZFunctional Programming and Legacy Software Using PureScript to Extend a Legacy JavaScript SystemengFischer, ChristianUmeå universitet, Institutionen för datavetenskap2018Engineering and TechnologyTeknik och teknologierLegacy systems are everywhere. Immense resources are placed on fixing problems caused by them, and on legacy system maintenance and reverse engineering. After decades of research, a solution has yet to be found. In this thesis, both the viability of using purely functional programming to mitigate problems of legacy systems is investigated, as well as the possibility that purely functiona lprogramming can lead to code that is less likely to lead to legacy problems in the first place. This was done by developing a genome browser in PureScript that embeds, interfaces with, and extends, an existing genome browser written in JavaScript.The resulting codebase is examined, and various characteristics of purely functional programming, and how they helped solve or avoid problems related to legacy systems, are presented. In Conclusion, PureScript is found to be an excellent tool for working with legacy JavaScript, and while the nature of the project limits the conclusions that can be drawn, it appears likely that using purely functional programming, especially with a language suchas PureScript that provides a powerful type-system for ensuring program correctness, leads to code that is more easily understandable, and thus avoids the problems of legacy code. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:umu:diva-147947UMNAD ; 1135application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Others
sources NDLTD
topic Engineering and Technology
Teknik och teknologier
spellingShingle Engineering and Technology
Teknik och teknologier
Fischer, Christian
Functional Programming and Legacy Software Using PureScript to Extend a Legacy JavaScript System
description Legacy systems are everywhere. Immense resources are placed on fixing problems caused by them, and on legacy system maintenance and reverse engineering. After decades of research, a solution has yet to be found. In this thesis, both the viability of using purely functional programming to mitigate problems of legacy systems is investigated, as well as the possibility that purely functiona lprogramming can lead to code that is less likely to lead to legacy problems in the first place. This was done by developing a genome browser in PureScript that embeds, interfaces with, and extends, an existing genome browser written in JavaScript.The resulting codebase is examined, and various characteristics of purely functional programming, and how they helped solve or avoid problems related to legacy systems, are presented. In Conclusion, PureScript is found to be an excellent tool for working with legacy JavaScript, and while the nature of the project limits the conclusions that can be drawn, it appears likely that using purely functional programming, especially with a language suchas PureScript that provides a powerful type-system for ensuring program correctness, leads to code that is more easily understandable, and thus avoids the problems of legacy code.
author Fischer, Christian
author_facet Fischer, Christian
author_sort Fischer, Christian
title Functional Programming and Legacy Software Using PureScript to Extend a Legacy JavaScript System
title_short Functional Programming and Legacy Software Using PureScript to Extend a Legacy JavaScript System
title_full Functional Programming and Legacy Software Using PureScript to Extend a Legacy JavaScript System
title_fullStr Functional Programming and Legacy Software Using PureScript to Extend a Legacy JavaScript System
title_full_unstemmed Functional Programming and Legacy Software Using PureScript to Extend a Legacy JavaScript System
title_sort functional programming and legacy software using purescript to extend a legacy javascript system
publisher Umeå universitet, Institutionen för datavetenskap
publishDate 2018
url http://urn.kb.se/resolve?urn=urn:nbn:se:umu:diva-147947
work_keys_str_mv AT fischerchristian functionalprogrammingandlegacysoftwareusingpurescripttoextendalegacyjavascriptsystem
_version_ 1718680166347046912