1. Cyrille Artho, Klaus Havelund & Armin Biere (2003): High-Level Data Races. In: NDDL/VVEIS, pp. 82–93, doi:10.1002/stvr.281.
  2. Mike Barnett, K. Rustan M. Leino & Wolfram Schulte (2005): The spec# programming system: an overview. In: Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices, CASSIS'04. Springer-Verlag, Berlin, Heidelberg, pp. 49–69, doi:10.1007/978-3-540-30569-9-3.
  3. Nels E. Beckman (2006): A Survey of Methods for Preventing Race Conditions.
  4. Nels E. Beckman, Kevin Bierhoff & Jonathan Aldrich (2008): Verifying correct usage of atomic blocks and typestate. In: Gail E. Harris: OOPSLA. ACM, pp. 227–244, doi:10.1145/1449764.1449783.
  5. Matthias Blume & David McAllester (2006): Sound and complete models of contracts. J. Funct. Program. 16(4-5), pp. 375–414, doi:10.1017/S0956796806005971.
  6. Johannes Borgstrom, Karthikeyan Bhargavan & Andrew D. Gordon (2009): A compositional theory for STM Haskell. In: Proceedings of the 2nd ACM SIGPLAN symposium on Haskell, Haskell '09. ACM, New York, NY, USA, pp. 69–80, doi:10.1145/1596638.1596648.
  7. Chandrasekhar Boyapati, Robert Lee & Martin Rinard (2002): Ownership types for safe programming: preventing data races and deadlocks. SIGPLAN Not. 37(11), pp. 211–230, doi:10.1145/583854.582440.
  8. Robert DeLine & Manuel F\begingroupłet [Pleaseinsert\PrerenderUnicodeäintopreamble]hndrich (2004): Typestates for Objects. In: Martin Odersky: ECOOP 2004 \begingroupłet [Pleaseinsert\PrerenderUnicode–intopreamble] Object-Oriented Programming, Lecture Notes in Computer Science 3086. Springer Berlin Heidelberg, pp. 465–490, doi:10.1007/978-3-540-24851-4-21.
  9. Romain Demeyer & Wim Vanhoof (2012): A Framework for Verifying the Application-Level Race-Freeness of Concurrent Programs. Available at
  10. Tayfun Elmas, Shaz Qadeer & Serdar Tasiran (2007): Goldilocks: a race and transaction-aware java runtime. SIGPLAN Not. 42(6), pp. 245–255, doi:10.1145/1273442.1250762.
  11. Dawson Engler & Ken Ashcraft (2003): RacerX: effective, static detection of race conditions and deadlocks. SIGOPS Oper. Syst. Rev. 37, pp. 237–252, doi:10.1145/1165389.945468.
  12. Cormac Flanagan & Stephen N. Freund (2000): Type-based race detection for Java. SIGPLAN Not. 35, pp. 219–232, doi:10.1145/358438.349328.
  13. Cormac Flanagan & Shaz Qadeer (2003): A type and effect system for atomicity. SIGPLAN Not. 38, pp. 338–349, doi:10.1145/780822.781169.
  14. J\begingroupłet [Pleaseinsert\PrerenderUnicodeüintopreamble]rgen Giesl, Stephan Swiderski, Peter Schneider-Kamp & Ren\begingroupłet [Pleaseinsert\PrerenderUnicodeéintopreamble] Thiemann (2006): Automated Termination Analysis for Haskell: From Term Rewriting to Programming Languages. In: Frank Pfenning: Term Rewriting and Applications, Lecture Notes in Computer Science 4098. Springer Berlin Heidelberg, pp. 297–312, doi:10.1007/11805618_23.
  15. Tim Harris, Simon Marlow, Simon Peyton-Jones & Maurice Herlihy (2005): Composable memory transactions. In: PPoPP '05: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming. ACM, New York, NY, USA, pp. 48–60, doi:10.1145/1065944.1065952.
  16. Tim Harris & Simon Peyton Jones (2006): Transactional memory with data invariants.
  17. Thomas A. Henzinger, Ranjit Jhala & Rupak Majumdar (2004): Race checking by context inference. SIGPLAN Not. 39, pp. 1–13, doi:10.1145/996893.996844.
  18. Paul Hudak, Simon Peyton Jones, Philip Wadler, Brian Boutel, Jon Fairbairn, Joseph Fasel, María M. Guzmán, Kevin Hammond, John Hughes, Thomas Johnsson, Dick Kieburtz, Rishiyur Nikhil, Will Partain & John Peterson (1992): Report on the programming language Haskell: a non-strict, purely functional language version 1.2. SIGPLAN Not. 27(5), pp. 1–164, doi:10.1145/130697.130699.
  19. John Hughes (1996): An Introduction to Program Specialisation by Type Inference. Glasgow University. Published electronically.
  20. Bart Jacobs, Frank Piessens, Jan Smans, K. Rustan M. Leino & Wolfram Schulte (2008): A programming model for concurrent object-oriented programs. ACM Trans. Program. Lang. Syst. 31(1), pp. 1:1–1:48, doi:10.1145/1452044.1452045.
  21. Neil D. Jones, Carsten K. Gomard & Peter Sestoft (1993): Partial evaluation and automatic program generation. Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
  22. Simon L. Peyton Jones (1996): Compiling Haskell by program transformation: a report from the trenches.
  23. Simon Peyton Jones (2007): Beautiful Concurrency. Ch. 24.
  24. Rusl\begingroupłet [Pleaseinsert\PrerenderUnicodeáintopreamble]n Ledesma-Garza & Andrey Rybalchenko (2012): Binary Reachability Analysis of Higher Order Functional Programs. In: Antoine Min\begingroupłet [Pleaseinsert\PrerenderUnicodeéintopreamble] & David Schmidt: Static Analysis, Lecture Notes in Computer Science 7460. Springer Berlin Heidelberg, pp. 388–404, doi:10.1007/978-3-642-33125-1-26.
  25. Shan Lu, Soyeon Park, Chongfeng Hu, Xiao Ma, Weihang Jiang, Zhenmin Li, Raluca A. Popa & Yuanyuan Zhou (2007): MUVI: automatically inferring multi-variable access correlations and detecting related semantic and concurrency bugs. SIGOPS Oper. Syst. Rev. 41, pp. 103–116, doi:10.1145/1323293.1294272.
  26. Shan Lu, Soyeon Park, Eunsoo Seo & Yuanyuan Zhou (2008): Learning from mistakes: a comprehensive study on real world concurrency bug characteristics. In: Susan J. Eggers & James R. Larus: ASPLOS. ACM, pp. 329–339, doi:10.1145/1346281.1346323.
  27. Shan Lu, Joseph Tucek, Feng Qin & Yuanyuan Zhou (2006): AVIO: detecting atomicity violations via access interleaving invariants. SIGPLAN Not. 41(11), pp. 37–48, doi:10.1145/1168918.1168864.
  28. Brandon Lucia & Luis Ceze (2009): Finding concurrency bugs with context-aware communication graphs. In: Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture, MICRO 42. ACM, New York, NY, USA, pp. 553–563, doi:10.1145/1669112.1669181.
  29. Brandon Lucia, Luis Ceze & Karin Strauss (2010): ColorSafe: architectural support for debugging and dynamically avoiding multi-variable atomicity violations. SIGARCH Comput. Archit. News 38(3), pp. 222–233, doi:10.1145/1816038.1815988.
  30. Brandon Lucia, Joseph Devietti, Karin Strauss & Luis Ceze (2008): Atom-Aid: Detecting and Surviving Atomicity Violations. SIGARCH Comput. Archit. News 36(3), pp. 277–288, doi:10.1145/1394608.1382145.
  31. Daniel Marino, Madanlal Musuvathi & Satish Narayanasamy (2009): LiteRace: effective sampling for lightweight data-race detection. In: In PLDI, doi:10.1145/1542476.1542491.
  32. Bertrand Meyer (1992): Eiffel: the language. Prentice-Hall, Inc., Upper Saddle River, NJ, USA.
  33. Mayur Naik, Alex Aiken & John Whaley (2006): Effective static race detection for Java. SIGPLAN Not. 41(6), pp. 308–319, doi:10.1145/1133255.1134018.
  34. Robert H. B. Netzer (1993): Optimal tracing and replay for debugging shared-memory parallel programs. SIGPLAN Not. 28(12), pp. 1–11, doi:10.1145/174267.174268.
  35. Flemming Nielson, Hanne Riis Nielson & Chris Hanking (2005): Principles of Program Analysis. Springer.
  36. Robert O'Callahan & Jong-Deok Choi (2003): Hybrid dynamic data race detection. SIGPLAN Not. 38(10), pp. 167–178, doi:10.1145/966049.781528.
  37. Chang-Seo Park & Koushik Sen (2008): Randomized active atomicity violation detection in concurrent programs. In: Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering, SIGSOFT '08/FSE-16. ACM, New York, NY, USA, pp. 135–145, doi:10.1145/1453101.1453121.
  38. Vasco Pessanha, Ricardo J. Dias, Jo ao M. Louren co, Eitan Farchi & Diogo Sousa (2011): Practical verification of high-level dataraces in transactional memory programs. In: Proceedings of the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, PADTAD '11. ACM, New York, NY, USA, pp. 26–34, doi:10.1145/2002962.2002968.
  39. Polyvios Pratikakis, Jeffrey S. Foster & Michael Hicks (2006): LOCKSMITH: context-sensitive correlation analysis for race detection. SIGPLAN Not. 41(6), pp. 320–331, doi:10.1145/1133255.1134019.
  40. Shaz Qadeer & Dinghao Wu (2004): KISS: keep it simple and sequential. SIGPLAN Not. 39(6), pp. 14–24, doi:10.1145/996893.996845.
  41. Amit Sasturkar, Rahul Agarwal, Liqiang Wang & Scott D. Stoller (2005): Automated type-based analysis of data races and atomicity. In: Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming, PPoPP '05. ACM, New York, NY, USA, pp. 83–94, doi:10.1145/1065944.1065956.
  42. Stefan Savage, Michael Burrows, Greg Nelson, Patrick Sobalvarro & Thomas Anderson (1997): Eraser: a dynamic data race detector for multithreaded programs. ACM Trans. Comput. Syst. 15(4), pp. 391–411, doi:10.1145/265924.265927.
  43. Nir Shavit & Dan Touitou (1995): Software transactional memory, pp. 204–213, doi:10.1145/224964.224987.
  44. Nicholas Sterling (1993): WARLOCK - A Static Data Race Analysis Tool.
  45. Bruno Teixeira, Jo ao Louren co, Eitan Farchi, Ricardo Dias & Diogo Sousa (2010): Detection of Transactional Memory anomalies using static analysis. In: Proceedings of the 8th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging, PADTAD '10. ACM, New York, NY, USA, pp. 26–36, doi:10.1145/1866210.1866213.
  46. Dimitrios Vytiniotis, Simon Peyton Jones, Koen Claessen & Dan Rosén (2013): HALO: haskell to logic through denotational semantics. In: Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, POPL '13. ACM, New York, NY, USA, pp. 431–442, doi:10.1145/2429069.2429121.
  47. Dana N. Xu, Simon Peyton Jones & Koen Claessen (2009): Static contract checking for Haskell. SIGPLAN Not. 44(1), pp. 41–52, doi:10.1145/1594834.1480889.
  48. Na Xu (2008): Static contract checking for Haskell. Technical Report UCAM-CL-TR-737. University of Cambridge, Computer Laboratory. Available at
  49. Yuan Yu, Tom Rodeheffer & Wei Chen (2005): RaceTrack: efficient detection of data race conditions via adaptive tracking. SIGOPS Oper. Syst. Rev. 39, pp. 221–234, doi:10.1145/1095809.1095832.

Comments and questions to:
For website issues: