Treffer: Model Checking of Concurrent Algorithms: From Java to C

Title:
Model Checking of Concurrent Algorithms: From Java to C
Contributors:
Research Center for Information Security (RCIS), National Institute of Advanced Industrial Science and Technology (AIST), University of Tokyo Tokyo = Tōkyō teikoku daigaku (UTokyo), National Institute of Informatics (NII), Chiba University, Mike Hinchey, Bernd Kleinjohann, Lisa Kleinjohann, Peter A. Lindsay, Franz J. Rammig, Jon Timmis, Marilyn Wolf
Source:
IFIP Advances in Information and Communication Technology ; 7th IFIP TC 10 Working Conference on Distributed, Parallel and Biologically Inspired Systems (DIPES) / 3rd IFIP TC 10 International Conference on Biologically-Inspired Collaborative Computing (BICC) / Held as Part of World Computer Congress (WCC) ; https://inria.hal.science/hal-01054483 ; 7th IFIP TC 10 Working Conference on Distributed, Parallel and Biologically Inspired Systems (DIPES) / 3rd IFIP TC 10 International Conference on Biologically-Inspired Collaborative Computing (BICC) / Held as Part of World Computer Congress (WCC) , Sep 2010, Brisbane, Australia. pp.90-101, ⟨10.1007/978-3-642-15234-4_10⟩
Publisher Information:
CCSD
Springer
Publication Year:
2010
Subject Geographic:
Document Type:
Konferenz conference object
Language:
English
DOI:
10.1007/978-3-642-15234-4_10
Rights:
http://creativecommons.org/licenses/by/ ; info:eu-repo/semantics/OpenAccess
Accession Number:
edsbas.5EED7B4F
Database:
BASE

Weitere Informationen

International audience ; Concurrent software is difficult to verify. Because the thread schedule is not controlled by the application, testing may miss defects that occur under specific thread schedules. This problem gave rise to software model checking, where the outcome of all possible thread schedules is analyzed. Among existing software model checkers for multi-threaded programs, Java PathFinder for Java bytecode is probably the most flexible one. We argue that compared to C programs, the virtual machine architecture of Java, combined with the absence of direct low-level memory access, lends itself to software model checking using a virtual machine approach. C model checkers, on the other hand, often use a stateless approach, where it is harder to avoid redundancy in the analysis. Because of this, we found it beneficial to prototype a concurrent algorithm in Java, and use the richer feature set of a Java model checker, before moving our implementation to C. As the thread models are nearly identical, such a transition does not incur high development cost. Our case studies confirm the potential of our approach.