@MASTERSTHESIS\{IMM2015-06858, author = "C. G. Kalhauge", title = "Hyperconcolic - Finding parallel bugs in Java programs, using concolic execution", year = "2015", school = "Technical University of Denmark, Department of Applied Mathematics and Computer Science", address = "Richard Petersens Plads, Building 324, {DK-}2800 Kgs. Lyngby, Denmark, compute@compute.dtu.dk", type = "", note = "{DTU} supervisor: Christian Probst, cwpr@dtu.dk, {DTU} Compute", url = "http://www.compute.dtu.dk/English.aspx", abstract = "Parallel errors are an increasingly greater problem. Of these problems are the data race the easiest problem to solve, but it still remains a difficult problem. Static analyses finds to many and dynamic analysis finds too few. I have created a new sound way to extract schedules from parallel programs, based of concolic execution, called hyperconcolic. A new mathematical notation for describing the coverage of dynamic analyses, called schedule classes, is introduced. Hyperconcolic has better schedule class coverage than concolic, because hyperconcolic is able to chose the scheduler for each execution. A new language for containing schedules has been specified to enable multiple programs to work on the same schedules without interfering. State of the art data race detectors has been implemented to analyse these schedules. I have also made probable that combinations of hyperconcolic and some dynamic data race techniques are sound and complete for programs which produce bounded length schedules for all inputs." }