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.
 
 
 

3513 lines
94 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
@article{SivaramakrishnanDWKJM21,
author = {{KC} Sivaramakrishnan and
Stephen Dolan and
Leo White and
Tom Kelly and
Sadiq Jaffer and
Anil Madhavapeddy},
title = {Retrofitting Effect Handlers onto OCaml},
journal = {CoRR},
volume = {abs/2104.00250},
year = {2021}
}
@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}
}
# Delimited control in OCaml
@article{Kiselyov12,
author = {Oleg Kiselyov},
title = {Delimited control in OCaml, abstractly and concretely},
journal = {Theor. Comput. Sci.},
volume = {435},
pages = {56--76},
year = {2012}
}
# 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}
}
@inproceedings{PlotkinP02,
author = {Gordon D. Plotkin and
John Power},
title = {Notions of Computation Determine Monads},
booktitle = {FoSSaCS},
series = {Lecture Notes in Computer Science},
volume = {2303},
pages = {342--356},
publisher = {Springer},
year = {2002}
}
# 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}
}
@article{FowlerLMD19,
author = {Simon Fowler and
Sam Lindley and
J. Garrett Morris and
S{\'{a}}ra Decova},
title = {Exceptional asynchronous session types: session types without tiers},
journal = {Proc. {ACM} Program. Lang.},
volume = {3},
number = {{POPL}},
pages = {28:1--28:29},
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 = {{\v{Z}}iga Luk{\v{s}}i{\v{c}} and
Matija Pretnar},
title = {Local algebraic effect theories},
journal = {J. Funct. Program.},
volume = {30},
pages = {e13},
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}
}
@inproceedings{XieL20,
author = {Ningning Xie and
Daan Leijen},
title = {Effect handlers in {Haskell}, evidently},
booktitle = {Haskell@ICFP},
pages = {95--108},
publisher = {{ACM}},
year = {2020}
}
@phdthesis{Geron19,
author = {Bram Geron},
title = {Defined Algebraic Operations},
school = {University of Birmingham, England, {UK}},
year = 2019
}
@phdthesis{Saleh19,
author = {Amr Hany Saleh},
title = {Efficient Algebraic Effect Handlers},
school = {KU Leuven, Belgium},
year = 2019
}
# Asynchronous effects
@article{AhmanP21,
author = {Danel Ahman and
Matija Pretnar},
title = {Asynchronous effects},
journal = {Proc. {ACM} Program. Lang.},
volume = {5},
number = {{POPL}},
pages = {1--28},
year = {2021}
}
@MastersThesis{Poulson20,
author = {Leo Poulson},
title = {Asynchronous Effect Handling},
school = {School of Informatics, The University of Edinburgh},
address = {Scotland, {UK}},
year = 2020,
}
# Effekt
@article{BrachthauserSO20,
author = {Jonathan Immanuel Brachth{\"{a}}user and
Philipp Schuster and
Klaus Ostermann},
title = {Effekt: Capability-passing style for type- and effect-safe, extensible
effect handlers in Scala},
journal = {J. Funct. Program.},
volume = {30},
pages = {e8},
year = {2020}
}
@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}
}
# 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}
}
@inproceedings{Leijen05,
author = {Daan Leijen},
title = {Extensible records with scoped labels},
booktitle = {Trends in Functional Programming},
series = {Trends in Functional Programming},
volume = {6},
pages = {179--194},
publisher = {Intellect},
year = {2005}
}
# Helium
@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 = {Proc. {ACM} Program. Lang.},
volume = {2},
number = {{POPL}},
pages = {8:1--8:30},
year = {2018}
}
@article{BiernackiPPS19,
author = {Dariusz Biernacki and
Maciej Pir{\'{o}}g and
Piotr Polesiuk and
Filip Sieczkowski},
title = {Abstracting algebraic effects},
journal = {Proc. {ACM} Program. Lang.},
volume = {3},
number = {{POPL}},
pages = {6:1--6:28},
year = {2019}
}
@article{BiernackiPPS20,
author = {Dariusz Biernacki and
Maciej Pir{\'{o}}g and
Piotr Polesiuk and
Filip Sieczkowski},
title = {Binders by day, labels by night: effect instances via lexically scoped
handlers},
journal = {Proc. {ACM} Program. Lang.},
volume = {4},
number = {{POPL}},
pages = {48:1--48:29},
year = {2020}
}
# 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},
title = {Effect handlers in scope},
booktitle = {Haskell},
pages = {1--12},
publisher = {{ACM}},
year = {2014}
}
@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}
}
# Applicative idioms
@article{McBrideP08,
author = {Conor McBride and
Ross Paterson},
title = {Applicative programming with effects},
journal = {J. Funct. Program.},
volume = {18},
number = {1},
pages = {1--13},
year = {2008}
}
# 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}
}
@article{Wadler92b,
author = {Philip Wadler},
title = {Comprehending Monads},
journal = {Math. Struct. Comput. Sci.},
volume = {2},
number = {4},
pages = {461--493},
year = {1992}
}
@inproceedings{KingW92,
author = {David J. King and
Philip Wadler},
title = {Combining Monads},
booktitle = {Functional Programming},
series = {Workshops in Computing},
pages = {134--143},
publisher = {Springer},
year = {1992}
}
@inproceedings{JonesW93,
author = {Simon L. Peyton Jones and
Philip Wadler},
title = {Imperative Functional Programming},
booktitle = {{POPL}},
pages = {71--84},
publisher = {{ACM} Press},
year = {1993}
}
@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{Gibbons12,
author = {Jeremy Gibbons},
title = {Unifying Theories of Programming with Monads},
booktitle = {{UTP}},
OPTseries = {Lecture Notes in Computer Science},
series = {{LNCS}},
volume = {7681},
pages = {23--67},
publisher = {Springer},
year = {2012}
}
@inproceedings{VazouL16,
author = {Niki Vazou and
Daan Leijen},
title = {From Monads to Effects and Back},
booktitle = {{PADL}},
series = {{LNCS}},
volume = {9585},
pages = {169--186},
publisher = {Springer},
year = {2016}
}
@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}
}
@inproceedings{GibbonsH11,
author = {Jeremy Gibbons and
Ralf Hinze},
title = {Just do it: simple monadic equational reasoning},
booktitle = {{ICFP}},
pages = {2--14},
publisher = {{ACM}},
year = {2011}
}
@book{Borceux94,
author = {Francis Borceux},
title = {Handbook of Categorical Algebra},
series = {Encyclopedia of Mathematics and its Applications},
volume = {1},
collection= {Encyclopedia of Mathematics and its Applications},
OPTdoi = {10.1017/CBO9780511525858},
publisher = {Cambridge University Press},
year = 1994,
place = {Cambridge}
}
@book{MacLane71,
author = {Saunders MacLane},
title = {Categories for the Working Mathematician},
series = {Graduate Texts in Mathematics, Vol. 5},
pages = {ix+262},
publisher = {Springer-Verlag},
address = {New York},
year = 1971
}
# Monad transformers
@phdthesis{Espinosa95,
author = {David A. Espinosa},
school = {Columbia University},
title = {Semantic Lego},
year = 1995,
address = {New York, USA}
}
# 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 = {{LNCS}},
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}
}
@article{DanvyN05,
author = {Olivier Danvy and
Lasse R. Nielsen},
title = {{CPS} transformation of beta-redexes},
journal = {Inf. Process. Lett.},
volume = {94},
number = {5},
pages = {217--224},
year = {2005}
}
@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}}
}
@article{DanvyH92,
author = {Olivier Danvy and
John Hatcliff},
title = {CPS-Transformation After Strictness Analysis},
journal = {{LOPLAS}},
volume = {1},
number = {3},
pages = {195--212},
year = {1992}
}
@inproceedings{DanvyH93,
author = {Olivier Danvy and
John Hatcliff},
title = {On the Transformation between Direct and Continuation Semantics},
booktitle = {{MFPS}},
series = {{LNCS}},
volume = {802},
pages = {627--648},
publisher = {Springer},
year = {1993}
}
@article{Nielsen01,
author = {Lasse R. Nielsen},
title = {A Selective CPS Transformation},
journal = {Electr. Notes Theor. Comput. Sci.},
volume = {45},
pages = {311-331},
year = {2001},
OPTnote = {MFPS 2001,Seventeenth Conference on the Mathematical Foundations of Programming Semantics},
OPTissn = {1571-0661},
OPTdoi = {https://doi.org/10.1016/S1571-0661(04)80969-1}
}
# 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},
OPTtimestamp = {Fri, 10 Jun 2011 14:42:10 +0200},
OPTbiburl = {http://dblp.uni-trier.de/rec/bib/journals/jfp/Huet97},
OPTbibsource = {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}
}
# Capability passing style
@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{BrachthauserSO20a,
author = {Jonathan Immanuel Brachth{\"{a}}user and
Philipp Schuster and
Klaus Ostermann},
title = {Effekt: Capability-passing style for type- and effect-safe, extensible
effect handlers in Scala},
journal = {J. Funct. Program.},
volume = {30},
pages = {e8},
year = {2020}
}
@article{BrachthauserSO20b,
author = {Jonathan Immanuel Brachth{\"{a}}user and
Philipp Schuster and
Klaus Ostermann},
title = {Effects as capabilities: effect handlers and lightweight effect polymorphism},
journal = {Proc. {ACM} Program. Lang.},
volume = {4},
number = {{OOPSLA}},
pages = {126:1--126:30},
year = {2020}
}
@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}
}
# 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}
}
@book{Dybvig03,
author = {R. Kent Dybvig},
title = {The {Scheme} Programming Language, Third Edition},
publisher = {{MIT} Press},
year = {2003}
}
# 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}
}
@book{Church41,
author = {Alonzo Church},
title = {The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies)},
year = {1941},
publisher = {Princeton University Press},
address = {USA}
}
# 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 & monadic reflection
@inproceedings{Filinski94,
author = {Andrzej Filinski},
title = {Representing Monads},
booktitle = {{POPL}},
pages = {446--457},
publisher = {{ACM} Press},
year = {1994}
}
@phdthesis{Filinski96,
author = {Andrzej Filinski},
title = {Controlling Effects},
school = {Carnegie Mellon University},
year = {1996}
}
@inproceedings{Filinski99,
author = {Andrzej Filinski},
title = {Representing Layered Monads},
booktitle = {{POPL}},
pages = {175--188},
publisher = {{ACM}},
year = {1999}
}
@inproceedings{Filinski10,
author = {Andrzej Filinski},
title = {Monads in action},
booktitle = {{POPL}},
pages = {483--494},
publisher = {{ACM}},
year = {2010}
}
# 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}
}
# Coroutines
@article{MouraI09,
author = {Ana L{\'{u}}cia de Moura and
Roberto Ierusalimschy},
title = {Revisiting coroutines},
journal = {{ACM} Trans. Program. Lang. Syst.},
volume = {31},
number = {2},
pages = {6:1--6:31},
year = {2009}
}
@article{AbadiP10,
author = {Mart{\'{\i}}n Abadi and
Gordon D. Plotkin},
title = {A Model of Cooperative Threads},
journal = {Log. Methods Comput. Sci.},
volume = {6},
number = {4},
year = {2010}
}
# 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}
}
@article{Shan07,
author = {Chung{-}chieh Shan},
title = {A static simulation of dynamic delimited control},
journal = {High. Order Symb. Comput.},
volume = {20},
number = {4},
pages = {371--401},
year = {2007}
}
# 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}
}
@book{PizziniBMG20,
author = {Ken Pizzini and Paolo Bonzini and Jim Meyering and Assaf Gordon},
@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} sed, a stream editor},
note = {For version 4.8},
month = jan,
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}},
journal = {Electr. Notes Theor. Comput. Sci.},
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
}
@article{FlattDDKMSTZ19,
author = {Matthew Flatt and
Caner Derici and
R. Kent Dybvig and
Andrew W. Keep and
Gustavo E. Massaccesi and
Sarah Spall and
Sam Tobin{-}Hochstadt and
Jon Zeppieri},
title = {Rebuilding racket on chez scheme (experience report)},
journal = {Proc. {ACM} Program. Lang.},
volume = {3},
number = {{ICFP}},
pages = {78:1--78:15},
year = {2019}
}
# 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 = {{LNCS}},
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 = {{LNCS}},
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}
}
@article{AgerBDM03a,
author = {Mads Sig Ager and Dariusz Biernacki and Olivier Danvy and Jan Midtgaard},
title = {From Interpreter to Compiler and Virtual Machine: A Functional Derivation},
volume = {10},
OPTurl = {https://tidsskrift.dk/brics/article/view/21784},
OPTdoi = {10.7146/brics.v10i14.21784},
number = {14},
journal = {{BRICS} Report Series},
year = {2003},
OPTmonth = {Mar.}
}
@inproceedings{Danvy04,
author = {Olivier Danvy},
title = {A Rational Deconstruction of Landin's {SECD} Machine},
booktitle = {{IFL}},
series = {{LNCS}},
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 = {{LNCS}},
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}
}
# Abstract machines
@article{BiernackaBD03,
author = {Malgorzata Biernacka and Dariusz Biernacki and Olivier Danvy},
title = {An Operational Foundation for Delimited Continuations},
volume = {10},
OPTdoi = {10.7146/brics.v10i41.21809},
number = {41},
journal = {{BRICS} Report Series},
year = {2003},
OPTmonth = dec
}
@article{BiernackaBD05,
author = {Malgorzata Biernacka and
Dariusz Biernacki and
Olivier Danvy},
title = {An Operational Foundation for Delimited Continuations in the {CPS}
Hierarchy},
journal = {Log. Methods Comput. Sci.},
volume = {1},
number = {2},
year = {2005}
}
@techreport{Leroy90,
author = {Xavier Leroy},
title = {The {ZINC} experiment: an economical
implementation of the {ML} language},
institution = {INRIA},
type = {Technical report},
number = {117},
year = {1990},
OPTurllocal = {https://xavierleroy.org/publi/ZINC.pdf},
}
@article{Krivine07,
author = {Jean{-}Louis Krivine},
title = {A call-by-name lambda-calculus machine},
journal = {High. Order Symb. Comput.},
volume = {20},
number = {3},
pages = {199--207},
year = {2007}
}
@article{DouenceF07,
author = {R{\'{e}}mi Douence and
Pascal Fradet},
title = {The next 700 Krivine machines},
journal = {High. Order Symb. Comput.},
volume = {20},
number = {3},
pages = {237--255},
year = {2007}
}
# Derivation of abstract machines
@inproceedings{Swierstra12,
author = {Wouter Swierstra},
title = {From Mathematics to Abstract Machine: {A} formal derivation of an
executable Krivine machine},
booktitle = {{MSFP}},
series = {{EPTCS}},
volume = {76},
pages = {163--177},
year = {2012}
}
@article{BiernackaD07,
author = {Malgorzata Biernacka and
Olivier Danvy},
title = {A concrete framework for environment machines},
journal = {{ACM} Trans. Comput. Log.},
volume = {9},
number = {1},
pages = {6},
year = {2007}
}
@inproceedings{HuttonW04,
author = {Graham Hutton and
Joel J. Wright},
title = {Calculating an exceptional machine},
booktitle = {Trends in Functional Programming},
series = {Trends in Functional Programming},
volume = {5},
pages = {49--64},
publisher = {Intellect},
year = {2004}
}
# 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}
}
@article{WeiBTR20,
author = {Guannan Wei and
Oliver Bracevac and
Shangyin Tan and
Tiark Rompf},
title = {Compiling symbolic execution with staging and algebraic effects},
journal = {Proc. {ACM} Program. Lang.},
volume = {4},
number = {{OOPSLA}},
pages = {164:1--164:33},
year = {2020}
}
# Coordination using control
@phdthesis{Bracevec19,
author = {Oliver Bracevac},
title = {Event Correlation with Algebraic Effects - Theory, Design and Implementation},
school = {Technische Universit{\"{a}}t Damstadt, Germany},
year = {2019}
}
@article{BracevacASEEM18,
author = {Oliver Bracevac and
Nada Amin and
Guido Salvaneschi and
Sebastian Erdweg and
Patrick Eugster and
Mira Mezini},
title = {Versatile event correlation with algebraic effects},
journal = {Proc. {ACM} Program. Lang.},
volume = {2},
number = {{ICFP}},
pages = {67:1--67:31},
year = {2018}
}
# 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 = {{LNCS}},
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 = {{LNCS}},
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 = {{LNCS}},
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 = {{LNCS}},
volume = {523},
pages = {124--144},
publisher = {Springer},
year = {1991}
}
# Mutumorphisms
@article{Fokkinga90,
author = {Maarten M. Fokkinga},
title = {Tupling and mutumorphisms},
journal = {The Squiggolist},
volume = {1},
number = {4},
pages = {81--82},
year = {1990}
}
# 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}
}
# Scott encoding
@unpublished{Scott62,
author = {Dana Scott},
title = {A system of functional abstraction},
note = {Lectures delivered at University of California, Berkeley, California, USA, 1962/63}
}
# Computer architecture
@book{BryantO03,
author = {Randal E. Bryant and
David R. O'Hallaron},
title = {Computer systems - a programmers perspective},
publisher = {Pearson Education},
year = {2003},
edition = {2nd}
}
# Hughes lists
@article{Hughes86,
author = {John Hughes},
title = {A Novel Representation of Lists and its Application to the Function
"reverse"},
journal = {Inf. Process. Lett.},
volume = {22},
number = {3},
pages = {141--144},
year = {1986}
}
# Exact real integration
@inproceedings{Simpson98,
author = {Alex K. Simpson},
title = {Lazy Functional Algorithms for Exact Real Functionals},
booktitle = {{MFCS}},
OPTseries = {Lecture Notes in Computer Science},
series = {{LNCS}},
volume = {1450},
pages = {456--464},
publisher = {Springer},
year = {1998}
}
# Robbie Daniels' MSc dissertation
@MastersThesis{Daniels16,
author = {Robbie Daniels},
title = {Efficient Generic Searches and Programming Language Expressivity},
school = {School of Informatics, the University of Edinburgh},
address = {Scotland},
month = aug,
year = 2016,
OPTurl = {http://homepages.inf.ed.ac.uk/jrl/Research/Robbie_Daniels_MSc_dissertation.pdf}
}
# Computability
@article{Plotkin77,
author = {Gordon Plotkin},
title = {{LCF} considered as a programming language},
journal = {Theor. Comput. Sci.},
volume = {5},
number = {3},
pages = {223--255},
year = {1977}
}
@inproceedings{Pippenger96,
author = {Nicholas Pippenger},
title = {Pure versus impure Lisp},
booktitle = {{POPL}},
pages = {104--109},
publisher = {{ACM}},
year = {1996}
}
@inproceedings{Longley99,
author = {John Longley},
title = {When is a functional program not a functional program?},
booktitle = {{ICFP}},
pages = {1--7},
publisher = {{ACM}},
year = {1999}
}
@article{Longley18a,
author = {John Longley},
title = {The recursion hierarchy for {PCF} is strict},
journal = {Logical Methods in Comput. Sci.},
volume = {14},
number = {3:8},
pages = {1--51},
year = {2018}
}
@article{Longley19,
author = {John Longley},
title = {Bar recursion is not computable via iteration},
journal = {Computability},
volume = {8},
number = {2},
pages = {119--153},
year = {2019}
}
@article{BirdJdM97,
author = {Richard Bird and
Geraint Jones and
Oege de Moor},
title = {More haste less speed: lazy versus eager evaluation},
journal = {J. Funct. Program.},
volume = {7},
number = {5},
pages = {541--547},
year = {1997}
}
@article{Jones01,
author = {Neil Jones},
title = {The expressive power of higher-order types, or, life without {CONS}},
journal = {J. Funct. Program.},
volume = {11},
pages = {5--94},
year = {2001}
}
# n-queens
@article{BellS09,
author = {Jordan Bell and
Brett Stevens},
title = {A survey of known results and research areas for n-queens},
journal = {Discret. Math.},
volume = {309},
number = {1},
pages = {1--31},
year = {2009}
}
# Sudoko
@article{Bird06,
author = {Richard S. Bird},
title = {Functional Pearl: {A} program to solve Sudoku},
journal = {J. Funct. Program.},
volume = {16},
number = {6},
pages = {671--679},
year = {2006}
}
# Environment-store model
@article{ScottS71,
author = {Dana Scott and Christopher Strachey},
journal = {Proceedings of the Symposium on Computers and Automata},
series = {Microwave Research Institute Symposia Series},
volume = {21},
year = {1971}
}
# Backtracking
@article{KiselyovSFA05,
author = {Kiselyov, Oleg and Shan, Chung-chieh and Friedman, Daniel P. and Sabry, Amr},
title = {Backtracking, Interleaving, and Terminating Monad Transformers: (Functional Pearl)},
booktitle = {{ICFP}},
pages = {192--203},
publisher = {{ACM}},
year = {2005},
}
# Ulrich Berger's PhD thesis
@phdthesis{Berger90,
author = {Ulrich Berger},
title = {Totale Objekte und Mengen in der Bereichstheorie},
school = {Ludwig Maximillians-Universtität},
address = {Munich},
year = {1990}
}
# Exhaustive search on infinite sets
@inproceedings{Escardo07,
author = {Mart{\'{\i}}n H{\"{o}}tzel Escard{\'{o}}},
title = {Infinite sets that admit fast exhaustive search},
booktitle = {{LICS}},
pages = {443--452},
publisher = {{IEEE} Computer Society},
year = {2007}
}
@misc{Bauer11,
author = {Andrej Bauer},
title = {How make the "impossible" functionals run even faster},
howpublished = {{M}athematics, {A}lgorithms and {P}roofs, Leiden, the Netherlands},
year = 2011,
url = {http://math.andrej.com/2011/12/06/how-to-make-the-impossible-functionals-run-even-faster/}
}
# MirageOS
@article{MadhavapeddyS14,
author = {Anil Madhavapeddy and
David J. Scott},
title = {Unikernels: the rise of the virtual library operating system},
journal = {Commun. {ACM}},
volume = {57},
number = {1},
pages = {61--69},
year = {2014}
}
# Async/await
@article{Claessen99,
author = {Koen Claessen},
title = {A Poor Man's Concurrency Monad},
journal = {J. Funct. Program.},
volume = {9},
number = {3},
pages = {313--323},
year = {1999}
}
@inproceedings{LiZ07,
author = {Peng Li and
Steve Zdancewic},
title = {Combining events and threads for scalable network services implementation
and evaluation of monadic, application-level concurrency primitives},
booktitle = {{PLDI}},
pages = {189--199},
publisher = {{ACM}},
year = {2007}
}
@inproceedings{SymePL11,
author = {Don Syme and
Tomas Petricek and
Dmitry Lomov},
title = {The F{\#} Asynchronous Programming Model},
booktitle = {{PADL}},
OPTseries = {Lecture Notes in Computer Science},
series = {{LNCS}},
volume = {6539},
pages = {175--189},
publisher = {Springer},
year = {2011}
}
# Continuations via generators and iterators
@inproceedings{JamesS11,
title = {Yield: Mainstream delimited continuations},
author= {Roshan P James and Amr Sabry},
year = {2011},
booktitle = {{TPDC}}
}
# Generators / iterators
@article{ShawWL77,
author = {Mary Shaw and
William A. Wulf and
Ralph L. London},
title = {Abstraction and Verification in Alphard: Defining and Specifying Iteration
and Generators},
journal = {Commun. {ACM}},
volume = {20},
number = {8},
pages = {553--564},
year = {1977}
}
# Fellowship of the Ring reference
@book{Tolkien54,
title = {The lord of the rings: Part 1: The fellowship of the ring},
author = {John Ronald Reuel Tolkien},
publisher = {Allen and Unwin},
year = 1954,
language = {eng},
keywords = {Fiction},
}
# Correspondence between monadic effects and effect systems
@article{WadlerT03,
author = {Philip Wadler and
Peter Thiemann},
title = {The marriage of effects and monads},
journal = {{ACM} Trans. Comput. Log.},
volume = {4},
number = {1},
pages = {1--32},
year = {2003}
}
# Undelimited control is insufficient to express mutable state
@techreport{FriedmanS00,
author = {Daniel P. Friedman and Amr Sabry},
title = {Recursion is a Computational Effect},
institution = {Computer Science Department, Indiana University},
address = {Bloomington, Indiana 47405, USA},
type = {Technical report},
number = {546},
year = {200},
}
# Fortran
@inproceedings{BackusBBGHHNSSS57,
author = {John W. Backus and
Robert J. Beeber and
Sheldon Best and
Richard Goldberg and
Lois M. Haibt and
Harlan L. Herrick and
Robert A. Nelson and
David Sayre and
Peter B. Sheridan and
H. Stern and
Irving Ziller and
Robert A. Hughes and
R. Nutt},
title = {The {FORTRAN} automatic coding system},
booktitle = {{IRE-AIEE-ACM} Computer Conference (Western)},
pages = {188--198},
publisher = {{ACM}},
year = {1957}
}
# Algol
@article{BackusBGKMPRSVWWW60,
author = {John W. Backus and
Friedrich L. Bauer and
Julien Green and
C. Katz and
John McCarthy and
Alan J. Perlis and
Heinz Rutishauser and
Klaus Samelson and
Bernard Vauquois and
Joseph Henry Wegstein and
Adriaan van Wijngaarden and
Michael Woodger},
title = {Report on the algorithmic language {ALGOL} 60},
journal = {Commun. {ACM}},
volume = {3},
number = {5},
pages = {299--314},
year = {1960}
}
# Effect systems
@inproceedings{GiffordL86,
author = {David K. Gifford and
John M. Lucassen},
title = {Integrating Functional and Imperative Programming},
booktitle = {{LISP} and Functional Programming},
pages = {28--38},
publisher = {{ACM}},
year = {1986}
}
@phdthesis{Lucassen87,
author = {John M. Lucassen},
title = {Types and Effects --- Towards the Integration of
Functional and Imperative Programming},
school = {{MIT}, {USA}},
year = 1987
}
@inproceedings{LucassenG88,
author = {John M. Lucassen and
David K. Gifford},
title = {Polymorphic Effect Systems},
booktitle = {{POPL}},
pages = {47--57},
publisher = {{ACM} Press},
year = {1988}
}
@inproceedings{TalpinJ92,
author = {Jean{-}Pierre Talpin and
Pierre Jouvelot},
title = {The Type and Effect Discipline},
booktitle = {{LICS}},
pages = {162--173},
publisher = {{IEEE} Computer Society},
year = {1992}
}
@article{TofteT97,
author = {Mads Tofte and
Jean{-}Pierre Talpin},
title = {Region-based Memory Management},
journal = {Inf. Comput.},
volume = {132},
number = {2},
pages = {109--176},
year = {1997}
}
@inproceedings{NielsonN99,
author = {Flemming Nielson and
Hanne Riis Nielson},
title = {Type and Effect Systems},
booktitle = {Correct System Design},
series = {Lecture Notes in Computer Science},
volume = {1710},
pages = {114--136},
publisher = {Springer},
year = {1999}
}
# Intensional type theory
@book{MartinLof84,
author = {Per Martin{-}L{\"{o}}f},
title = {Intuitionistic type theory},
series = {Studies in proof theory},
volume = {1},
publisher = {Bibliopolis},
year = {1984}
}
# Unison language
@misc{Chiusano20,
author = {Paul Chiusano and others},
title = {{Unison} language reference},
year = 2020,
note = {Revision \href{https://github.com/unisonweb/unisonweb-org/tree/cb9a1988731451311eeb372f69e9b9f576aa02d3/src/data/docs/language-reference}{cb9a198}}
}
# Effect handlers in C
@inproceedings{Leijen17b,
author = {Daan Leijen},
title = {Implementing Algebraic Effects in {C} - "Monads for Free in {C}"},
booktitle = {{APLAS}},
series = {Lecture Notes in Computer Science},
volume = {10695},
pages = {339--363},
publisher = {Springer},
year = {2017}
}
# Žiga Lukšič's PhD thesis on local effect theories
@phdthesis{Ziga20,
author = {{\v{Z}}iga Luk{\v{s}}i{\v{c}}},
title = {Applications of algebraic effect theories},
school = {University of Ljubljana, Slovenia},
year = {2020}
}
# Jeremy Yallop's phd thesis
@phdthesis{Yallop10,
author = {Jeremy Yallop},
title = {Abstraction for web programming},
school = {The University of Edinburgh, {UK}},
year = {2010}
}