Revista Brasileira de Computação Aplicada (Mar 2010)

Investigating STM in Haskell as an Alternative to Programming Systems with Shared Memory

  • Ernâni Teixeira Liberali,
  • Juliana Kaiser Vizzotto

DOI
https://doi.org/10.5335/rbca.2013.754
Journal volume & issue
Vol. 2, no. 1
pp. 89 – 99

Abstract

Read online

This work proposes to investigate the use of Software Transactional Memory (STM) as a programming alternative for parallel architectures with shared memory. First, we study the concept of parallel programming and its main characteristics. Then we describe the STM approach for parallel programming, as well its application in the context of functional programming languages, in special Haskell. As a case study to illustrate the advantages of using STM, we show the implementation in Haskell of the classic problem of synchronization, the dining philosophers problem. Finally, aiming to demonstrate the simplicity and elegance of codes with STM in Haskell, it compares this implementation with another implementation of the same problem using the mechanism of synchronization monitors in Java.

Keywords