1. Jonathan Aldrich, Joshua Sunshine, Darpan Saini & Zachary Sparks (2009): Typestate-oriented programming. In: Companion to OOPSLA'09. ACM, pp. 1015–1022, doi:10.1145/1639950.1640073.
  2. Nels E. Beckman, Duri Kim & Jonathan Aldrich (2011): An Empirical Study of Object Protocols in the Wild. In: Proceedings of ECOOP'11, LNCS 6813. Springer, pp. 2–26, doi:10.1007/978-3-642-22655-7_2.
  3. Nick Benton, Luca Cardelli & Cédric Fournet (2004): Modern concurrency abstractions for C#. ACM Transactions on Programming Languages and Systems 26(5), pp. 769–804, doi:10.1145/1018203.1018205.
  4. Jean-Philippe Bernardy, Mathieu Boespflug, Ryan R. Newton, Simon Peyton Jones & Arnaud Spiwack (2018): Linear Haskell: practical linearity in a higher-order polymorphic language. PACMPL 2(POPL), pp. 5:1–5:29, doi:10.1145/3158093.
  5. Janusz A. Brzozowski (1964): Derivatives of Regular Expressions. Journal of ACM 11(4), pp. 481–494, doi:10.1145/321239.321249.
  6. Silvia Crafa & Luca Padovani (2017): The Chemical Approach to Typestate-Oriented Programming. ACM Transactions on Programming Languages and Systems 39, pp. 13:1–13:45, doi:10.1145/3064849.
  7. Fabrice Le Fessant & Luc Maranget (1998): Compiling Join-Patterns. Electr. Notes Theor. Comput. Sci. 16(3), pp. 205–224, doi:10.1016/S1571-0661(04)00143-4.
  8. Cédric Fournet, Cosimo Laneve, Luc Maranget & Didier Rémy (2003): Inheritance in the Join Calculus. Journal of Logic and Algebraic Programming 57(1-2), pp. 23–69, doi:10.1016/S1567-8326(03)00040-7.
  9. Cédric Fournet, Fabrice Le Fessant, Luc Maranget & Alan Schmitt (2003): JoCaml: A Language for Concurrent Distributed and Mobile Programming. In: Lecture Notes of the 4th International School on Advanced Functional Programming (AFP'03) LNCS 2638. Springer, pp. 129–158, doi:10.1007/978-3-540-44833-4_5.
  10. Ronald Garcia, Éric Tanter, Roger Wolff & Jonathan Aldrich (2014): Foundations of Typestate-Oriented Programming. ACM Transactions on Programming Languages and Systems 36(4), pp. 12, doi:10.1145/2629609.
  11. James Gosling, Bill Joy, Guy L. Steele, Gilad Bracha & Alex Buckley (2014): The Java Language Specification, Java SE 8 Edition, 1st edition. Addison-Wesley Professional.
  12. Philipp Haller, Aleksandar Prokopec, Heather Miller, Viktor Klang, Roland Kuhn & Vojin Jovanovic (2019): Futures and Promises. Available at
  13. Philipp Haller & Tom Van Cutsem (2008): Implementing Joins Using Extensible Pattern Matching. In: Proceedings of COORDINATION'08 LNCS 5052. Springer, pp. 135–152, doi:10.1007/978-3-540-68265-3_9.
  14. G. Stewart Von Itzstein & Mark Jasiunas (2003): On Implementing High Level Concurrency in Java. In: Proceedings of ACSAC'03, LNCS 2823. Springer, pp. 151–165, doi:10.1007/978-3-540-39864-6_13.
  15. Dimitrios Kouzapas, Ornela Dardha, Roly Perera & Simon J. Gay (2018): Typechecking protocols with Mungo and StMungo: A session type toolchain for Java. Science of Computer Programming 155, pp. 52 – 75, doi:10.1016/j.scico.2017.10.006.
  16. Microsoft Research (2004): . Available at Last accessed on January 2019.
  17. Luca Padovani (2017): CobaltBlue– Behavioral Type Checking for Concurrent Objects. Available at
  18. Luca Padovani (2018): Deadlock-Free Typestate-Oriented Programming. Programming Journal 2, pp. article 15, doi:10.22152/
  19. Luca Padovani (2019): EasyJoin – Concurrent TypeState-Oriented Programming in Java (Version 1.0), doi:10.5281/zenodo.2586829.
  20. Hubert Plociniczak & Susan Eisenbach (2010): JErlang: Erlang with Joins. In: Proceedings of COORDINATION'10 LNCS 6116. Springer, pp. 61–75, doi:10.1007/978-3-642-13414-2_5.
  21. Claudio V. Russo (2007): The Joins Concurrency Library. In: Proceedings of PADL'07 LNCS 4354. Springer, pp. 260–274, doi:10.1007/978-3-540-69611-7_17.
  22. Claudio V. Russo (2008): Join Patterns for Visual Basic. In: Proceedings of OOPSLA'08. ACM, pp. 53–72, doi:10.1145/1449764.1449770.
  23. Jeremy G. Siek & Walid Taha (2007): Gradual Typing for Objects. In: Proceedings of ECOOP'07, LNCS 4609. Springer, pp. 2–27, doi:10.1007/978-3-540-73589-2_2.
  24. Martin Sulzmann, Edmund S. L. Lam & Peter Van Weert (2008): Actors with Multi-headed Message Receive Patterns. In: Proceedings of COORDINATION'08, LNCS 5052. Springer, pp. 315–330, doi:10.1007/978-3-540-68265-3_20.
  25. Joshua Sunshine, Karl Naden, Sven Stork, Jonathan Aldrich & Éric Tanter (2011): First-class state change in plaid. In: Cristina Videira Lopes & Kathleen Fisher: Proceedings of OOPSLA'11. ACM, pp. 713–732, doi:10.1145/2048066.2048122.
  26. Joshua Sunshine, Sven Stork, Karl Naden & Jonathan Aldrich (2011): Changing state in the plaid language. In: Cristina Videira Lopes & Kathleen Fisher: Companion to OOPSLA'11. ACM, pp. 37–38, doi:10.1145/2048147.2048166.
  27. Aaron Joseph Turon & Claudio V. Russo (2011): Scalable join patterns. In: Proceedings of OOPSLA'93. ACM, pp. 575–594, doi:10.1145/2048066.2048111.
  28. Roger Wolff, Ronald Garcia, Éric Tanter & Jonathan Aldrich (2011): Gradual Typestate. In: Proceedings of ECOOP'11, LNCS 6813. Springer, pp. 459–483, doi:10.1007/978-3-642-22655-7_22.

Comments and questions to:
For website issues: