Transactional memory: architectural support for lock-free data structures
ISCA '93 Proceedings of the 20th annual international symposium on computer architecture
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Data groups: specifying the modification of extended state
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Type-based race detection for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Monitors: an operating system structuring concept
Communications of the ACM
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
A parameterized type system for race-free Java programs
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Ownership types for safe programming: preventing data races and deadlocks
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
An Object-Oriented Effects System
ECOOP '99 Proceedings of the 13th European Conference on Object-Oriented Programming
A type and effect system for atomicity
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Associating synchronization constraints with data in an object-oriented language
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Autolocker: synchronization inference for atomic sections
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Runtime Analysis of Atomicity for Multithreaded Programs
IEEE Transactions on Software Engineering
Types for safe locking: Static race detection for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Accurate and efficient runtime detection of atomicity errors in concurrent programs
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Encapsulating objects with confined types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Concurrency control with data coloring
Proceedings of the 2008 ACM SIGPLAN workshop on Memory systems performance and correctness: held in conjunction with the Thirteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '08)
Dynamic detection of atomic-set-serializability violations
Proceedings of the 30th international conference on Software engineering
Inferring locks for atomic sections
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Types for atomicity: Static checking and inference for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Finding Concurrency-Related Bugs Using Random Isolation
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
Loci: Simple Thread-Locality for Java
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
TOOLS'11 Proceedings of the 49th international conference on Objects, models, components, patterns
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Marathon: detecting atomic-set serializability violations with conflict graphs
RV'11 Proceedings of the Second international conference on Runtime verification
Inference and checking of object ownership
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Practical permissions for race-free parallelism
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Reim & ReImInfer: checking and inference of reference immutability and method purity
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Inference and checking of context-sensitive pluggable types
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Views: Synthesizing fine-grained concurrency control
ACM Transactions on Software Engineering and Methodology (TOSEM)
Detecting deadlock in programs with data-centric synchronization
Proceedings of the 2013 International Conference on Software Engineering
Composing polymorphic information flow systems with reference immutability
Proceedings of the 15th Workshop on Formal Techniques for Java-like Programs
Æminium: A Permission-Based Concurrent-by-Default Programming Language Approach
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
Data-centric synchronization groups fields of objects into atomic sets to indicate theymust be updated atomically. Each atomic set has associated units of work, code fragments that preserve the consistency of that atomic set.We present a type system for data-centric synchronization that enables separate compilation and supports atomic sets that span multiple objects, thus allowing recursive data structures to be updated atomically. The type system supports full encapsulation for more efficient code generation. We evaluate our proposal using AJ, which extends the Java programming language with data-centric synchronization. We report on the implementation of a compiler and on refactoring classes from standard libraries and a multi-threaded benchmark to use atomic sets. Our results suggest that data-centric synchronization enjoys low annotation overhead while preventing high-level data races.