Affiliation:
1. Carnegie Mellon University, Pittsburgh, PA, USA
Abstract
The atomic block, a synchronization primitive provided to programmers in transactional memory systems, has the potential to greatly ease the development of concurrent software. However, atomic blocks can still be used incorrectly, and race conditions can still occur at the level of application logic. In this paper, we present a intraprocedural static analysis, formalized as a type system and proven sound, that helps programmers use atomic blocks correctly. Using
access permissions
, which describe how objects are aliased and modified, our system statically prevents race conditions and enforces typestate properties in concurrent programs. We have implemented a prototype static analysis for the Java language based on our system and have used it to verify several realistic examples.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Verifying Concurrent Programs Using Contracts;2017 IEEE International Conference on Software Testing, Verification and Validation (ICST);2017-03
2. Precise Detection of Atomicity Violations;Hardware and Software: Verification and Testing;2013
3. Detecting concurrency anomalies in transactional memory programs;Computer Science and Information Systems;2011
4. A time-aware type system for data-race protection and guaranteed initialization;ACM SIGPLAN Notices;2010-10-17