Dynamic Symbolic Execution of Distributed Concurrent Objects [chapter]

Andreas Griesmayer, Bernhard Aichernig, Einar Broch Johnsen, Rudolf Schlatte
2009 Lecture Notes in Computer Science  
This paper extends dynamic symbolic execution to distributed and concurrent systems. Dynamic symbolic execution is used to systematically identify equivalence classes of input values and has been shown to scale well to large systems. Although mainly applied to sequential programs, this scalability makes it interesting to consider the technique in the distributed and concurrent setting as well. In order to extend the technique to concurrent systems, it is necessary to obtain sufficient control
more » ... er the scheduling of concurrent activities to avoid race conditions. Creol, a modeling language for distributed concurrent objects, solves this problem by abstracting from a particular scheduling policy but explicitly defining scheduling points. This provides sufficient control to apply the technique of dynamic symbolic of interleaved processes. The technique has been formalized in rewriting logic and executes in Maude. This research was carried out as part of the EU FP6 project Credo: Modeling and analysis of evolutionary structures for distributed services (IST-33826).
doi:10.1007/978-3-642-02138-1_16 fatcat:xwz474klzrc6hp2k5bb3u3wld4