Unifying STM and Side Effects in Clojure

Student thesis: Master thesis (including HD thesis)

  • Thomas Stig Jacobsen
  • Søren Kejser Jensen
  • Daniel Rune Jensen
4. term, Computer Science, Master (Master Programme)
In this project constructs were implemented into Clojure for handling side-effects in Software Transactional Memory (STM) transactions and for more explicit transaction control based on transactional data. Clojure's runtime and STM implementation were investigated and explored in a series of experiments that resulted in the implementation of an event handling system for side-effect handling and constructs for explicit data-based transactional control. The implemented constructs were evaluated through use cases. A part of the transactional control constructs were overlapping in terms of functionality with existing Clojure constructs. This part was usability evaluated using two metrics and a subjective discussion of implementations of the Santa Claus problem. The usability evaluation found a decrease both in terms of lines of code and development time. Furthermore the concurrency model of Clojure were found to be more explicit and expressive with the added constructs. The project concludes that the added constructs eases the development of concurrent programs but a larger usability evaluation and a performance evaluation should be done to validate the result.
LanguageEnglish
Publication date9 Jun 2015
Number of pages126
ID: 213827510