TY - GEN
T1 - X10X
T2 - 5th IEEE International Conference on Software Testing, Verification and Validation, ICST 2012
AU - Gligoric, Milos
AU - Mehlitz, Peter C.
AU - Marinov, Darko
PY - 2012
Y1 - 2012
N2 - Parallel and distributed computing is becoming a norm with the advent of multi-core, networked, and cloud computing platforms. New programming languages are emerging for these platforms, e.g., the X10 language from IBM. While these languages explicitly support concurrent programming, they cannot eliminate all concurrency related bugs, which are usually hard to find. Finding such bugs is easier using specialized, language-aware model-checking tools. However, such tools are highly complex and developing them from scratch requires large effort. We describe our experience in developing a model-checking tool for a new language, X10, by systematically adapting an existing tool, the JPF model checker for Java. X10 programs can be compiled to Java, but unfortunately checking X10 programs directly with the unmodified JPF and X10 runtime can miss some behaviors and scales very poorly. We present four sets of techniques that can be employed to make checking a new language with an "old" model checker practical: (1) modify the model checker, (2) modify the language runtime, (3) extend the language compiler, and (4) develop a new static analysis. We instantiated each technique to enable checking X10 programs with JPF. We evaluated our new techniques on over 100 X10 example programs and found a substantial speedup.
AB - Parallel and distributed computing is becoming a norm with the advent of multi-core, networked, and cloud computing platforms. New programming languages are emerging for these platforms, e.g., the X10 language from IBM. While these languages explicitly support concurrent programming, they cannot eliminate all concurrency related bugs, which are usually hard to find. Finding such bugs is easier using specialized, language-aware model-checking tools. However, such tools are highly complex and developing them from scratch requires large effort. We describe our experience in developing a model-checking tool for a new language, X10, by systematically adapting an existing tool, the JPF model checker for Java. X10 programs can be compiled to Java, but unfortunately checking X10 programs directly with the unmodified JPF and X10 runtime can miss some behaviors and scales very poorly. We present four sets of techniques that can be employed to make checking a new language with an "old" model checker practical: (1) modify the model checker, (2) modify the language runtime, (3) extend the language compiler, and (4) develop a new static analysis. We instantiated each technique to enable checking X10 programs with JPF. We evaluated our new techniques on over 100 X10 example programs and found a substantial speedup.
UR - http://www.scopus.com/inward/record.url?scp=84862318036&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84862318036&partnerID=8YFLogxK
U2 - 10.1109/ICST.2012.81
DO - 10.1109/ICST.2012.81
M3 - Conference contribution
AN - SCOPUS:84862318036
SN - 9780769546704
T3 - Proceedings - IEEE 5th International Conference on Software Testing, Verification and Validation, ICST 2012
SP - 11
EP - 20
BT - Proceedings - IEEE 5th International Conference on Software Testing, Verification and Validation, ICST 2012
Y2 - 17 April 2012 through 21 April 2012
ER -