# Daniel's master's thesis (initial implementation of handlers in Links) @MastersThesis{Hillerstrom15, author = {Daniel Hillerström}, title = {Handlers for Algebraic Effects in {Links}}, school = {School of Informatics, The University of Edinburgh}, address = {Scotland}, month = aug, year = 2015 } # Daniel's master's thesis (abstract message-passing concurrency model, compilation of handlers) @MastersThesis{Hillerstrom16, author = {Daniel Hillerström}, title = {Compilation of Effect Handlers and their Applications in Concurrency}, school = {School of Informatics, The University of Edinburgh}, address = {Scotland}, optmonth = aug, year = 2016, } # OCaml handlers @misc{DolanWSYM15, title = {Effective Concurrency through Algebraic Effects}, author = {Stephen Dolan and Leo White and {KC} Sivaramakrishnan and Jeremy Yallop and Anil Madhavapeddy}, year = 2015, howpublished = {OCaml Workshop} } @misc{DolanWM14, title = {Multicore {OCaml}}, author = {Stephen Dolan and Leo White and Anil Madhavapeddy}, year = {2014}, howpublished = {OCaml Workshop} } @inproceedings{DolanEHMSW17, author = {Stephen Dolan and Spiros Eliopoulos and Daniel Hillerstr{\"{o}}m and Anil Madhavapeddy and K. C. Sivaramakrishnan and Leo White}, title = {Concurrent System Programming with Effect Handlers}, booktitle = {{TFP}}, series = {Lecture Notes in Computer Science}, volume = {10788}, pages = {98--117}, publisher = {Springer}, year = {2017} } # Efficient one-shot continuations @inproceedings{BruggemanWD96, author = {Carl Bruggeman and Oscar Waddell and R. Kent Dybvig}, editor = {Charles N. Fischer}, title = {Representing Control in the Presence of One-Shot Continuations}, booktitle = {Proceedings of the {ACM} SIGPLAN'96 Conference on Programming Language Design and Implementation (PLDI), Philadephia, Pennsylvania, May 21-24, 1996}, pages = {99--107}, publisher = {{ACM}}, year = {1996}, OPTurl = {http://doi.acm.org/10.1145/231379.231395}, OPTdoi = {10.1145/231379.231395}, timestamp = {Mon, 21 May 2012 16:19:53 +0200}, biburl = {http://dblp.uni-trier.de/rec/bib/conf/pldi/BruggemanWD96}, bibsource = {dblp computer science bibliography, http://dblp.org} } # Programming with continuations @InProceedings{FriedmanHK84, author = {Daniel P. Friedman and Christopher T Haynes and Eugene Kohlbecker}, editor = {Peter Pepper}, title = {Programming with Continuations}, booktitle = {Program Transformation and Programming Environments}, year = 1984, publisher = {Springer Berlin Heidelberg}, address = {Berlin, Heidelberg}, pages = {263--274}, isbn = {978-3-642-46490-4} } # Links compiler + Multicore OCaml @Misc{HillerstromLS16, author = {Daniel Hillerström and Sam Lindley and {KC} Sivaramakrishnan}, title = {Compiling {Links} Effect Handlers to the {OCaml} Backend}, year = {2016}, optmonth = sep, howpublished = {{ML Workshop}} } # Core references on handlers @phdthesis{Pretnar10, author = {Matija Pretnar}, title = {Logic and handling of algebraic effects}, school = {The University of Edinburgh, {UK}}, year = {2010} } @inproceedings{PlotkinP09, author = {Gordon D. Plotkin and Matija Pretnar}, title = {Handlers of Algebraic Effects}, booktitle = {{ESOP}}, series = {Lecture Notes in Computer Science}, volume = {5502}, pages = {80--94}, publisher = {Springer}, year = {2009} } @article{PlotkinP13, author = {Gordon D. Plotkin and Matija Pretnar}, title = {Handling Algebraic Effects}, journal = {Logical Methods in Computer Science}, volume = {9}, number = {4}, year = {2013}, OPTurl = {http://dx.doi.org/10.2168/LMCS-9(4:23)2013}, OPTdoi = {10.2168/LMCS-9(4:23)2013}, timestamp = {Thu, 31 Aug 4448958 16:06:56 +}, biburl = {http://dblp.uni-trier.de/rec/bib/journals/corr/PlotkinP13}, bibsource = {dblp computer science bibliography, http://dblp.org} } @article{PlotkinP03, author = {Gordon D. Plotkin and John Power}, title = {Algebraic Operations and Generic Effects}, journal = {Applied Categorical Structures}, volume = {11}, number = {1}, pages = {69--94}, year = {2003}, OPTurl = {http://dx.doi.org/10.1023/A:1023064908962}, OPTdoi = {10.1023/A:1023064908962}, timestamp = {Mon, 29 May 2006 12:06:44 +0200}, biburl = {http://dblp.uni-trier.de/rec/bib/journals/acs/PlotkinP03}, bibsource = {dblp computer science bibliography, http://dblp.org} } @inproceedings{PlotkinP01, author = {Gordon D. Plotkin and John Power}, title = {Adequacy for Algebraic Effects}, booktitle = {FoSSaCS}, OPTseries = {Lecture Notes in Computer Science}, series = {LNCS}, volume = {2030}, pages = {1--24}, publisher = {Springer}, year = {2001} } # Other algebraic effects and handlers @InProceedings{Lindley14, author = {Sam Lindley}, editor = {Jos{\'{e}} Pedro Magalh{\~{a}}es and Tiark Rompf}, title = {Algebraic effects and effect handlers for idioms and arrows}, booktitle = {Proceedings of the 10th {ACM} {SIGPLAN} workshop on Generic programming, {WGP} 2014, Gothenburg, Sweden, August 31, 2014}, pages = {47--58}, publisher = {{ACM}}, year = {2014}, OPTurl = {http://doi.acm.org/10.1145/2633628.2633636}, OPTdoi = {10.1145/2633628.2633636}, timestamp = {Thu, 25 Jun 2015 13:50:37 +0200}, biburl = {http://dblp.uni-trier.de/rec/bib/conf/icfp/Lindley14}, bibsource = {dblp computer science bibliography, http://dblp.org} } @article{Pretnar15, author = {Matija Pretnar}, title = {An Introduction to Algebraic Effects and Handlers}, journal = {Electr. Notes Theor. Comput. Sci.}, volume = {319}, pages = {19--35}, year = {2015}, note = {Invited tutorial paper} } @article{KammarP17, author = {Ohad Kammar and Matija Pretnar}, title = {No value restriction is needed for algebraic effects and handlers}, journal = {J. Funct. Program.}, volume = {27}, pages = {e7}, year = {2017} } @article{ForsterKLP17, author = {Yannick Forster and Ohad Kammar and Sam Lindley and Matija Pretnar}, title = {On the Expressive Power of User-Defined Effects: Effect Handlers, Monadic Reflection, Delimited Control}, journal = {{PACMPL}}, volume = {1}, number = {ICFP}, articleno = {13}, numpages = {29}, month = sep, year = {2017} } @article{ForsterKLP19, author = {Yannick Forster and Ohad Kammar and Sam Lindley and Matija Pretnar}, title = {On the expressive power of user-defined effects: Effect handlers, monadic reflection, delimited control}, journal = {J. Funct. Program.}, volume = {29}, pages = {e15}, year = {2019} } @article{HillerstromLL20, author = {Daniel Hillerstr{\"{o}}m and Sam Lindley and John Longley}, title = {Effects for Efficiency: Asymptotic Speedup with First-Class Control}, journal = {Proc. {ACM} Program. Lang.}, volume = {4}, number = {{ICFP}}, pages = {100:1--100:29}, year = {2020} } @phdthesis{McLaughlin20, author = {Craig McLaughlin}, title = {Relational Reasoning for Effects and Handlers}, school = {The University of Edinburgh, {UK}}, year = {2020} } @phdthesis{Ahman17, author = {Danel Ahman}, title = {Fibred Computational Effects}, school = {The University of Edinburgh, {UK}}, year = {2017} } @phdthesis{Fowler19, author = {Simon Fowler}, title = {Typed concurrent functional programming with channels, actors and sessions}, school = {The University of Edinburgh, {UK}}, year = {2019} } @phdthesis{Kammar14, author = {Ohad Kammar}, title = {Algebraic theory of type-and-effect systems}, school = {The University of Edinburgh, {UK}}, year = {2014} } @inproceedings{KammarP12, author = {Ohad Kammar and Gordon D. Plotkin}, title = {Algebraic foundations for effect-dependent optimisations}, booktitle = {{POPL}}, pages = {349--360}, publisher = {{ACM}}, year = {2012} } @article{LuksicP20, author = {Ziga Luksic and Matija Pretnar}, title = {Local algebraic effect theories}, journal = {J. Funct. Program.}, volume = {30}, pages = {e13}, year = {2020} } @phdthesis{Brachthauser20, author = {Jonathan Immanuel Brachth{\"{a}}user}, title = {Design and Implementation of Effect Handlers for Object-Oriented Programming Languages}, school = {University of T{\"{u}}bingen, Germany}, year = {2020} } @article{XieBHSL20, author = {Ningning Xie and Jonathan Immanuel Brachth{\"{a}}user and Daniel Hillerstr{\"{o}}m and Philipp Schuster and Daan Leijen}, title = {Effect handlers, evidently}, journal = {Proc. {ACM} Program. Lang.}, volume = {4}, number = {{ICFP}}, pages = {99:1--99:29}, year = {2020} } # Effekt @article{BrachthauserSO18, author = {Jonathan Immanuel Brachth{\"{a}}user and Philipp Schuster and Klaus Ostermann}, title = {Effect handlers for the masses}, journal = {Proc. {ACM} Program. Lang.}, volume = {2}, number = {{OOPSLA}}, pages = {111:1--111:27}, year = {2018} } @inproceedings{BrachthauserS17, author = {Jonathan Immanuel Brachth{\"{a}}user and Philipp Schuster}, title = {Effekt: extensible algebraic effects in Scala (short paper)}, booktitle = {SCALA@SPLASH}, pages = {67--72}, publisher = {{ACM}}, year = {2017} } @article{SchusterBO20, author = {Philipp Schuster and Jonathan Immanuel Brachth{\"{a}}user and Klaus Ostermann}, title = {Compiling effect handlers in capability-passing style}, journal = {Proc. {ACM} Program. Lang.}, volume = {4}, number = {{ICFP}}, pages = {93:1--93:28}, year = {2020} } # Eff @article{BauerP15, author = {Andrej Bauer and Matija Pretnar}, title = {Programming with algebraic effects and handlers}, journal = {J. Log. Algebr. Meth. Program.}, volume = {84}, number = {1}, pages = {108--123}, year = {2015} } @article{BauerP13, author = {Andrej Bauer and Matija Pretnar}, title = {An Effect System for Algebraic Effects and Handlers}, journal = {Log. Methods Comput. Sci.}, volume = {10}, number = {4}, year = {2014} } @article{Pretnar13, author = {Matija Pretnar}, title = {Inferring Algebraic Effects}, journal = {Log. Methods Comput. Sci.}, volume = {10}, number = {3}, year = {2014} } # Co-handlers @inproceedings{AhmanB20, author = {Danel Ahman and Andrej Bauer}, title = {Runners in Action}, booktitle = {{ESOP}}, series = {Lecture Notes in Computer Science}, volume = {12075}, pages = {29--55}, publisher = {Springer}, year = {2020} } # Idris @inproceedings{Brady13, author = {Edwin Brady}, title = {Programming and reasoning with algebraic effects and dependent types}, booktitle = {{ICFP}}, pages = {133--144}, publisher = {{ACM}}, year = {2013} } @inproceedings{Brady14, author = {Edwin Brady}, title = {Resource-Dependent Algebraic Effects}, booktitle = {Trends in Functional Programming}, OPTseries = {Lecture Notes in Computer Science}, series = {LNCS}, volume = {8843}, pages = {18--33}, publisher = {Springer}, year = {2014} } # Leo's HOPE talk @misc{White16, author = {Leo White}, title = {Effective programming: bringing algebraic effects and handlers to {OCaml}}, year = 2016, optmonth = sep, howpublished = {Keynote at {HOPE}, Nara, Japan} } # Implementation of effect handlers in Links @inproceedings{HillerstromL16, author = {Daniel Hillerstr{\"{o}}m and Sam Lindley}, title = {Liberating effects with rows and handlers}, booktitle = {TyDe@ICFP}, pages = {15--27}, publisher = {{ACM}}, year = {2016} } # Frank @inproceedings{LindleyMM17, author = {Sam Lindley and Conor McBride and Craig McLaughlin}, title = {Do be do be do}, booktitle = {{POPL}}, pages = {500--514}, publisher = {{ACM}}, year = {2017} } # Shonky @misc{McBride16, title={Shonky}, author={Conor McBride}, year=2016, note={\url{https://github.com/pigworker/shonky}} } # Koka @inproceedings{Leijen14, author = {Daan Leijen}, title = {{Koka}: Programming with Row Polymorphic Effect Types}, booktitle = {{MSFP}}, series = {{EPTCS}}, volume = {153}, pages = {100--126}, year = {2014} } @inproceedings{Leijen17, author = {Daan Leijen}, title = {Type directed compilation of row-typed algebraic effects}, booktitle = {{POPL}}, pages = {486--499}, publisher = {{ACM}}, year = {2017} } # Haskell implementations @inproceedings{KiselyovSS13, author = {Oleg Kiselyov and Amr Sabry and Cameron Swords}, title = {Extensible effects: an alternative to monad transformers}, booktitle = {Haskell}, pages = {59--70}, publisher = {{ACM}}, year = {2013} } @inproceedings{KiselyovI15, author = {Oleg Kiselyov and Hiromi Ishii}, title = {Freer monads, more extensible effects}, booktitle = {Haskell}, pages = {94--105}, publisher = {{ACM}}, year = {2015} } @inproceedings{KammarLO13, author = {Ohad Kammar and Sam Lindley and Nicolas Oury}, title = {Handlers in action}, booktitle = {{ICFP}}, pages = {145--158}, publisher = {{ACM}}, year = {2013} } @inproceedings{WuSH14, author = {Nicolas Wu and Tom Schrijvers and Ralf Hinze}, editor = {Wouter Swierstra}, title = {Effect handlers in scope}, booktitle = {Proceedings of the 2014 {ACM} {SIGPLAN} symposium on Haskell, Gothenburg, Sweden, September 4-5, 2014}, pages = {1--12}, publisher = {{ACM}}, year = {2014}, url = {http://doi.acm.org/10.1145/2633357.2633358}, doi = {10.1145/2633357.2633358}, timestamp = {Mon, 08 Sep 2014 16:12:17 +0200}, biburl = {http://dblp.uni-trier.de/rec/bib/conf/haskell/WuSH14}, bibsource = {dblp computer science bibliography, http://dblp.org} } @inproceedings{WuS15, author = {Nicolas Wu and Tom Schrijvers}, title = {Fusion for Free - Efficient Algebraic Effect Handlers}, booktitle = {{MPC}}, series = {Lecture Notes in Computer Science}, volume = {9129}, pages = {302--322}, publisher = {Springer}, year = {2015} } # Prolog @article{SchrijversDDW13, author = {Tom Schrijvers and Bart Demoen and Benoit Desouter and Jan Wielemaker}, title = {Delimited continuations for {Prolog}}, journal = {{TPLP}}, volume = {13}, number = {4-5}, pages = {533--546}, year = {2013} } @article{SalehS16, author = {Amr Hany Saleh and Tom Schrijvers}, title = {Efficient Algebraic Effect Handlers for {Prolog}}, journal = {{TPLP}}, year = {2016}, note = {Proceedings of {ICLP}} } # References on Links @inproceedings{CooperLWY06, author = {Ezra Cooper and Sam Lindley and Philip Wadler and Jeremy Yallop}, title = {Links: Web Programming Without Tiers}, booktitle = {{FMCO}}, OPTseries = {Lecture Notes in Computer Science}, series = {LNCS}, volume = {4709}, pages = {266--296}, publisher = {Springer}, year = {2006} } @inproceedings{LindleyC12, author = {Sam Lindley and James Cheney}, title = {Row-based effect types for database integration}, booktitle = {{TLDI}}, pages = {91--102}, publisher = {{ACM}}, year = {2012} } # Monads @article{Atkey09, author = {Robert Atkey}, title = {Parameterised notions of computation}, journal = {Journal of Functional Programming}, volume = {19}, number = {3-4}, pages = {335--376}, year = {2009} } @inproceedings{Moggi89, author = {Eugenio Moggi}, title = {Computational Lambda-Calculus and Monads}, booktitle = {{LICS}}, pages = {14--23}, publisher = {{IEEE} Computer Society}, year = {1989} } @article{Moggi91, author = {Eugenio Moggi}, title = {Notions of Computation and Monads}, journal = {Inf. Comput.}, volume = {93}, number = {1}, pages = {55--92}, year = {1991} } @inproceedings{Wadler92, author = {Philip Wadler}, title = {The Essence of Functional Programming}, booktitle = {{POPL}}, pages = {1--14}, publisher = {{ACM}}, year = {1992} } @inproceedings{Wadler95, author = {Philip Wadler}, title = {Monads for Functional Programming}, booktitle = {Advanced Functional Programming}, OPTseries = {Lecture Notes in Computer Science}, series = {LNCS}, volume = {925}, pages = {24--52}, publisher = {Springer}, year = {1995} } @article{Swierstra08, author = {Wouter Swierstra}, title = {Data types {\`{a}} la carte}, journal = {Journal of Functional Programming}, volume = {18}, number = {4}, pages = {423--436}, year = {2008} } # Hop.js @inproceedings{SerranoP16, author = {Manuel Serrano and Vincent Prunet}, title = {A glimpse of Hopjs}, booktitle = {{ICFP}}, pages = {180--192}, publisher = {{ACM}}, year = {2016} } # A-normal form @inproceedings{FlanaganSDF93, author = {Cormac Flanagan and Amr Sabry and Bruce F. Duba and Matthias Felleisen}, title = {The Essence of Compiling with Continuations}, booktitle = {{PLDI}}, pages = {237--247}, publisher = {{ACM}}, year = {1993} } @inproceedings{SabryW96, author = {Amr Sabry and Philip Wadler}, editor = {Robert Harper and Richard L. Wexelblat}, title = {A Reflection on Call-by-Value}, booktitle = {Proceedings of the 1996 {ACM} {SIGPLAN} International Conference on Functional Programming {(ICFP} '96), Philadelphia, Pennsylvania, May 24-26, 1996.}, pages = {13--24}, publisher = {{ACM}}, year = {1996}, OPTurl = {http://doi.acm.org/10.1145/232627.232631}, OPTdoi = {10.1145/232627.232631}, timestamp = {Tue, 11 Jun 2013 13:54:16 +0200}, biburl = {http://dblp.uni-trier.de/rec/bib/conf/icfp/SabryW96}, bibsource = {dblp computer science bibliography, http://dblp.org} } # fine-grained call-by-value @article{LevyPT03, author = {Paul Blain Levy and John Power and Hayo Thielecke}, title = {Modelling environments in call-by-value programming languages}, journal = {Inf. Comput.}, volume = {185}, number = {2}, pages = {182--210}, year = {2003} } # CPS @article{Plotkin75, author = {Gordon D. Plotkin}, title = {Call-by-Name, Call-by-Value and the lambda-Calculus}, journal = {Theor. Comput. Sci.}, volume = {1}, number = {2}, pages = {125--159}, year = {1975} } @techreport{Steele78, title = {{RABBIT}: A Compiler for {SCHEME}}, author = {Guy Steele}, number = {AITR-474}, institution = {{INRIA}}, year = {1978}, } @inproceedings{DanvyF90, author = {Olivier Danvy and Andrzej Filinski}, title = {Abstracting Control}, booktitle = {{LISP} and Functional Programming}, pages = {151--160}, year = {1990} } @article{DanvyF92, author = {Olivier Danvy and Andrzej Filinski}, title = {Representing Control: {A} Study of the {CPS} Transformation}, journal = {Mathematical Structures in Computer Science}, volume = {2}, number = {4}, pages = {361--391}, year = {1992} } @phdthesis{Danvy06, author = {Olivier Danvy}, school = {Aarhus University}, title = {An Analytical Approach to Programs as Data Objects}, type = {{DSc} thesis}, year = 2006, address = {Aarhus, Denmark} } @book{Appel92, author = {Andrew W. Appel}, title = {Compiling with Continuations}, publisher = {Cambridge University Press}, year = {1992} } @article{DanvyN03, author = {Olivier Danvy and Lasse R. Nielsen}, title = {A first-order one-pass {CPS} transformation}, journal = {Theor. Comput. Sci.}, volume = {308}, number = {1-3}, pages = {239--257}, year = {2003} } @inproceedings{Kennedy07, author = {Andrew Kennedy}, title = {Compiling with continuations, continued}, booktitle = {{ICFP}}, pages = {177--190}, publisher = {{ACM}}, year = {2007} } @inproceedings{MaterzokB11, author = {Marek Materzok and Dariusz Biernacki}, title = {Subtyping delimited continuations}, booktitle = {{ICFP}}, pages = {81--93}, publisher = {{ACM}}, year = {2011} } @inproceedings{MaterzokB12, author = {Marek Materzok and Dariusz Biernacki}, title = {A Dynamic Interpretation of the {CPS} Hierarchy}, booktitle = {{APLAS}}, OPTseries = {Lecture Notes in Computer Science}, series = {LNCS}, volume = {7705}, pages = {296--311}, publisher = {Springer}, year = {2012} } @Misc{KiselyovS16, author = {Oleg Kiselyov and {KC} Sivaramakrishnan}, title = {Eff directly in {OCaml}}, year = {2016}, optmonth = sep, howpublished = {{ML Workshop}} } # Delimited Control @inproceedings{KiselyovSS06, author = {Oleg Kiselyov and Chung{-}chieh Shan and Amr Sabry}, title = {Delimited dynamic binding}, booktitle = {{ICFP}}, pages = {26--37}, publisher = {{ACM}}, year = {2006} } # fancy row typing systems that support shapes @inproceedings{BerthomieuS95, author = {Bernard Berthomieu and Camille le Moniès de Sagazan}, title = {A Calculus of Tagged Types, with applications to process languages}, booktitle = {Workshop on Types for Program Analysis}, year = 1995, } @techreport{Remy93, title = {{Syntactic theories and the algebra of record terms}}, author = {Didier Remy}, number = {RR-1869}, institution = {{INRIA}}, year = {1993}, } # Zipper data structure. @article{Huet97, author = {G{\'{e}}rard P. Huet}, title = {The Zipper}, journal = {J. Funct. Program.}, volume = {7}, number = {5}, pages = {549--554}, year = {1997}, OPTurl = {http://journals.cambridge.org/action/displayAbstract?aid=44121}, timestamp = {Fri, 10 Jun 2011 14:42:10 +0200}, biburl = {http://dblp.uni-trier.de/rec/bib/journals/jfp/Huet97}, bibsource = {dblp computer science bibliography, http://dblp.org} } @article{Hughes00, author = {John Hughes}, title = {Generalising monads to arrows}, journal = {Sci. Comput. Program.}, volume = {37}, number = {1-3}, pages = {67--111}, year = {2000} } # CPS for effect handlers @inproceedings{HillerstromLAS17, author = {Daniel Hillerstr{\"{o}}m and Sam Lindley and Robert Atkey and {KC} Sivaramakrishnan}, title = {Continuation Passing Style for Effect Handlers}, booktitle = {{FSCD}}, series = {LIPIcs}, volume = {84}, pages = {18:1--18:19}, OPTpublisher = {Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik}, year = {2017} } @inproceedings{HillerstromL18, author = {Daniel Hillerstr{\"{o}}m and Sam Lindley}, title = {Shallow Effect Handlers}, booktitle = {{APLAS}}, series = {Lecture Notes in Computer Science}, volume = {11275}, pages = {415--435}, publisher = {Springer}, year = {2018} } @article{HillerstromLA20, author = {Daniel Hillerstr{\"{o}}m and Sam Lindley and Robert Atkey}, title = {Effect handlers via generalised continuations}, journal = {J. Funct. Program.}, volume = {30}, pages = {e5}, year = {2020} } # CEK @InProceedings{FelleisenF86, title={Control Operators, the {SECD}-machine, and the $\lambda$-Calculus}, author={Felleisen, Matthias and Friedman, Daniel P.}, year=1987, booktitle = {Formal Description of Programming Concepts III}, OPTbooktitle = {The Proceedings of the Conference on Formal Description of Programming Concepts III, Ebberup, Denmark}, pages = {193--217}, OPTpublisher={North Holland} } @article{BiernackiPPS18, author = {Dariusz Biernacki and Maciej Pir{\'{o}}g and Piotr Polesiuk and Filip Sieczkowski}, title = {Handle with care: relational interpretation of algebraic effects and handlers}, journal = {{PACMPL}}, volume = {2}, number = {{POPL}}, pages = {8:1--8:30}, year = {2018} } # explicit effect subtyping @inproceedings{SalehKPS18, author = {Amr Hany Saleh and Georgios Karachalias and Matija Pretnar and Tom Schrijvers}, title = {Explicit Effect Subtyping}, booktitle = {{ESOP}}, series = {Lecture Notes in Computer Science}, volume = {10801}, pages = {327--354}, publisher = {Springer}, year = {2018} } @article{KarachaliasPSVS20, author = {Georgios Karachalias and Matija Pretnar and Amr Hany Saleh and Stien Vanderhallen and Tom Schrijvers}, title = {Explicit effect subtyping}, journal = {J. Funct. Program.}, volume = {30}, pages = {e15}, year = {2020} } # Pyro @Misc{Goodman17, author = {Noah Goodman}, title = {Uber {AI} {Labs} Open Sources {Pyro}, a Deep Probabilistic Programming Language}, month = nov, year = 2017, url = {https://eng.uber.com/pyro/} } # Meta programming @article{Yallop17, author = {Jeremy Yallop}, title = {Staged generic programming}, journal = {{PACMPL}}, volume = {1}, number = {{ICFP}}, pages = {29:1--29:29}, year = {2017} } # SML @book{MilnerTHM97, author = {Robin Milner and Mads Tofte and Robert Harper and David Macqueen}, title = {The Definition of {Standard} {ML}}, year = {1997}, isbn = {0262631814}, publisher = {MIT Press}, address = {Cambridge, MA, USA}, } # OCaml @book{LeroyDFGRV20, author = {Xavier Leroy and Damien Doligez and Alain Frisch and Jacques Garrigue and Didier Rémy and Jérôme Vouillon}, title = {The {OCaml} System Release 4.11: Documentation and user's manual}, year = 2020, month = aug, publisher = {Institut National de Recherche en Informatique et en Automatique} } # Lisp @article{McCarthy60, author = {John McCarthy}, title = {Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part {I}}, journal = {Commun. {ACM}}, volume = {3}, number = {4}, pages = {184--195}, year = {1960} } # Elisp @book{LewisLSG20, author = {Bil Lewis and Dan {LaLiberte} and Richard Stallman and {the GNU Manual Group} and {et al.}}, title = {{GNU} {Emacs} {Lisp} Reference Manual}, year = 2020, note = {For {Emacs} version 27.1}, publisher = {Free Software Foundation}, address = {Boston, MA, USA}, isbn = {1882114744} } # Scheme @techreport{SussmanS75, author = {Gerald Jay Sussman and Guy Lewis Steele Jr.}, institution = {{MIT}}, month = {December}, number = {AI Memo No. 349}, title = {Scheme: An Interpreter for Extended Lambda Calculus}, OPTuri = {ftp://publications.ai.mit.edu/ai-publications/pdf/AIM-349.pdf}, year = 1975 } @book{SperberDFSFM10, author = {Michael Sperber and R. Kent Dybvig and Matthew Flatt and Anton van Straaten and Robert Bruce Findler and Jacob Matthews}, title = {Revised6 Report on the Algorithmic Language Scheme}, publisher = {Cambridge University Press}, year = {2010} } # Haskell @misc{JonesABBBFHHHHJJLMPRRW99, author = {Simon Peyton Jones and Lennart Augustsson and Dave Barton and Brian Boutel and Warren Burton and Joseph Fasel and Kevin Hammond and Ralf Hinze and Paul Hudak and John Hughes and Thomas Johnsson and Mark Jones and John Launchbury and Erik Meijer and John Peterson and Alastair Reid and Colin Runciman and Philip Wadler}, title = {Haskell 98: A non-strict, purely functional language}, OPTurl = {https://www.haskell.org/definition/}, year = {1999} } @book{Haskell98, editor = {Jones, Simon Peyton}, month = sep, pages = 277, publisher = {http://haskell.org/}, title = {{Haskell} 98 Language and Libraries: The Revised Report}, type = {Language Definition}, OPTurl = {http://haskell.org/definition/haskell98-report.pdf}, year = 2002 } @book{Haskell10, editor = {Simon Marlow}, title = {Haskell 2010 Language Report}, year = 2010 } # Structural Operational Semantics @article{Plotkin04a, author = {Gordon D. Plotkin}, title = {A structural approach to operational semantics}, journal = {J. Log. Algebr. Program.}, volume = {60-61}, pages = {17--139}, year = {2004}, timestamp = {Mon, 21 Feb 2005 12:50:35 +0100}, biburl = {https://dblp.org/rec/bib/journals/jlp/Plotkin04a}, bibsource = {dblp computer science bibliography, https://dblp.org} } # Regular expressions @incollection{Kleene56, author = {Stephen Cole Kleene}, title = {Representation of events in nerve nets and finite automata}, booktitle = {Automata Studies}, editor = {Shannon, Claude and McCarthy, John}, pages = {3--41}, year = 1956, publisher = {Princeton University Press}, address = {Princeton, NJ, USA} } # Felleisen's PhD thesis (evaluation contexts) @phdthesis{Felleisen87, author = {Matthias Felleisen}, title = {The Calculi of Lambda-nu-cs Conversion: A Syntactic Theory of Control and State in Imperative Higher-order Programming Languages}, year = {1987}, note = {AAI8727494}, publisher = {Indiana University}, address = {Indianapolis, IN, USA}, } # The original lambda calculus reference @InProceedings{Church32, author = {Alonzo Church}, title = {A Set of Postulates for the Foundation of Logic}, year = {1932}, booktitle = {Annals of Mathematics}, pages = {346--366}, volume = {33} } # Termination analysis. @article{Walther94, author = {Christoph Walther}, title = {On Proving the Termination of Algorithms by Machine}, journal = {Artif. Intell.}, volume = {71}, number = {1}, pages = {101--157}, year = {1994} } # Control operators @article{Landin65, author = {Peter J. Landin}, title = {Correspondence between {ALGOL} 60 and Church's Lambda-notation: part {I}}, journal = {Commun. {ACM}}, volume = {8}, number = {2}, pages = {89--101}, year = {1965} } @article{Landin65a, author = {Peter J. Landin}, title = {A correspondence between {ALGOL} 60 and Church's Lambda-notations: Part {II}}, journal = {Commun. {ACM}}, volume = {8}, number = {3}, pages = {158--167}, year = {1965} } @article{Landin98, author = {Peter J. Landin}, title = {A Generalization of Jumps and Labels}, journal = {Higher-Order and Symbolic Computation}, volume = {11}, number = {2}, pages = {125--143}, year = {1998} } # System F @phdthesis{Girard72, author = {J. Y. Girard}, school = {Universit{\'e} Paris 7}, title = {Interpr{\'e}tation fonctionnelle et {\'e}limination des coupures de l'arithm{\'e}tique d'ordre sup{\'e}rieur}, year = 1972, address = {France} } @inproceedings{Reynolds74, author = {John C. Reynolds}, title = {Towards a theory of type structure}, booktitle = {Symposium on Programming}, series = {Lecture Notes in Computer Science}, volume = {19}, pages = {408--423}, publisher = {Springer}, year = {1974} } @inproceedings{Wadler89, author = {Philip Wadler}, title = {Theorems for Free!}, booktitle = {{FPCA}}, pages = {347--359}, publisher = {{ACM}}, year = {1989} } # Tail calls @inproceedings{Clinger98, author = {William D. Clinger}, title = {Proper Tail Recursion and Space Efficiency}, booktitle = {{PLDI}}, pages = {174--185}, publisher = {{ACM}}, year = {1998} } # Unix @article{RitchieT74, author = {Dennis Ritchie and Ken Thompson}, title = {The {UNIX} Time-Sharing System}, journal = {Commun. {ACM}}, volume = {17}, number = {7}, pages = {365--375}, year = {1974} } @book{Raymond03, author = {Eric Steven Raymond}, title = {The Art of {UNIX} Programming}, year = {2003}, isbn = {0131429019}, publisher = {Pearson Education} } # GNU coreutils @book{MacKenzieMPPBYS20, author = {David MacKenzie and Jim Meyering and Ross Paterson and François Pinard and Karl Berry and Brian Youmans and Richard Stallman}, title = {{GNU} {Coreutils}}, note = {For version 8.32}, month = feb, year = 2020, publisher = {Free Software Foundation}, address = {Boston, MA, USA} } # Expressiveness @inproceedings{CartwrightF92, author = {Robert Cartwright and Matthias Felleisen}, title = {Observable Sequentiality and Full Abstraction}, booktitle = {{POPL}}, pages = {328--342}, publisher = {{ACM} Press}, year = {1992} } @book{LongleyN15, author = {John Longley and Dag Normann}, title = {Higher-Order Computability}, series = {Theory and Applications of Computability}, publisher = {Springer}, year = {2015} } @inproceedings{Longley08, author = {John Longley}, title = {Interpreting Localized Computational Effects Using Operators of Higher Type}, booktitle = {CiE}, series = {Lecture Notes in Computer Science}, volume = {5028}, pages = {389--402}, publisher = {Springer}, year = {2008} } @misc{LongleyW08, author = {John Longley and Nicholas Wolverson}, title = {Eriskay: a programming language based on game semantics}, month = apr, year = 2008, howpublished = {Presented at {GaLoP III}} } # Value restriction @article{Wright95, author = {Andrew K. Wright}, title = {Simple Imperative Polymorphism}, journal = {{LISP} Symb. Comput.}, volume = {8}, number = {4}, pages = {343--355}, year = {1995} } # Shakespeare's Hamlet @misc{Shakespeare6416, author = {William Shakespeare}, title = {The {Tragedy} of {Hamlet}, {Prince} of {Denmark}}, year = {1564-1616} }