A formal study of slicing for multi-threaded programs with jvm concurrency primitives

52Citations
Citations of this article
19Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Previous work has shown that program slicing can be a useful step in model-checking software systems. We are interested in applying these techniques to construct models of multi-threaded Java programs. Past work does not address the concurrency primitives found in Java, nor does it provide the rigorous notions of slice correctness that are necessary for reasoning about programs with non-deterministic behaviour and potentially infinite computation traces. In this paper, we define the semantics of a simple multi-threaded language with concurrency primitives matching those found in the Java Virtual Machine, we propose a bisimulation-based notion of correctness for slicing in this setting, we identify notions of dependency that are relevant for slicing multi-threaded Java programs, and we use these dependencies to specify a program slicer for the language presented in the paper. Finally, we discuss how these dependencies can be refined to take into account common programming idioms of concurrent Java software.

Cite

CITATION STYLE

APA

Hatcliff, J., Corbett, J., Dwyer, M., Sokolowski, S., & Zheng, H. (1999). A formal study of slicing for multi-threaded programs with jvm concurrency primitives. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 1694, pp. 1–18). Springer Verlag. https://doi.org/10.1007/3-540-48294-6_1

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free