The Need for a Common Concurrency Language [dataset]

Stephen F. Siegel, Manchun Zheng, Paul Hovland, Matthew B. Dwyer
2015 Figshare  
Researchers have explored a variety of static approaches to verification. By static, we mean any technique used to reason about the source code without executing it. These approaches include dataflowbased and other static analyses, abstract interpretations, model checking, symbolic execution, and deductive verification using code contracts. The techniques and tools developed target a number of different aspects of "correctness", including verification of. . . • absence of null pointer
more » ... es, illegal pointer arithmetic, or out-of-bound array indexing • absence of assertion violations • absence of memory leaks • absence of deadlock in a concurrent program • absence of unnecessary barriers in a concurrent program • absence of race conditions in a shared-memory concurrent program • the correct use of concurrency APIs; e.g., in MPI each process in a communicator invokes the same sequence of collective operations on that communicator • the functional equivalence of two programs; e.g., a simple sequential version of a program and a highly optimized parallel version.
doi:10.6084/m9.figshare.1564849.v1 fatcat:zs5434rbfrexfl5znevp34ekpe