skip to main content
research-article

Correctness of an STM Haskell implementation

Published:25 September 2013Publication History
Skip Abstract Section

Abstract

A concurrent implementation of software transactional memory in Concurrent Haskell using a call-by-need functional language with processes and futures is given. The description of the small-step operational semantics is precise and explicit, and employs an early abort of conflicting transactions. A proof of correctness of the implementation is given for a contextual semantics with may- and should-convergence. This implies that our implementation is a correct evaluator for an abstract specification equipped with a big-step semantics.

References

  1. A. Bieniusa and P. Thiemann. Proving isolation properties for software transactional memory. In Proc. ESOP'11, LNCS 6602, pp. 38--56, Springer 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. Borgström, K. Bhargavan, and A. D. Gordon. A compositional theory for S™ Haskell. In Proc. Haskell '09, pp. 69--80. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. V. Bushkov, R. Guerraoui, and M. Kapalka. On the liveness of transactional memory. In Proc. PODC'12, pp. 9--18. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. C. Cascaval, C. Blundell, M. M. Michael, H. W. Cain, P. Wu, S. Chiras, and S. Chatterjee. Software transactional memory: why is it only a research toy? Commun. ACM, 51 (11): 40--46, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. R. Guerraoui and M. Kapalka. On the correctness of transactional memory. In Proc. PPoPP'08, pp. 175--184. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. T. Harris, S. Marlow, S. Peyton Jones, and M. Herlihy. Composable memory transactions. In Proc. PPoPP'05, pp. 48--60. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. T. Harris, S. Marlow, S. L. Peyton Jones, and M. Herlihy. Composable memory transactions. Commun. ACM, 51 (8): 91--100, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. T. Harris, J. R. Larus, and R. Rajwar. Transactional Memory, 2nd edition. Synthesis Lectures on Computer Architecture. Morgan & Claypool Publishers, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. L. Hu and G. Hutton. Towards a verified implementation of software transactional memory. In Proc. TFP'08, vol. 9, pp. 129--144. Intellect, 2009.Google ScholarGoogle Scholar
  10. A. Rensink and W. Vogler. Fair testing. Inform. and Comput., 205 (2): 125--198, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. D. Sabel and M. Schmidt-Schauß. A call-by-need lambda-calculus with locally bottom-avoiding choice: Context lemma and correctness of transformations. Math. Structures Comput. Sci., 18 (03): 501--553, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. D. Sabel and M. Schmidt-Schauß. A contextual semantics for Concurrent Haskell with futures. In Proc. PPDP'11, pp. 101--112. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. D. Sabel and M. Schmidt-Schauß. Conservative concurrency in Haskell. In Proc. LICS'12, pp. 561--570. IEEE, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. M. Schmidt-Schauß and D. Sabel. Correctness of an S™ Haskell implementation. Frank report 50, Institut f. Informatik. Goethe-University Frankfurt, 2013. available at http://www.ki.informatik.uni-frankfurt.de/papers/frank/.Google ScholarGoogle Scholar
  15. M. Schmidt-Schauß, J. Niehren, J. Schwinghammer, and D. Sabel. Adequacy of compositional translations for observational semantics. In Proc. IFIP TCS'08, IFIP 273, pp. 521--535. Springer, 2008.Google ScholarGoogle Scholar
  16. N. Shavit and D. Touitou. Software transactional memory. In Proc. PODC'95, pp. 204--213. ACM, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. N. Shavit and D. Touitou. Software transactional memory. Distributed Computing, Special Issue, 10: 99--116, 1997.Google ScholarGoogle Scholar
  18. M. C. J. D. van Eekelen, M. J. Plasmeijer, and J. E. W. Smetsers. Parallel graph rewriting on loosely coupled machine architectures. In Proc. CTRS'90, LNCS 516, pp. 354--369. Springer, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Correctness of an STM Haskell implementation

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in

          Full Access

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader
          About Cookies On This Site

          We use cookies to ensure that we give you the best experience on our website.

          Learn more

          Got it!