Functional programming languages in commercial software development
No Thumbnail Available
URL
Journal Title
Journal ISSN
Volume Title
School of Science |
Master's thesis
Checking the digitized thesis and permission for publishing
Instructions for the author
Instructions for the author
Authors
Date
2010
Department
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Language
en
Pages
95
Series
Abstract
The capabilities of computer systems have seen immense growth in the past decades. Along with the hardware, the size and complexity of software systems has grown as well. The complexity of the software systems is partly the essential complexity arising from their requirements, but partly the accidental complexity caused by the limitations of their construction techniques. Development of high-level programming languages has been a key component in reducing the accidental complexity. The history of declarative, including functional, programming languages is about as long as the history of imperative languages, but despite wide academic interest, functional languages have seen use in only a small minority of commercial projects. The purpose of this work is to show that functional programming languages are a feasible alternative to high-level imperative languages in commercial projects. This is achieved by examining the functional languages' theoretical advantages, such as the handling of shared state in concurrent programs, by looking at successful commercial uses of functional languages and finally by examining a sample system coded in three different languages, one imperative and two functional.Tietokonejärjestelmien suorituskyky on kasvanut valtavasti viime vuosikymmeninä. Laitteiston suorituskyvyn lisääntyessä myös ohjelmistojärjestelmien koko ja monimutkaisuus on lisääntynyt. Osa ohjelmistojärjestelmien monimutkaisuudesta on niiden suorittamaan tehtävään liittyvää oleellista monimutkaisuutta, mutta osa monimutkaisuudesta aiheutuu toteutus- menetelmien sivutuotteena. Ylimääräistä monimutkaisuutta on pyritty vähentämään korkean tason ohjelmointikielillä. Kuvaavat ohjelmointikielet, mukaan lukien funktionaaliset ohjelmointikielet, omaavat yhtä pitkän historian kuin imperatiiviset ohjelmointikielet. Ne ovat kautta historiansa olleet laajan akateemisen kiinnostuksen kohteena, mutta vain vähäisessä määrin kaupallisten ohjelmistoprojektien käytössä. Tämän työn tarkoitus on näyttää, että funktionaaliset ohjelmointikielet ovat käytännöllinen vaihtoehto imperatiivisille korkean tason ohjelmointikielille myös kaupallisissa projekteissa. Työssä käsitellään funktionaalisten kielten teoreettisia etuja, kuten niiden tilan käsite rinnakkaisohjelmoinnissa, tarkastellaan onnistuneita kaupallisia projekteja ja toteutetaan pienehkö ohjelmistojärjestelmä kolmella eri kielellä, joista yksi on imperatiivinen ja kaksi funktionaalista.Description
Supervisor
Soisalon-Soininen, EljasThesis advisor
Laurikari, VilleKeywords
functional, funktionaalinen, programming language, ohjelmointikieli, software engineering, ohjelmistonkehitys, concurrent processing, rinnakkainen prosessointi,