Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Context-oriented software transactional memory in common lisp

Published: 26 October 2009 Publication History
  • Get Citation Alerts
  • Abstract

    Software transactional memory (STM) is a promising approach for coordinating concurrent threads, for which many implementation strategies are currently being researched. Although some first steps exist to ease experimenting with different strategies, this still remains a relatively complex and cumbersome task. The reason is that software transactions require STM-specific dynamic crosscutting adaptations, but this is not accounted for in current STM implementations. This paper presents CSTM, an STM framework based on Context-oriented Progamming, in which transactions are modelled as dynamically scoped layer activations. It enables expressing transactional variable accesses as user-defined crosscutting concerns, without requiring invasive changes in the rest of a program. This paper presents a proof-of-concept implementation based on ContextL for Common Lisp, along with example STM strategies and preliminary benchmarks, and introduces some of ContextL's unique features for context-dependent variable accesses.

    References

    [1]
    M. Appeltauer, R. Hirschfeld, M. Haupt, J. Lincke, and M. Perscheid. A Comparison of Context-oriented Programming Languages. In International Workshop on Context-oriented Programming, co-located with ECOOP 2009. ACM Digital Library, 2009.
    [2]
    C. Cao Minh, J. Chung, C. Kozyrakis, and K. Olukotun. STAMP: Stanford Transactional Applications for Multi-Processing. In IISWC '08: Proceedings of The IEEE International Symposium on Workload Characterization, September 2008.
    [3]
    P. Costanza and R. Hirschfeld. Language constructs for context-oriented programming: an overview of ContextL. In DLS '05: Proceedings of the 2005 symposium on Dynamic languages, pages 1--10, New York, NY, USA, 2005. ACM Digital Library.
    [4]
    P. Costanza and R. Hirschfeld. Reflective layer activation in ContextL. In SAC '07: Proceedings of the 2007 ACM symposium on Applied Computing, pages 1280--1285, New York, NY, USA, 2007. ACM.
    [5]
    S. Gonzales, M. Denker, and K. Mens. Transactional Contexts: Harnessing the Power of Context-Oriented Reflection. In International Workshop on Context-oriented Programming, co-located with ECOOP 2009. ACM Digital Library, 2009.
    [6]
    T. Harris and K. Fraser. Language Support for Lightweight Transactions. OOPSLA'03, Proceedings, 2003.
    [7]
    T. Harris, M. Plesko, A. Shinnar, and D. Tarditi. Optimizing Memory Transactions. PLDI'06, Proceedings, 2006.
    [8]
    M. Herlihy, V. Luchanco, and M. Moir. A Flexible Framework for Implementing Software Transactional Memory. In OOPSLA 2006, Proceedings, 2006.
    [9]
    M. Herlihy, V. Luchangco, M. Moir, and I. William N. Scherer. Software Transactional Memory for Dynamic-sized Data Structures. In PODC '03, Proceedings, 2003.
    [10]
    C. Herzeel, P. Costanza, and T. D'Hondt. Reusable building blocks for software transactional memory. In Second European Lisp Symposium (ELS'09), 2009.
    [11]
    R. Hickey. Clojure. http://clojure.org/.
    [12]
    R. Hirschfeld, P. Costanza, and O. Nierstrasz. Context-Oriented Programming. Journal of Object Technology (JOT), 7(3):125--151, 2008.
    [13]
    G. Kiczales, J. des Rivieres, and D. Bobrow. The Art of the Metaobject Protocol. MIT Press, Cambridge, MA, USA, 1991.
    [14]
    M. Kulkarni, M. Burtscher, K. Pingali, and C. Cascaval. Lonestar: A Suite of Parallel Irregular Programs. In International Symposium on Performance Analysis of Systems and Software (ISPASS), 2009.
    [15]
    M. Kulkarni, K. Pingali, B. Walter, G. Ramanarayanan, K. Bala, and L. P. Chew. Optimistic parallelism requires abstractions. In PLDI '07: Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation, pages 211--222, New York, NY, USA, 2007. ACM.
    [16]
    J. R. Larus and R. Rajwar. Transactional Memory. Morgan Claypool Publishers, USA, 2007.
    [17]
    A. Paepcke. PCLOS: Stress Testing CLOS - Experiencing the Metaobject Protocol. OOPSLA/ECOOP '90, Proceedings, 1990.
    [18]
    L. Renggli and O. Nierstrasz. Transactional memory in a dynamic language. Computer Languages, Systems&Structures, 35(1):21--30, 2009.
    [19]
    M. F. Ringenburg and D. Grossman. AtomCaml: First-class Atomicity via Rollback. ICFP'05, Proceedings, 2005.
    [20]
    N. Shavit and D. Touitou. Software Transactional Memory. In PODC '95, Proceedings, 1995.

    Cited By

    View all
    • (2012)Subobject transactional memoryProceedings of the 14th international conference on Coordination Models and Languages10.1007/978-3-642-30829-1_4(44-58)Online publication date: 14-Jun-2012
    • (2012)Language Engineering for Mobile SoftwareHandbook of Research on Mobile Software Engineering10.4018/978-1-61520-655-1.ch010(150-166)Online publication date: 2012
    • (2012)Subobject transactional memoryProceedings of the 14th international conference on Coordination Models and Languages10.1007/978-3-642-30829-1_4(44-58)Online publication date: 14-Jun-2012
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 44, Issue 12
    DLS '09
    December 2009
    107 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1837513
    Issue’s Table of Contents
    • cover image ACM Conferences
      DLS '09: Proceedings of the 5th symposium on Dynamic languages
      October 2009
      118 pages
      ISBN:9781605587691
      DOI:10.1145/1640134
      • Program Chair:
      • James Noble
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 26 October 2009
    Published in SIGPLAN Volume 44, Issue 12

    Check for updates

    Author Tags

    1. context-oriented programming
    2. framework design
    3. software transactional memory

    Qualifiers

    • Research-article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)2
    • Downloads (Last 6 weeks)0

    Other Metrics

    Citations

    Cited By

    View all
    • (2012)Subobject transactional memoryProceedings of the 14th international conference on Coordination Models and Languages10.1007/978-3-642-30829-1_4(44-58)Online publication date: 14-Jun-2012
    • (2012)Language Engineering for Mobile SoftwareHandbook of Research on Mobile Software Engineering10.4018/978-1-61520-655-1.ch010(150-166)Online publication date: 2012
    • (2012)Subobject transactional memoryProceedings of the 14th international conference on Coordination Models and Languages10.1007/978-3-642-30829-1_4(44-58)Online publication date: 14-Jun-2012
    • (2010)Dynamic parallelization of recursive codeACM SIGPLAN Notices10.1145/1932682.186949145:10(377-396)Online publication date: 17-Oct-2010
    • (2010)Dynamic parallelization of recursive codeProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/1869459.1869491(377-396)Online publication date: 17-Oct-2010

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media