Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
ACM Transactions on Programming Languages and Systems (TOPLAS)
The GemStone object database management system
Communications of the ACM
Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Back to the future: the story of Squeak, a practical Smalltalk written in itself
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
System support for object groups
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
On optimistic methods for concurrency control
ACM Transactions on Database Systems (TODS)
The GARF library of DSM consistency models
EW 6 Proceedings of the 6th workshop on ACM SIGOPS European workshop: Matching operating systems to application needs
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Concurrent Programming in Java. Second Edition: Design Principles and Patterns
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Compiler and runtime support for efficient software transactional memory
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Language constructs for context-oriented programming: an overview of ContextL
DLS '05 Proceedings of the 2005 symposium on Dynamic languages
Atomicity via source-to-source translation
Proceedings of the 2006 workshop on Memory system performance and correctness
Performance pathologies in hardware transactional memory
Proceedings of the 34th annual international symposium on Computer architecture
The transactional memory / garbage collection analogy
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Unanticipated partial behavioral reflection: Adapting applications at runtime
Computer Languages, Systems and Structures
Transactional memory for smalltalk
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Transactional contexts: harnessing the power of context-oriented reflection
International Workshop on Context-Oriented Programming
Model-Centric, Context-Aware Software Adaptation
Software Engineering for Self-Adaptive Systems
Context-oriented software transactional memory in common lisp
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Lessons in Software Evolution Learned by Listening to Smalltalk
SOFSEM '10 Proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science
Embedding languages without breaking tools
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Subobject transactional memory
COORDINATION'12 Proceedings of the 14th international conference on Coordination Models and Languages
Hi-index | 0.00 |
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.