@inproceedings(AldrichEtAl09, author = {Jonathan Aldrich and Joshua Sunshine and Darpan Saini and Zachary Sparks}, year = {2009}, title = {Typestate-oriented programming}, booktitle = {Companion to OOPSLA'09}, publisher = {{ACM}}, pages = {1015--1022}, doi = {10.1145/1639950.1640073}, ) @inproceedings(BeckmanKimAldrich11, author = {Nels E. Beckman and Duri Kim and Jonathan Aldrich}, year = {2011}, title = {An Empirical Study of Object Protocols in the Wild}, booktitle = {Proceedings of ECOOP'11}, series = {LNCS 6813}, publisher = {Springer}, pages = {2--26}, doi = {10.1007/978-3-642-22655-7\_2}, ) @article(BentonCardelliFournet04, author = {Nick Benton and Luca Cardelli and C{\'{e}}dric Fournet}, year = {2004}, title = {Modern concurrency abstractions for {C\#}}, journal = {{ACM} Transactions on Programming Languages and Systems}, volume = {26}, number = {5}, pages = {769--804}, doi = {10.1145/1018203.1018205}, ) @article(BernardyEtAl18, author = {Jean{-}Philippe Bernardy and Mathieu Boespflug and Ryan R. Newton and {Peyton Jones}, Simon and Arnaud Spiwack}, year = {2018}, title = {Linear Haskell: practical linearity in a higher-order polymorphic language}, journal = {{PACMPL}}, volume = {2}, number = {{POPL}}, pages = {5:1--5:29}, doi = {10.1145/3158093}, ) @article(Brzozowski64, author = {Janusz A. Brzozowski}, year = {1964}, title = {{Derivatives of Regular Expressions}}, journal = {Journal of ACM}, volume = {11}, number = {4}, pages = {481--494}, doi = {10.1145/321239.321249}, ) @article(CrafaPadovani17, author = {Silvia Crafa and Luca Padovani}, year = {2017}, title = {{The Chemical Approach to Typestate-Oriented Programming}}, journal = {ACM Transactions on Programming Languages and Systems}, volume = {39}, pages = {13:1--13:45}, doi = {10.1145/3064849}, ) @article(LeFessantMaranget98, author = {Fabrice Le Fessant and Luc Maranget}, year = {1998}, title = {Compiling Join-Patterns}, journal = {Electr. Notes Theor. Comput. Sci.}, volume = {16}, number = {3}, pages = {205--224}, doi = {10.1016/S1571-0661(04)00143-4}, ) @article(FournetLaneveMarangetRemy03, author = {C\'edric Fournet and Cosimo Laneve and Luc Maranget and Didier R\'emy}, year = {2003}, title = {{Inheritance in the Join Calculus}}, journal = {Journal of Logic and Algebraic Programming}, volume = {57}, number = {1-2}, pages = {23--69}, doi = {10.1016/S1567-8326(03)00040-7}, ) @inproceedings(FournetLeFessantMarangetSchmitt03, author = {C{\'{e}}dric Fournet and {Le Fessant}, Fabrice and Luc Maranget and Alan Schmitt}, year = {2003}, title = {JoCaml: {A} Language for Concurrent Distributed and Mobile Programming}, booktitle = {Lecture Notes of the 4th International School on Advanced Functional Programming (AFP'03)}, volume = {LNCS 2638}, publisher = {Springer}, pages = {129--158}, doi = {10.1007/978-3-540-44833-4_5}, ) @article(GarciaEtAl14, author = {Ronald Garcia and {\'{E}}ric Tanter and Roger Wolff and Jonathan Aldrich}, year = {2014}, title = {Foundations of Typestate-Oriented Programming}, journal = {{ACM} Transactions on Programming Languages and Systems}, volume = {36}, number = {4}, pages = {12}, doi = {10.1145/2629609}, ) @book(GoslingEtAl14, author = {James Gosling and Bill Joy and Guy L. Steele and Gilad Bracha and Alex Buckley}, year = {2014}, title = {The Java Language Specification, Java SE 8 Edition}, edition = {1st}, publisher = {Addison-Wesley Professional}, ) @misc(ScalaPromises, author = {Philipp Haller and Aleksandar Prokopec and Heather Miller and Viktor Klang and Roland Kuhn and Vojin Jovanovic}, year = {2019}, title = {Futures and Promises}, url = {https://docs.scala-lang.org/overviews/core/futures.html}, ) @inproceedings(HallerVanCutsem08, author = {Philipp Haller and {Van Cutsem}, Tom}, year = {2008}, title = {Implementing Joins Using Extensible Pattern Matching}, booktitle = {Proceedings of COORDINATION'08}, volume = {LNCS 5052}, publisher = {Springer}, pages = {135--152}, doi = {10.1007/978-3-540-68265-3_9}, ) @inproceedings(ItzsteinJasiunas03, author = {G. Stewart Von Itzstein and Mark Jasiunas}, year = {2003}, title = {On Implementing High Level Concurrency in Java}, booktitle = {Proceedings of ACSAC'03}, series = {LNCS 2823}, publisher = {Springer}, pages = {151--165}, doi = {10.1007/978-3-540-39864-6\_13}, ) @article(KouzapasEtAl18, author = {Dimitrios Kouzapas and Ornela Dardha and Roly Perera and Simon J. Gay}, year = {2018}, title = {Typechecking protocols with Mungo and StMungo: A session type toolchain for Java}, journal = {Science of Computer Programming}, volume = {155}, pages = {52 -- 75}, doi = {10.1016/j.scico.2017.10.006}, ) @misc(Comega, author = {{Microsoft Research}}, year = {2004}, title = {C$\omega$}, url = {https://www.microsoft.com/en-us/research/project/comega/}, note = {Last accessed on January 2019}, ) @misc(CobaltBlue, author = {Luca Padovani}, year = {2017}, title = {{{\textsf{Cobalt\bfseries Blue}\xspace} -- Behavioral Type Checking for Concurrent Objects}}, url = {http://www.di.unito.it/~padovani/Software/CobaltBlue/index.html}, ) @article(Padovani18, author = {Luca Padovani}, year = {2018}, title = {{Deadlock-Free Typestate-Oriented Programming}}, journal = {Programming Journal}, volume = {2}, pages = {article 15}, doi = {10.22152/programming-journal.org/2018/2/15}, ) @misc(EasyJoin, author = {Luca Padovani}, year = {2019}, title = {EasyJoin -- Concurrent TypeState-Oriented Programming in Java (Version 1.0)}, doi = {10.5281/zenodo.2586829}, ) @inproceedings(PlociniczakEisenbach2010, author = {Hubert Plociniczak and Susan Eisenbach}, year = {2010}, title = {JErlang: Erlang with Joins}, booktitle = {Proceedings of COORDINATION'10}, volume = {LNCS 6116}, publisher = {Springer}, pages = {61--75}, doi = {10.1007/978-3-642-13414-2_5}, ) @inproceedings(Russo07, author = {Claudio V. Russo}, year = {2007}, title = {The Joins Concurrency Library}, booktitle = {Proceedings of PADL'07}, volume = {LNCS 4354}, publisher = {Springer}, pages = {260--274}, doi = {10.1007/978-3-540-69611-7_17}, ) @inproceedings(Russo08, author = {Claudio V. Russo}, year = {2008}, title = {Join Patterns for Visual Basic}, booktitle = {Proceedings of OOPSLA'08}, publisher = {{ACM}}, pages = {53--72}, doi = {10.1145/1449764.1449770}, ) @inproceedings(SiekTaha07, author = {Jeremy G. Siek and Walid Taha}, year = {2007}, title = {Gradual Typing for Objects}, booktitle = {Proceedings of ECOOP'07}, series = {LNCS 4609}, publisher = {Springer}, pages = {2--27}, doi = {10.1007/978-3-540-73589-2\_2}, ) @inproceedings(SulzmannLamVanWeert08, author = {Martin Sulzmann and Edmund S. L. Lam and Peter Van Weert}, year = {2008}, title = {Actors with Multi-headed Message Receive Patterns}, booktitle = {Proceedings of COORDINATION'08}, series = {LNCS 5052}, publisher = {Springer}, pages = {315--330}, doi = {10.1007/978-3-540-68265-3\_20}, ) @inproceedings(SunshineEtAl11A, author = {Joshua Sunshine and Karl Naden and Sven Stork and Jonathan Aldrich and {\'{E}}ric Tanter}, year = {2011}, title = {First-class state change in plaid}, editor = {Cristina Videira Lopes and Kathleen Fisher}, booktitle = {Proceedings of OOPSLA'11}, publisher = {{ACM}}, pages = {713--732}, doi = {10.1145/2048066.2048122}, ) @inproceedings(SunshineEtAl11B, author = {Joshua Sunshine and Sven Stork and Karl Naden and Jonathan Aldrich}, year = {2011}, title = {Changing state in the plaid language}, editor = {Cristina Videira Lopes and Kathleen Fisher}, booktitle = {Companion to OOPSLA'11}, publisher = {{ACM}}, pages = {37--38}, doi = {10.1145/2048147.2048166}, ) @inproceedings(TuronRusso11, author = {Aaron Joseph Turon and Claudio V. Russo}, year = {2011}, title = {Scalable join patterns}, booktitle = {Proceedings of OOPSLA'93}, publisher = {{ACM}}, pages = {575--594}, doi = {10.1145/2048066.2048111}, ) @inproceedings(WolffGarciaTanterAldrich11, author = {Roger Wolff and Ronald Garcia and {\'{E}}ric Tanter and Jonathan Aldrich}, year = {2011}, title = {Gradual Typestate}, booktitle = {Proceedings of ECOOP'11}, series = {LNCS 6813}, publisher = {Springer}, pages = {459--483}, doi = {10.1007/978-3-642-22655-7\_22}, )