Title
Transactional memory in a dynamic language
Abstract
Concurrency control is mostly based on locks and is therefore notoriously difficult to use. Even though some programming languages provide high-level constructs, these add complexity and potentially hard-to-detect bugs to the application. Transactional memory is an attractive mechanism that does not have the drawbacks of locks, however, the underlying implementation is often difficult to integrate into an existing language. In this paper we show how we have introduced transactional semantics into Smalltalk by using the reflective facilities of the language. Our approach is based on method annotations, incremental parse tree transformations and an optimistic commit protocol. The implementation does not depend on modifications to the virtual machine and therefore can be changed at the language level. We report on a practical case study, benchmarks and further and on-going work.
Year
DOI
Venue
2009
10.1016/j.cl.2008.06.001
Computer Languages, Systems & Structures
Keywords
Field
DocType
language con- structs and features,concurrency control,high-level construct,concurrent programming,hard-to-detect bug,underlying implementation,dynamic language,language constructs and features,transactional semantics,attractive mechanism,. transactional memory,transactional memory,language level,programming language,existing language,virtual machine
Software transactional memory,Programming language,Computer science,Data control language,Multiversion concurrency control,Transactional memory,Low-level programming language,Optimistic concurrency control,Programming language implementation,Language primitive
Journal
Volume
Issue
ISSN
35
1
Computer Languages, Systems & Structures
Citations 
PageRank 
References 
6
0.50
17
Authors
2
Name
Order
Citations
PageRank
Lukas Renggli117012.95
Oscar Nierstrasz22404346.86