Procedures as persistent data objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
The theory of database concurrency control
The theory of database concurrency control
SOSP '87 Proceedings of the eleventh ACM Symposium on Operating systems principles
Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Camelot and Avalon: a distributed transaction facility
Camelot and Avalon: a distributed transaction facility
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
A partially deadlock-free typed process calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
WebL - a programming language for the Web
WWW7 Proceedings of the seventh international conference on World Wide Web 7
Type-based race detection for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Guava: a dialect of Java without data races
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Monitors: an operating system structuring concept
Communications of the ACM
Reduction: a method of proving properties of parallel programs
Communications of the ACM
Detecting race conditions in large programs
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
A discipline of multiprogramming: programming theory for distributed applications
A discipline of multiprogramming: programming theory for distributed applications
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
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Efficient and precise datarace detection for multithreaded object-oriented programs
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Parallel program correctness through refinement
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Java Language Specification
The Java Language Specification
Invariant-based specification, synthesis, and verification of synchronization in concurrent programs
Proceedings of the 24th International Conference on Software Engineering
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
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Type-safe multithreading in cyclone
Proceedings of the 2003 ACM SIGPLAN international workshop on Types in languages design and implementation
Evaluating Deadlock Detection Methods for Concurrent Software
IEEE Transactions on Software Engineering
A Method for Refining Atomicity in Parallel Algorithms
PARLE '89 Proceedings of the Parallel Architectures and Languages Europe, Volume II: Parallel Languages
CONCUR '98 Proceedings of the 9th International Conference on Concurrency Theory
Detecting Deadlocks in Concurrent Systems
CONCUR '98 Proceedings of the 9th International Conference on Concurrency Theory
Static conflict analysis for multi-threaded object-oriented programs
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
A type and effect system for atomicity
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Hybrid dynamic data race detection
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Efficient on-the-fly data race detection in multithreaded C++ programs
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Process structuring, synchronization, and recovery using atomic actions
Proceedings of an ACM conference on Language design for reliable software
Pretending Atomicity
Data Flow Analysis for Verifying Properties of Concurrent Programs
Data Flow Analysis for Verifying Properties of Concurrent Programs
An empirical comparison of static concurrency analysis techniques
An empirical comparison of static concurrency analysis techniques
Language support for lightweight transactions
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Summarizing procedures in concurrent programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
PS-algol: an algol with a persistent heap
ACM SIGPLAN Notices
Summarizing procedures in concurrent programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Exploiting purity for atomicity
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
TLDI '05 Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation
A serializability violation detector for shared-memory server programs
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
VYRD: verifYing concurrent programs by runtime refinement-violation detection
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Static analysis of atomicity for programs with non-blocking synchronization
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Automated type-based analysis of data races and atomicity
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Exploiting Purity for Atomicity
IEEE Transactions on Software Engineering
Factorising temporal specifications
CATS '05 Proceedings of the 2005 Australasian symposium on Theory of computing - Volume 41
AtomCaml: first-class atomicity via rollback
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Concurrent clustered programming
CONCUR 2005 - Concurrency Theory
Optimized run-time race detection and atomicity checking using partial discovered types
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Safe Concurrency for Aggregate Objects with Invariants
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
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
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
Effective static race detection for Java
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
LOCKSMITH: context-sensitive correlation analysis for race detection
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Application of automated environment generation to commercial software
Proceedings of the 2006 international symposium on Software testing and analysis
A classification of concurrency bugs in java benchmarks by developer intent
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
Producing scheduling that causes concurrent programs to fail
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Modular invariants for layered object structures
Science of Computer Programming - Special issue on source code analysis and manipulation (SCAM 2005)
AVIO: detecting atomicity violations via access interleaving invariants
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
Scheduling-independent threads and exceptions in SHIM
EMSOFT '06 Proceedings of the 6th ACM & IEEE International conference on Embedded software
Conditional must not aliasing for static race detection
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Science of Computer Programming
Adaptive Online Program Analysis
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Iterative context bounding for systematic testing of multithreaded programs
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the 2007 ACM workshop on Parallel and distributed systems: testing and debugging
RELAY: static race detection on millions of lines of code
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Testing concurrent programs using value schedules
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Learning from mistakes: a comprehensive study on real world concurrency bug characteristics
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
jPredictor: a predictive runtime analysis tool for java
Proceedings of the 30th international conference on Software engineering
Dynamic detection of atomic-set-serializability violations
Proceedings of the 30th international conference on Software engineering
Race directed random testing of concurrent programs
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
SharC: checking data sharing strategies for multithreaded c
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs
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)
Dynamic recognition of synchronization operations for improved data race detection
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Racer: effective race detection using aspectj
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
AtomRace: data race and atomicity violation detector and healer
PADTAD '08 Proceedings of the 6th workshop on Parallel and distributed systems: testing, analysis, and debugging
Proceedings of the conference on Design, automation and test in Europe
Verified Software: Theories, Tools, Experiments
Monitoring Atomicity in Concurrent Programs
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
A Scalable and Oblivious Atomicity Assertion
CONCUR '08 Proceedings of the 19th international conference on Concurrency Theory
A programming model for concurrent object-oriented programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Randomized active atomicity violation detection in concurrent programs
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Finding Concurrency-Related Bugs Using Random Isolation
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
CTrigger: exposing atomicity violation bugs from their hiding places
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
The Complexity of Predicting Atomicity Violations
TACAS '09 Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009,
SingleTrack: A Dynamic Determinism Checker for Multithreaded Programs
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
HAVE: Detecting Atomicity Violations via Integrated Dynamic and Static Analysis
FASE '09 Proceedings of the 12th International Conference on Fundamental Approaches to Software Engineering: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Lightweight annotations for controlling sharing in concurrent data structures
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
FlexSync: An aspect-oriented approach to Java synchronization
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
A case for an interleaving constrained shared-memory multi-processor
Proceedings of the 36th annual international symposium on Computer architecture
Meta-analysis for Atomicity Violations under Nested Locking
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Towards transactional memory semantics for C++
Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
Asserting and checking determinism for multithreaded programs
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Debugging GPU stream programs through automatic dataflow recording and visualization
ACM SIGGRAPH Asia 2009 papers
SideTrack: generalizing dynamic atomicity analysis
Proceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
Predictive Typestate Checking of Multithreaded Java Programs
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Runtime Refinement Checking of Concurrent Data Structures
Electronic Notes in Theoretical Computer Science (ENTCS)
Concurrent Java Test Generation as a Search Problem
Electronic Notes in Theoretical Computer Science (ENTCS)
Effects for cooperable and serializable threads
Proceedings of the 5th ACM SIGPLAN workshop on Types in language design and implementation
ConMem: detecting severe concurrency bugs through an effect-oriented approach
Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems
Asserting and checking determinism for multithreaded programs
Communications of the ACM
Kivati: fast detection and prevention of atomicity violations
Proceedings of the 5th European conference on Computer systems
Explaining intermittent concurrent bugs by minimizing scheduling noise
HVC'06 Proceedings of the 2nd international Haifa verification conference on Hardware and software, verification and testing
RV'07 Proceedings of the 7th international conference on Runtime verification
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Falcon: fault localization in concurrent programs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
DETERMIN: inferring likely deterministic specifications of multithreaded programs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Analyzing concurrency bugs using dual slicing
Proceedings of the 19th international symposium on Software testing and analysis
Separating functional and parallel correctness using nondeterministic sequential specifications
HotPar'10 Proceedings of the 2nd USENIX conference on Hot topics in parallelism
Detection of Transactional Memory anomalies using static analysis
Proceedings of the 8th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
Composable specifications for structured shared-memory communication
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Instrumentation and sampling strategies for cooperative concurrency bug isolation
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
PENELOPE: weaving threads to expose atomicity violations
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
LEAP: lightweight deterministic multi-processor replay of concurrent java programs
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
LOCKSMITH: Practical static race detection for C
ACM Transactions on Programming Languages and Systems (TOPLAS)
Decentralized runtime analysis of multithreaded applications
IPDPS'06 Proceedings of the 20th international conference on Parallel and distributed processing
Ad hoc synchronization considered harmful
OSDI'10 Proceedings of the 9th USENIX conference on Operating systems design and implementation
Safe commits for transactional featherweight Java
IFM'10 Proceedings of the 8th international conference on Integrated formal methods
Tolerating Concurrency Bugs Using Transactions as Lifeguards
MICRO '43 Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture
AtomTracker: A Comprehensive Approach to Atomic Region Inference and Violation Detection
MICRO '43 Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture
InstantCheck: Checking the Determinism of Parallel Programs Using On-the-Fly Incremental Hashing
MICRO '43 Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture
User evaluation of correctness conditions: a case study of cooperability
Evaluation and Usability of Programming Languages and Tools
You should better enforce than verify
RV'10 Proceedings of the First international conference on Runtime verification
Runtime verification with the RV system
RV'10 Proceedings of the First international conference on Runtime verification
Interval analysis for concurrent trace programs using transaction sequence graphs
RV'10 Proceedings of the First international conference on Runtime verification
Runtime verification for software transactional memories
RV'10 Proceedings of the First international conference on Runtime verification
Specifying and checking semantic atomicity for multithreaded programs
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
2ndStrike: toward manifesting hidden concurrency typestate bugs
Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems
Statically locating web application bugs caused by asynchronous calls
Proceedings of the 20th international conference on World wide web
How do programs become more concurrent: a story of program transformations
Proceedings of the 4th International Workshop on Multicore Software Engineering
aComment: mining annotations from comments and code to detect interrupt related concurrency bugs
Proceedings of the 33rd International Conference on Software Engineering
Automated atomicity-violation fixing
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Persuasive prediction of concurrency access anomalies
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Practical verification of high-level dataraces in transactional memory programs
Proceedings of the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
Testing a database for race conditions with QuickCheck: none
Proceedings of the 10th ACM SIGPLAN workshop on Erlang
An efficient static trace simplification technique for debugging concurrent programs
SAS'11 Proceedings of the 18th international conference on Static analysis
Accentuating the positive: atomicity inference and enforcement using correct executions
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Testing atomicity of composed concurrent operations
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Efficient data race detection for distributed memory parallel programs
Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis
Redflag: a framework for analysis of Kernel-level concurrency
ICA3PP'11 Proceedings of the 11th international conference on Algorithms and architectures for parallel processing - Volume Part I
Verification of STM on relaxed memory models
Formal Methods in System Design
A statically verifiable programming model for concurrent object-oriented programs
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
A lightweight and portable approach to making concurrent failures reproducible
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
Tiddle: a trace description language for generating concurrent benchmarks to test dynamic analyses
WODA '09 Proceedings of the Seventh International Workshop on Dynamic Analysis
WODA '09 Proceedings of the Seventh International Workshop on Dynamic Analysis
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
Extending JML for modular specification and verification of multi-threaded programs
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Aikido: accelerating shared data dynamic analyses
ASPLOS XVII Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems
Location pairs: a test coverage metric for shared-memory concurrent programs
Empirical Software Engineering
The potential of sampling for dynamic analysis
Proceedings of the ACM SIGPLAN 6th Workshop on Programming Languages and Analysis for Security
Dependence analysis for safe futures
Science of Computer Programming
A novel test coverage metric for concurrently-accessed software components
FATES'05 Proceedings of the 5th international conference on Formal Approaches to Software Testing
Transparently reconciling transactions with locking for java synchronization
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Trace-Based symbolic analysis for atomicity violations
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Preemption sealing for efficient concurrency testing
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Verifying GPU kernels by test amplification
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Fully automatic and precise detection of thread safety violations
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Cooperative types for controlling thread interference in Java
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Axis: automatically fixing atomicity violations through solving control constraints
Proceedings of the 34th International Conference on Software Engineering
Static detection of resource contention problems in server-side scripts
Proceedings of the 34th International Conference on Software Engineering
Permission regions for race-free parallelism
RV'11 Proceedings of the Second international conference on Runtime verification
Marathon: detecting atomic-set serializability violations with conflict graphs
RV'11 Proceedings of the Second international conference on Runtime verification
Understanding the interleaving-space overlap across inputs and software versions
HotPar'12 Proceedings of the 4th USENIX conference on Hot Topics in Parallelism
Lock removal for concurrent trace programs
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Execution privatization for scheduler-oblivious concurrent programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Automated concurrency-bug fixing
OSDI'12 Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation
ConMem: Detecting Crash-Triggering Concurrency Bugs through an Effect-Oriented Approach
ACM Transactions on Software Engineering and Methodology (TOSEM)
ConAir: featherweight concurrency bug recovery via single-threaded idempotent execution
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Finding incorrect compositions of atomicity
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Efficient concurrency-bug detection across inputs
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Precise detection of atomicity violations
HVC'12 Proceedings of the 8th international conference on Hardware and Software: verification and testing
An approach to testing commercial embedded systems
Journal of Systems and Software
Hi-index | 0.02 |
Ensuring the correctness of multithreaded programs is difficult, due to the potential for unexpected interactions between concurrent threads. Much previous work has focused on detecting race conditions, but the absence of race conditions does not by itself prevent undesired thread interactions. We focus on the more fundamental non-interference property of atomicity; a method is atomic if its execution is not affected by and does not interfere with concurrently-executing threads. Atomic methods can be understood according to their sequential semantics, which significantly simplifies (formal and informal) correctness arguments.This paper presents a dynamic analysis for detecting atomicity violations. This analysis combines ideas from both Lipton's theory of reduction and earlier dynamic race detectors. Experience with a prototype checker for multithreaded Java code demonstrates that this approach is effective for detecting errors due to unintended interactions between threads. In particular, our atomicity checker detects errors that would be missed by standard race detectors, and it produces fewer false alarms on benign races that do not cause atomicity violations. Our experimental results also indicate that the majority of methods in our benchmarks are atomic, supporting our hypothesis that atomicity is a standard methodology in multithreaded programming.