My PhD dissertation at the University of Edinburgh, Scotland https://www.dhil.net/research/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

2511 lines
67 KiB

# 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, {UK}},
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, {UK}},
optmonth = aug,
year = 2016,
type = {{MSc(R)} thesis}
}
# 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}},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
volume = {10788},
pages = {98--117},
publisher = {Springer},
year = {2017}
}
# Segmented stacks
@inproceedings{HiebDB90,
author = {Robert Hieb and
R. Kent Dybvig and
Carl Bruggeman},
title = {Representing Control in the Presence of First-Class Continuations},
booktitle = {{PLDI}},
pages = {66--77},
publisher = {{ACM}},
year = {1990}
}
@inproceedings{BruggemanWD96,
author = {Carl Bruggeman and
Oscar Waddell and
R. Kent Dybvig},
title = {Representing Control in the Presence of One-Shot Continuations},
booktitle = {{PLDI}},
pages = {99--107},
publisher = {{ACM}},
year = {1996}
}
@article{KumarBD98,
author = {Sanjeev Kumar and
Carl Bruggeman and
R. Kent Dybvig},
title = {Threads Yield Continuations},
journal = {{LISP} Symb. Comput.},
volume = {10},
number = {3},
pages = {223--236},
year = {1998}
}
# 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, Scotland, {UK}},
year = {2010}
}
@inproceedings{PlotkinP09,
author = {Gordon D. Plotkin and
Matija Pretnar},
title = {Handlers of Algebraic Effects},
booktitle = {{ESOP}},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
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}
}
@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},
title = {Algebraic effects and effect handlers for idioms and arrows},
booktitle = {WGP@ICFP},
pages = {47--58},
publisher = {{ACM}},
year = {2014}
}
@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, Scotland, {UK}},
year = {2020}
}
@phdthesis{Ahman17,
author = {Danel Ahman},
title = {Fibred Computational Effects},
school = {The University of Edinburgh, Scotland, {UK}},
year = {2017}
}
@phdthesis{Fowler19,
author = {Simon Fowler},
title = {Typed concurrent functional programming with channels, actors and sessions},
school = {The University of Edinburgh, Scotland, {UK}},
year = {2019}
}
@phdthesis{Kammar14,
author = {Ohad Kammar},
title = {Algebraic theory of type-and-effect systems},
school = {The University of Edinburgh, Scotland, {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}
}
# Asynchronous effects
@article{AhmanP20,
author = {Danel Ahman and
Matija Pretnar},
title = {Asynchronous effects},
journal = {CoRR},
volume = {abs/2003.02110},
year = {2020}
}
@MastersThesis{Poulson20,
author = {Leo Poulson},
title = {Asynchronous Effect Handling},
school = {School of Informatics, The University of Edinburgh},
address = {Scotland, {UK}},
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}},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
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}
}
@article{ConventLMM20,
author = {Lukas Convent and
Sam Lindley and
Conor McBride and
Craig McLaughlin},
title = {Doo bee doo bee doo},
journal = {J. Funct. Program.},
volume = {30},
pages = {e9},
year = {2020}
}
@MastersThesis{Convent17,
author = {Lukas Convent},
title = {Enhancing a Modular Effectful Programming Language},
school = {School of Informatics, The University of Edinburgh},
address = {Scotland, {UK}},
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}},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
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}
}
@inproceedings{PauwelsSM19,
author = {Koen Pauwels and
Tom Schrijvers and
Shin{-}Cheng Mu},
title = {Handling Local State with Global State},
booktitle = {{MPC}},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
volume = {11825},
pages = {18--44},
publisher = {Springer},
year = {2019}
}
# 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} (A Study in Compiler Optimization)},
author = {Guy L. Steele},
institution = {{MIT}},
number = {TR-474},
year = {1978},
month = may,
address = {Cambridge, Massachusetts, USA}
}
@inproceedings{MeyerW85,
author = {Albert R. Meyer and
Mitchell Wand},
title = {Continuation Semantics in Typed Lambda-Calculi (Summary)},
booktitle = {Logic of Programs},
series = {Lecture Notes in Computer Science},
volume = {193},
pages = {219--224},
publisher = {Springer},
year = {1985}
}
@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}
}
@article{Fischer93,
author = {Michael J. Fischer},
title = {Lambda-Calculus Schemata},
journal = {{LISP} Symb. Comput.},
volume = {6},
number = {3-4},
pages = {259--288},
year = {1993},
note = {A preliminary version of this paper appeared in the
\emph{Proceedings of {ACM} Conference on Proving
Assertions about Programs}, January, 1972}
}
@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}}
}
# Dynamic binding
@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}},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
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}
}
# SECD machine
@article{Landin64,
author = {Peter J. Landin},
title = {The Mechanical Evaluation of Expressions},
journal = {The Computer Journal},
volume = {6},
number = {4},
pages = {308-320},
year = {1964},
month = {01},
issn = {0010-4620},
OPTdoi = {10.1093/comjnl/6.4.308},
OPTurl = {https://doi.org/10.1093/comjnl/6.4.308},
OPTeprint = {https://academic.oup.com/comjnl/article-pdf/6/4/308/1067901/6-4-308.pdf},
}
# CEK & C
@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}
}
@inproceedings{FelleisenFKD86,
author = {Matthias Felleisen and
Daniel P. Friedman and
Eugene E. Kohlbecker and
Bruce F. Duba},
title = {Reasoning with Continuations},
booktitle = {{LICS}},
pages = {131--141},
publisher = {{IEEE} Computer Society},
year = {1986}
}
@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}},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
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,
OPTpublisher = {Institut National de Recherche en Informatique et en Automatique},
publisher = {INRIA}
}
# 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 J. Sussman and Guy L. Steele},
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
@techreport{Plotkin81,
author = {Gordon D. Plotkin},
title = {A structural approach to operational semantics},
number = {FN-19},
school = {Department of Computer Science, Aarhus University},
address = {Aarhus, Denmark},
month = sep,
year = 1981
}
@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},
OPTtimestamp = {Mon, 21 Feb 2005 12:50:35 +0100},
OPTbiburl = {https://dblp.org/rec/bib/journals/jlp/Plotkin04a},
OPTbibsource = {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}
}
# Simulation of delimited control using undelimited control
@inproceedings{Filinski94,
author = {Andrzej Filinski},
title = {Representing Monads},
booktitle = {{POPL}},
pages = {446--457},
publisher = {{ACM} Press},
year = {1994}
}
# Landin's J operator
@article{Landin65,
author = {Peter J. Landin},
title = {Correspondence between {ALGOL} 60 and {C}hurch's {L}ambda-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 {C}hurch's {L}ambda-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},
note = {Reprint of {UNIVAC} Systems Programming Research report (August 1965)}
}
@article{Felleisen87b,
author = {Matthias Felleisen},
title = {Reflections on Landins's J-Operator: {A} Partly Historical Note},
journal = {Comput. Lang.},
volume = {12},
number = {3/4},
pages = {197--207},
year = {1987}
}
@article{Thielecke98,
author = {Hayo Thielecke},
title = {An Introduction to {Landin's} ``A Generalization of Jumps and Labels''},
journal = {High. Order Symb. Comput.},
volume = {11},
number = {2},
pages = {117--123},
year = {1998}
}
@article{DanvyM08,
author = {Olivier Danvy and
Kevin Millikin},
title = {A Rational Deconstruction of Landin's {SECD} Machine with the {J}
Operator},
journal = {Log. Methods Comput. Sci.},
volume = {4},
number = {4},
year = {2008}
}
# Cupto
@inproceedings{GunterRR95,
author = {Carl A. Gunter and
Didier R{\'{e}}my and
Jon G. Riecke},
title = {A Generalization of Exceptions and Control in ML-like Languages},
booktitle = {{FPCA}},
pages = {12--23},
publisher = {{ACM}},
year = {1995}
}
# Felleisen's F
@techreport{FelleisenFDM87,
author = {Matthias Felleisen
and Daniel P. Friedman
and Bruce Duba
and John Merrill},
title = {Beyond Continuations},
number = {216},
institution = {Computer Science Department, Indiana University},
address = {Bloomington, Indiana 47405, USA},
year = 1987,
month = feb
}
@inproceedings{Felleisen88,
author = {Matthias Felleisen},
title = {The Theory and Practice of First-Class Prompts},
booktitle = {{POPL}},
pages = {180--190},
publisher = {{ACM} Press},
year = {1988}
}
@inproceedings{FelleisenWFD88,
author = {Matthias Felleisen and
Mitchell Wand and
Daniel P. Friedman and
Bruce F. Duba},
title = {Abstract Continuations: {A} Mathematical Semantics for Handling Full
Jumps},
booktitle = {{LISP} and Functional Programming},
pages = {52--62},
publisher = {{ACM}},
year = {1988}
}
# Control and prompt
@article{SitaramF90,
author = {Dorai Sitaram and
Matthias Felleisen},
title = {Control Delimiters and Their Hierarchies},
journal = {{LISP} Symb. Comput.},
volume = {3},
number = {1},
pages = {67--99},
year = {1990}
}
# Escape
@article{Reynolds98a,
author = {John C. Reynolds},
title = {Definitional Interpreters for Higher-Order Programming Languages},
journal = {High. Order Symb. Comput.},
volume = {11},
number = {4},
pages = {363--397},
year = {1998},
note = {This paper originally appeared in the Proceedings of
the ACM National Conference, volume 2, August, 1972,
pages 717–740.}
}
# Shift/reset
@techreport{DanvyF89,
author = {Olivier Danvy and Andrzej Filinski},
title = {A Functional Abstraction of Typed Contexts},
number = {89/12},
institution = {DIKU, Computer Science Department, University of Copenhagen},
address = {Copenhagen, Denmark},
year = 1989,
month = jul
}
@article{BiernackiDS05,
author = {Dariusz Biernacki and
Olivier Danvy and
Chung{-}chieh Shan},
title = {On the dynamic extent of delimited continuations},
journal = {Inf. Process. Lett.},
volume = {96},
number = {1},
pages = {7--17},
year = {2005}
}
# Amb
@incollection{McCarthy63,
author = {John McCarthy},
title = {A Basis for a Mathematical Theory of Computation},
editor = {P. Braffort and D. Hirschberg},
series = {Studies in Logic and the Foundations of Mathematics},
publisher = {Elsevier},
volume = {35},
pages = {33--70},
year = {1963},
booktitle = {Computer Programming and Formal Systems},
OPTissn = "0049-237X",
OPTdoi = "https://doi.org/10.1016/S0049-237X(08)72018-4"
}
# Simula (coroutines)
@inproceedings{DahlMN68,
author = {Ole-Johan Dahl and Bj\o{}rn Myhrhaug and Kristen Nygaard},
title = {Some Features of the {SIMULA} 67 Language},
year = {1968},
publisher = {Winter Simulation Conference},
booktitle = {Proceedings of the Second Conference on Applications of Simulations},
pages = {29--31},
numpages = {3},
location = {New York, New York, USA}
}
@book{DahlDH72,
editor = {Ole-Johan Dahl and Edgar W. Dijkstra and C. A. R. Hoare},
title = {Structured Programming},
year = {1972},
isbn = {0122005503},
publisher = {Academic Press Ltd.},
address = {GBR}
}
# Second-hand reference for the inventor of coroutines
@book{Knuth97,
author = {Donald E. Knuth},
title = {The Art of Computer Programming, Volume 1 (3rd Ed.): Fundamental Algorithms},
year = {1997},
isbn = {0201896834},
publisher = {Addison Wesley Longman Publishing Co., Inc.},
address = {USA}
}
# Second-hand reference for call/cc
@techreport{AbelsonHAKBOBPCRFRHSHW85,
author = {William D. Clinger and others},
@Comment = {Hal Abelson
@Comment and Chris Haynes
@Comment and Norman Adams
@Comment and Eugene Kohlbecker
@Comment and David Bartley
@Comment and Don Oxley
@Comment and Gary Brooks
@Comment and Kent Pitman
@Comment and William Clinger
@Comment and Jonathan Rees
@Comment and Dan Friedman
@Comment and Bill Rozas
@Comment and Robert Halstead
@Comment and Gerald Jey Sussman
@Comment and Chris Hanson
@Comment and Mitchell Wand},
title = {The Revised Revised Report on {Scheme} or An {UnCommon} {Lisp}},
year = {1985},
institution = {MIT},
number = {AIM-848},
month = aug
}
# callcomp
@inproceedings{FlattYFF07,
author = {Matthew Flatt and
Gang Yu and
Robert Bruce Findler and
Matthias Felleisen},
title = {Adding delimited and composable control to a production programming
environment},
booktitle = {{ICFP}},
pages = {165--176},
publisher = {{ACM}},
year = {2007}
}
# Constraining call/cc
@inproceedings{FriedmanH85,
author = {Daniel P. Friedman and
Christopher T. Haynes},
title = {Constraining Control},
booktitle = {{POPL}},
pages = {245--254},
publisher = {{ACM} Press},
year = {1985}
}
@article{HaynesF87,
author = {Christopher T. Haynes and
Daniel P. Friedman},
title = {Embedding Continuations in Procedural Objects},
journal = {{ACM} Trans. Program. Lang. Syst.},
volume = {9},
number = {4},
pages = {582--598},
year = {1987}
}
# Splitter
@inproceedings{QueinnecS91,
author = {Christian Queinnec and
Bernard P. Serpette},
title = {A Dynamic Extent Control Operator for Partial Continuations},
booktitle = {{POPL}},
pages = {174--184},
publisher = {{ACM} Press},
year = {1991}
}
# Spawn
@article{HiebDA94,
author = {Robert Hieb and
R. Kent Dybvig and
Claude W. Anderson III},
title = {Subcontinuations},
journal = {{LISP} Symb. Comput.},
volume = {7},
number = {1},
pages = {83--110},
year = {1994}
}
# Comparison of (some) delimited control operators
@misc{Shan04,
author = {Chung{-}chieh Shan},
title = {Shift to Control},
howpublished = {{ACM SIGPLAN} Scheme Workshop},
year = {2004}
}
# MacLisp (catch)
@misc{Moon74,
author = {David A. Moon},
title = {{MACLISP} Reference Manual (Revision 0)},
year = 1974,
howpublished = {Project {MAC} -- {MIT}},
month = apr
}
# Common Lisp (resumable exceptions)
@book{Steele90,
author = {Guy L. Steele},
title = {Common {LISP}: The Language (2nd Ed.)},
year = {1990},
isbn = {1555580416},
publisher = {Digital Press},
address = {USA}
}
# System F
@phdthesis{Girard72,
author = {Jean-Yves 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},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
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 others},
@Comment = {David MacKenzie
@Comment and Jim Meyering
@Comment and Ross Paterson
@Comment and François Pinard
@Comment and Karl Berry
@Comment and Brian Youmans
@Comment and Richard Stallman},
title = {{GNU} {Coreutils}},
note = {For version 8.32},
month = feb,
year = 2020,
publisher = {Free Software Foundation},
OPTaddress = {Boston, MA, USA}
}
# Expressiveness
@inproceedings{Felleisen90,
author = {Matthias Felleisen},
title = {On the Expressive Power of Programming Languages},
booktitle = {{ESOP}},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
volume = {432},
pages = {134--151},
publisher = {Springer},
year = {1990}
}
@article{Felleisen91,
author = {Matthias Felleisen},
title = {On the Expressive Power of Programming Languages},
journal = {Sci. Comput. Program.},
volume = {17},
number = {1-3},
pages = {35--75},
year = {1991},
note = {Revised version}
}
@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},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
volume = {5028},
pages = {389--402},
publisher = {Springer},
year = {2008}
}
# Catchcont
@inproceedings{Longley09,
author = {John Longley},
title = {Some Programming Languages Suggested by Game Models (Extended Abstract)},
booktitle = {{MFPS}},
series = {Electronic Notes in Theoretical Computer Science},
volume = {249},
pages = {117--134},
publisher = {Elsevier},
year = {2009}
}
@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}
}
# Introductory PL books
@book{Pierce02,
author = {Benjamin C. Pierce},
title = {Types and programming languages},
publisher = {{MIT} Press},
year = {2002}
}
@book{Harper16,
author = {Robert Harper},
title = {Practical Foundations for Programming Languages (2nd. Ed.)},
publisher = {Cambridge University Press},
year = {2016}
}
# Andrej's tutorial
@article{Bauer18,
author = {Andrej Bauer},
title = {What is algebraic about algebraic effects and handlers?},
journal = {CoRR},
volume = {abs/1807.05923},
year = {2018}
}
# Talcott's dissertation
@phdthesis{Talcott85,
author = {Carolyn L. Talcott},
title = {The Essence of Rum --- A theory of the intensional and extensional aspects of Lisp-type computation},
school = {Stanford University},
year = 1985,
address = {Stanford, CA 94305, USA}
}
# Fcontrol
@inproceedings{Sitaram93,
author = {Dorai Sitaram},
title = {Handling Control},
booktitle = {{PLDI}},
pages = {147--155},
publisher = {{ACM}},
year = {1993}
}
# Purely functional data structures
@book{Okasaki99,
author = {Chris Okasaki},
title = {Purely functional data structures},
publisher = {Cambridge University Press},
year = {1999}
}
# Interleaved computation
@inproceedings{Milner75,
author = {Robin Milner},
title = {Processes: A Mathematical Model of Computing Agents},
booktitle = {Studies in Logic and the Foundations of Mathematics},
publisher = {Elsevier},
pages = {157--173},
year = {1975}
}
@article{Plotkin76,
author = {Gordon D. Plotkin},
title = {A Powerdomain Construction},
journal = {{SIAM} J. Comput.},
volume = {5},
number = {3},
pages = {452--487},
year = {1976}
}
@inproceedings{Wand80,
author = {Mitchell Wand},
title = {Continuation-Based Multiprocessing},
booktitle = {{LISP} Conference},
pages = {19--28},
publisher = {{ACM}},
year = {1980}
}
@inproceedings{HaynesF84,
author = {Christopher T. Haynes and
Daniel P. Friedman},
title = {Engines Build Process Abstractions},
booktitle = {{LISP} and Functional Programming},
pages = {18--24},
publisher = {{ACM}},
year = {1984}
}
@article{HaynesFW86,
author = {Christopher T. Haynes and
Daniel P. Friedman and
Mitchell Wand},
title = {Obtaining Coroutines with Continuations},
journal = {Comput. Lang.},
volume = {11},
number = {3/4},
pages = {143--153},
year = {1986}
}
@techreport{Moggi90,
title = {An Abstract View of Programming Languages},
author = {Eugenio Moggi},
institution = {{LFCS}, The University of Edinburgh},
number = {ECS-LFCS-90-113},
year = {1990},
address = {Scotland, {UK}}
}
@article{DybvigH89,
author = {R. Kent Dybvig and
Robert Hieb},
title = {Engines From Continuations},
journal = {Comput. Lang.},
volume = {14},
number = {2},
pages = {109--123},
year = {1989}
}
@inproceedings{HiebD90,
author = {Robert Hieb and
R. Kent Dybvig},
title = {Continuations and Concurrency},
booktitle = {{PPOPP}},
pages = {128--136},
publisher = {{ACM}},
year = {1990}
}
@inproceedings{GanzFW99,
author = {Steven E. Ganz and
Daniel P. Friedman and
Mitchell Wand},
title = {Trampolined Style},
booktitle = {{ICFP}},
pages = {18--27},
publisher = {{ACM}},
year = {1999}
}
@inproceedings{Papaspyrou01,
author = {Nikolaos S. Papspyrou},
title = {A resumption monad transformer and its applications in the semantics of concurrency},
booktitle = {Proceedings of the 3rd Panhellenic Logic Symposium},
address = {Anogia, Greece}
}
@inproceedings{Harrison06,
author = {William L. Harrison},
title = {The Essence of Multitasking},
booktitle = {{AMAST}},
OPTseries = {Lecture Notes in Computer Science},
series = {LNCS},
volume = {4019},
pages = {158--172},
publisher = {Springer},
year = {2006}
}
@article{AtkeyJ15,
author = {Robert Atkey and
Patricia Johann},
title = {Interleaving data and effects},
journal = {J. Funct. Program.},
volume = {25},
year = {2015}
}
# History of continuations
@article{Reynolds93,
author = {John C. Reynolds},
title = {The Discoveries of Continuations},
journal = {{LISP} Symb. Comput.},
volume = {6},
number = {3-4},
pages = {233--248},
year = {1993}
}
# Terminology: 'partial' and 'full' continuations
@inproceedings{JohnsonD88,
author = {Gregory F. Johnson and
Dominic Duggan},
title = {Stores and Partial Continuations as First-Class Objects in a Language
and its Environment},
booktitle = {{POPL}},
pages = {158--168},
publisher = {{ACM} Press},
year = {1988}
}
# Racket
@misc{Flatt20,
author = {Matthew Flatt and {PLT}},
title = {The {R}acket Reference (version 7.9)},
month = nov,
year = 2020
}
# Gauche
@misc{Kawai20,
author = {Shiro Kawai},
title = {{Gauche} Users' Reference (version 0.9.9)},
year = 2019
}
# OchaCaml
@inproceedings{MasukoA11,
author = {Moe Masuko and Kenchi Asai},
title = {{Caml} {Light} + shift/reset = {Caml} {Shift}},
booktitle = {Theory and Practice of Delimited Continuations ({TPDC})},
year = 2011,
pages = {33--46}
}
# Shift/reset in Scala
@inproceedings{RompfMO09,
author = {Tiark Rompf and
Ingo Maier and
Martin Odersky},
title = {Implementing first-class polymorphic delimited continuations by a
type-directed selective CPS-transform},
booktitle = {{ICFP}},
pages = {317--328},
publisher = {{ACM}},
year = {2009}
}
# First implementation of threads using continuations
@InProceedings{Burstall69,
author = {Rod M. Burstall},
title = {Writing Search Algorithms in Functional Form},
booktitle = {Machine Intelligence},
pages = {373-385},
year = 1968,
OPTeditor = {Donald Michie},
volume = 3,
publisher = {Edinburgh University Press}
}
# Continuation marks
@inproceedings{FlattD20,
author = {Matthew Flatt and
R. Kent Dybvig},
title = {Compiler and runtime support for continuation marks},
booktitle = {{PLDI}},
pages = {45--58},
publisher = {{ACM}},
year = {2020}
}
# SML/NJ
@inproceedings{AppelM91,
author = {Andrew W. Appel and
David B. MacQueen},
title = {Standard {ML} of New Jersey},
booktitle = {{PLILP}},
series = {Lecture Notes in Computer Science},
volume = {528},
pages = {1--13},
publisher = {Springer},
OPTdoi = {10.1007/3-540-54444-5\_83},
year = {1991}
}
@inproceedings{AppelM87,
author = {Andrew W. Appel and
David B. MacQueen},
title = {A Standard {ML} compiler},
booktitle = {{FPCA}},
series = {Lecture Notes in Computer Science},
volume = {274},
pages = {301--324},
publisher = {Springer},
OPTdoi = {10.1007/3-540-18317-5\_17},
year = {1987}
}
# MLton
@misc{Fluet20,
author = {Matthew Fluet and others},
title = {MLton Documentation},
year = 2014,
month = jan
}
# Comparison of control operators via double barrelled CPS
@article{Thielecke02,
author = {Hayo Thielecke},
title = {Comparing Control Constructs by Double-Barrelled {CPS}},
journal = {High. Order Symb. Comput.},
volume = {15},
number = {2-3},
pages = {141--160},
year = {2002}
}
# Comparison of effect handlers and shift/reset in a polymorphic type system
@inproceedings{PirogPS19,
author = {Maciej Pir{\'{o}}g and
Piotr Polesiuk and
Filip Sieczkowski},
title = {Typed Equivalence of Effect Handlers and Delimited Control},
booktitle = {{FSCD}},
series = {LIPIcs},
volume = {131},
pages = {30:1--30:16},
publisher = {Schloss Dagstuhl - Leibniz-Zentrum f{\"{u}}r Informatik},
year = {2019}
}
# Original report and paper on continuations
@techreport{StracheyW74,
author = {Christopher Strachey and
Christopher P. Wadsworth},
title = {Continuations: {A} Mathematical Semantics for Handling Full Jumps},
institution = {Programming Research Group, University of Oxford},
number = {PRG-11},
type = {Technical Monograph},
month = jan,
year = 1974
}
@article{StracheyW00,
author = {Christopher Strachey and
Christopher P. Wadsworth},
title = {Continuations: {A} Mathematical Semantics for Handling Full Jumps},
journal = {High. Order Symb. Comput.},
volume = {13},
number = {1/2},
pages = {135--152},
year = {2000}
}
# CPS and abstract machine correspondences
@inproceedings{DanvyN01,
author = {Olivier Danvy and
Lasse R. Nielsen},
title = {Defunctionalization at Work},
booktitle = {{PPDP}},
pages = {162--174},
publisher = {{ACM}},
year = {2001}
}
@inproceedings{AgerBDM03,
author = {Mads Sig Ager and
Dariusz Biernacki and
Olivier Danvy and
Jan Midtgaard},
title = {A functional correspondence between evaluators and abstract machines},
booktitle = {{PPDP}},
pages = {8--19},
publisher = {{ACM}},
year = {2003}
}
@inproceedings{Danvy04,
author = {Olivier Danvy},
title = {A Rational Deconstruction of Landin's {SECD} Machine},
booktitle = {{IFL}},
series = {Lecture Notes in Computer Science},
volume = {3474},
pages = {52--71},
publisher = {Springer},
year = {2004}
}
@article{AgerDM04,
author = {Mads Sig Ager and
Olivier Danvy and
Jan Midtgaard},
title = {A functional correspondence between call-by-need evaluators and lazy
abstract machines},
journal = {Inf. Process. Lett.},
volume = {90},
number = {5},
pages = {223--232},
year = {2004}
}
@inproceedings{Danvy04a,
author = {Olivier Danvy},
title = {On Evaluation Contexts, Continuations, and the Rest of Computation},
year = {2004},
booktitle = {{CW}},
crossref = {cw},
}
@techreport{cw,
author = {Hayo Thielecke (Editor)},
title = {Proceedings of the Fourth {ACM} {SIGPLAN}
Continuations Workshop {(CW'04)}},
number = {CSR-04-1},
institution = {School of Computer Science, University of
Birmingham},
address = {Birmingham B15 2TT, United Kingdom},
year = 2004,
}
@article{AgerDM05,
author = {Mads Sig Ager and
Olivier Danvy and
Jan Midtgaard},
title = {A functional correspondence between monadic evaluators and abstract
machines for languages with computational effects},
journal = {Theor. Comput. Sci.},
volume = {342},
number = {1},
pages = {149--172},
year = {2005}
}
@article{DanvyM09,
author = {Olivier Danvy and
Kevin Millikin},
title = {Refunctionalization at work},
journal = {Sci. Comput. Program.},
volume = {74},
number = {8},
pages = {534--549},
year = {2009}
}
# Answer type modification
@article{Danvy98,
author = {Olivier Danvy},
title = {Functional Unparsing},
journal = {J. Funct. Program.},
volume = {8},
number = {6},
pages = {621--625},
year = {1998}
}
@inproceedings{AsaiK07,
author = {Kenichi Asai and
Yukiyoshi Kameyama},
title = {Polymorphic Delimited Continuations},
booktitle = {{APLAS}},
series = {Lecture Notes in Computer Science},
volume = {4807},
pages = {239--254},
publisher = {Springer},
year = {2007}
}
@inproceedings{KoboriKK16,
author = {Ikuo Kobori and
Yukiyoshi Kameyama and
Oleg Kiselyov},
title = {Answer-Type Modification without Tears: Prompt-Passing Style Translation
for Typed Delimited-Control Operators},
booktitle = {WoC},
series = {{EPTCS}},
volume = {212},
pages = {36--52},
year = {2015}
}
# Partial evaluation with control
@inproceedings{LawallD94,
author = {Julia L. Lawall and
Olivier Danvy},
title = {Continuation-Based Partial Evaluation},
booktitle = {{LISP} and Functional Programming},
pages = {227--238},
publisher = {{ACM}},
year = {1994}
}
# Staging using control
@article{KameyamaKS11,
author = {Yukiyoshi Kameyama and
Oleg Kiselyov and
Chung{-}chieh Shan},
title = {Shifting the stage - Staging with delimited control},
journal = {J. Funct. Program.},
volume = {21},
number = {6},
pages = {617--662},
year = {2011}
}
@inproceedings{OishiK17,
author = {Junpei Oishi and
Yukiyoshi Kameyama},
title = {Staging with control: type-safe multi-stage programming with control
operators},
booktitle = {{GPCE}},
pages = {29--40},
publisher = {{ACM}},
year = {2017}
}
# Hindley-Milner type inference
@article{Hindley69,
optISSN = {00029947},
optURL = {http://www.jstor.org/stable/1995158},
author = {Roger Hindley},
journal = {Transactions of the AMS},
pages = {29--60},
publisher = {{AMS}},
title = {The Principal Type-Scheme of an Object in Combinatory Logic},
volume = {146},
year = {1969}
}
@article{Milner78,
author = {Robin Milner},
title = {A Theory of Type Polymorphism in Programming},
journal = {J. Comput. Syst. Sci.},
volume = {17},
number = {3},
pages = {348--375},
year = {1978}
}
# Substructural type system for shift0/reset0
@inproceedings{KiselyovS07,
author = {Oleg Kiselyov and
Chung{-}chieh Shan},
title = {A Substructural Type System for Delimited Continuations},
booktitle = {{TLCA}},
series = {Lecture Notes in Computer Science},
volume = {4583},
pages = {223--239},
publisher = {Springer},
year = {2007}
}
# Exception handling with success continuations
@article{BentonK01,
author = {Nick Benton and
Andrew Kennedy},
title = {Exceptional Syntax Journal of Functional Programming},
journal = {J. Funct. Program.},
volume = {11},
number = {4},
pages = {395--410},
year = {2001}
}
# Typed multi prompts
@article{DybvigJS07,
author = {R. Kent Dybvig and
Simon L. Peyton Jones and
Amr Sabry},
title = {A monadic framework for delimited continuations},
journal = {J. Funct. Program.},
volume = {17},
number = {6},
pages = {687--730},
year = {2007}
}
# Sitaram's phd dissertation
@phdthesis{Sitaram94,
author = {Dorai Sitaram},
title = {Models of Control and Their Implications for Programming Language Design},
school = {Rice University, Houston, Texas, {USA}},
month = apr,
year = {1994}
}
# Differentiable programming with delimited continuations
@article{WangZDWER19,
author = {Fei Wang and
Daniel Zheng and
James M. Decker and
Xilun Wu and
Gr{\'{e}}gory M. Essertel and
Tiark Rompf},
title = {Demystifying differentiable programming: shift/reset the penultimate
backpropagator},
journal = {Proc. {ACM} Program. Lang.},
volume = {3},
number = {{ICFP}},
pages = {96:1--96:31},
year = {2019}
}
# Probabilistic programming with continuations
@inproceedings{KiselyovS09,
author = {Oleg Kiselyov and
Chung{-}chieh Shan},
title = {Embedded Probabilistic Programming},
booktitle = {{DSL}},
series = {Lecture Notes in Computer Science},
volume = {5658},
pages = {360--384},
publisher = {Springer},
year = {2009}
}
@InProceedings{GorinovaMH20,
title = {Automatic Reparameterisation of Probabilistic Programs},
author = {Maria I. Gorinova and Dave Moore and Matthew D. Hoffman},
booktitle = {{ICML}},
pages = {3648--3657},
year = {2020},
OPTeditor = {Hal Daumé III and Aarti Singh},
volume = {119},
OPTseries = {Proceedings of Machine Learning Research},
OPTaddress = {Virtual},
OPTmonth = {13--18 Jul},
publisher = {PMLR},
OPTpdf = {http://proceedings.mlr.press/v119/gorinova20a/gorinova20a.pdf},
OPTurl = {http://proceedings.mlr.press/v119/gorinova20a.html},
}
# Continuations in operating systems
@inproceedings{KiselyovS07a,
author = {Oleg Kiselyov and
Chung{-}chieh Shan},
title = {Delimited Continuations in Operating Systems},
booktitle = {{CONTEXT}},
series = {Lecture Notes in Computer Science},
volume = {4635},
pages = {291--302},
publisher = {Springer},
year = {2007}
}
# Web programming and continuations
@article{Queinnec04,
author = {Christian Queinnec},
title = {Continuations and Web Servers},
journal = {High. Order Symb. Comput.},
volume = {17},
number = {4},
pages = {277--295},
year = {2004}
}
# Erlang
@book{ArmstrongVW93,
author = {Joe Armstrong and
Robert Virding and
Mike Williams},
title = {Concurrent programming in {ERLANG}},
publisher = {Prentice Hall},
year = {1993}
}
# Asynchrony with effect handlers
@inproceedings{Leijen17a,
author = {Daan Leijen},
title = {Structured asynchrony with algebraic effects},
booktitle = {TyDe@ICFP},
pages = {16--29},
publisher = {{ACM}},
year = {2017}
}
# Surveys of implementation strategies for continuations
@inproceedings{ClingerHO88,
author = {William D. Clinger and
Anne Hartheimer and
Eric Ost},
title = {Implementation Strategies for Continuations},
booktitle = {{LISP} and Functional Programming},
pages = {124--131},
publisher = {{ACM}},
year = {1988}
}
@inproceedings{FarvardinR20,
author = {Kavon Farvardin and
John H. Reppy},
title = {From folklore to fact: comparing implementations of stacks and continuations},
booktitle = {{PLDI}},
pages = {75--90},
publisher = {{ACM}},
year = {2020}
}
# Non-contiguous stacks
@inproceedings{Danvy87,
author = {Olivier Danvy},
title = {Memory allocation and higher-order functions},
booktitle = {{PLDI}},
pages = {241--252},
publisher = {{ACM}},
year = {1987}
}
# Stack copying technique without direct access to the stack.
@inproceedings{PettyjohnCMKF05,
author = {Greg Pettyjohn and
John Clements and
Joe Marshall and
Shriram Krishnamurthi and
Matthias Felleisen},
title = {Continuations from generalized stack inspection},
booktitle = {{ICFP}},
pages = {216--227},
publisher = {{ACM}},
year = {2005}
}
# Catamorphisms
@inproceedings{MeijerFP91,
author = {Erik Meijer and
Maarten M. Fokkinga and
Ross Paterson},
title = {Functional Programming with Bananas, Lenses, Envelopes and Barbed
Wire},
booktitle = {{FPCA}},
series = {Lecture Notes in Computer Science},
volume = {523},
pages = {124--144},
publisher = {Springer},
year = {1991}
}
# Computation trees
@article{Kleene59,
author = {Stephen C. Kleene},
title = {Recursive Functionals and Quantifiers of Finite Types I},
journal = {Transactions of the {AMS}},
volume = {91},
pages = {1--52},
year = {1959}
}
@article{Kleene63,
author = {Stephen C. Kleene},
title = {Recursive Functionals and Quantifiers of Finite Types II},
journal = {Transactions of the {AMS}},
volume = {108},
pages = {106--142},
year = {1963}
}