• Cite Icon68
  • https://doi.org/10.1145/1377492.1377495Copy DOI Icon

Types for atomicity

Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

Atomicity is a fundamental correctness property in multithreaded programs. A method is atomic if, for every execution, there is an equivalent serial execution in which the actions of the method are not interleaved with actions of other threads. Atomic methods are amenable to sequential reasoning, which significantly facilitates subsequent analysis and verification. This article presents a type system for specifying and verifying the atomicity of methods in multithreaded Java programs using a synthesis of Lipton's theory of reduction and type systems for race detection. The type system supports guarded, write-guarded, and unguarded fields, as well as thread-local data, parameterized classes and methods, and protected locks. We also present an algorithm for verifying atomicity via type inference. We have applied our type checker and type inference tools to a number of commonly used Java library classes and programs. These tools were able to verify the vast majority of methods in these benchmarks as atomic, indicating that atomicity is a widespread methodology for multithreaded programming. In addition, reported atomicity violations revealed some subtle errors in the synchronization disciplines of these programs.

Similar Papers
  • Conference Article
  • Citations30

EnforceMOP: a runtime property enforcement system for multithreaded programs

  • Jul 15, 2013
  • Qingzhou Luo +1
  • Research Article
  • Citations13

Byte-code scheduling of Java programs with branches for desktop grid

  • Apr 20, 2007
  • Future Generation Computer Systems
  • Eryk Laskowski +3
  • Conference Article
  • Citations81

Applying static analysis to large-scale, multi-threaded Java programs

  • Jan 01, 2016
  • C Artho +1
  • Book Chapter
  • Citations98

A Formal Study of Slicing for Multi-threaded Programs with JVM Concurrency Primitives

  • Jan 01, 1999
  • John Hatcliff +4
  • Conference Article
  • Citations33

Predictive Typestate Checking of Multithreaded Java Programs

  • Sep 01, 2008
  • Pallavi Joshi +1
  • Conference Article
  • Citations5

<u>T</u>i<u>d</u>d<u>l</u>e

  • Jul 20, 2009
  • Caitlin Sadowski +1
  • Conference Article
  • Citations14

Pointer analysis of multithreaded Java programs

  • Mar 09, 2003
  • Mangala Gowri Nanda +1
  • Research Article
  • Citations13

Dead code elimination based pointer analysis for multithreaded programs

  • Feb 01, 2012
  • Journal of the Egyptian Mathematical Society
  • Mohamed A El-Zawawy
  • Conference Article
  • Citations36

Change-aware preemption prioritization

  • Jul 17, 2011
  • Vilas Jagannath +2
  • Conference Article
  • Citations3

Evaluation of a Structured Design Methodology for Concurrent Programming

  • Nov 18, 2019
  • Lex Bijlsma +5
  • Supplementary Content

Co-Contextual Type Systems: Contextless Deductive Reasoning for Correct Incremental Type Checking

  • Mar 02, 2020
  • TUbilio (Technical University of Darmstadt)
  • Edlira Kuci
  • Research Article
  • Citations23

Summarizing procedures in concurrent programs

  • Jan 01, 2004
  • ACM SIGPLAN Notices
  • Shaz Qadeer +2
  • Research Article

From ML type inference to stratified type inference

  • Sep 12, 2005
  • ACM SIGPLAN Notices
  • François Pottier
  • Conference Article
  • Citations15

BEST: A symbolic testing tool for predicting multi-threaded program failures

  • Nov 01, 2011
  • Malay K Ganai +4
  • Conference Article
  • Citations1

Fast error detection with hybrid analyses of future accesses

  • Apr 04, 2016
  • Pavel Parízek
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.