book.bib 58 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695
  1. @book{Pierce:2004fk,
  2. editor = {Benjamin C. Pierce},
  3. publisher = {The MIT press},
  4. title = {Advanced Topics in Types and Programming Languages},
  5. year = {2004}}
  6. @book{Pierce:SF2,
  7. author = {Benjamin C. Pierce and Arthur Azevedo de Amorim
  8. and Chris Casinghino and Marco Gaboardi and
  9. Michael Greenberg and C\v{a}t\v{a}lin Hri\c{t}cu
  10. and Vilhelm Sj\"{o}berg and Andrew Tolmach
  11. and Brent Yorgey},
  12. title = {Programming Language Foundations},
  13. series = {Software Foundations series, volume 2},
  14. month = may,
  15. year = {2018},
  16. publisher = {Electronic textbook},
  17. plclub = {Yes},
  18. bcp = {Yes},
  19. keys = {verification,books}
  20. }
  21. @Book{Harper2016,
  22. author = {Robert Harper},
  23. title = {Practical Foundations for Programming Languages},
  24. publisher = {Cambridge University Press},
  25. year = 2016,
  26. edition = {2nd}}
  27. @Article{Appel90,
  28. author = {Appel, Andrew W.},
  29. title = {A runtime system},
  30. journal = {{LISP} and Symbolic Computation},
  31. year = 1990,
  32. volume = 3,
  33. number = 4,
  34. pages = {343--380},
  35. month = {November}}
  36. @book{Appel91,
  37. place={Cambridge},
  38. title={Compiling with Continuations},
  39. DOI={10.1017/CBO9780511609619},
  40. publisher={Cambridge University Press},
  41. author={Appel, Andrew W.},
  42. year={1991}
  43. }
  44. @inproceedings{Dieckmann99,
  45. author = {Sylvia Dieckmann and Urs H{\"{o}}lzle},
  46. editor = {Rachid Guerraoui},
  47. title = {A Study of the Allocation Behavior of the SPECjvm98 Java Benchmark},
  48. booktitle = {ECOOP'99 - Object-Oriented Programming, 13th European Conference,
  49. Lisbon, Portugal, June 14-18, 1999, Proceedings},
  50. series = {Lecture Notes in Computer Science},
  51. volume = 1628,
  52. pages = {92--115},
  53. publisher = {Springer},
  54. year = 1999,
  55. url = {https://doi.org/10.1007/3-540-48743-3\_5},
  56. doi = {10.1007/3-540-48743-3\_5},
  57. timestamp = {Tue, 14 May 2019 10:00:54 +0200},
  58. biburl = {https://dblp.org/rec/conf/ecoop/DieckmannH99.bib},
  59. bibsource = {dblp computer science bibliography, https://dblp.org}
  60. }
  61. @article{Pierce:2000,
  62. author = {Pierce, Benjamin C. and Turner, David N.},
  63. title = {Local Type Inference},
  64. year = 2000,
  65. issue_date = {Jan. 2000},
  66. publisher = {Association for Computing Machinery},
  67. address = {New York, NY, USA},
  68. volume = 22,
  69. number = 1,
  70. issn = {0164-0925},
  71. url = {https://doi.org/10.1145/345099.345100},
  72. doi = {10.1145/345099.345100},
  73. abstract = {We study two partial type inference methods for a language combining subtyping and impredicative polymorphism. Both methods are local in the sense that missing annotations are recovered using only information from adjacent nodes in the syntax tree, without long-distance constraints such as unification variables. One method infers type arguments in polymorphic applications using a local constraint solver. The other infers annotations on bound variables in function abstractions by propagating type constraints downward from enclosing application nodes. We motivate our design choices by a statistical analysis of the uses of type inference in a sizable body of existing ML code.},
  74. journal = {ACM Trans. Program. Lang. Syst.},
  75. month = jan,
  76. pages = {1–44},
  77. numpages = 44,
  78. keywords = {subtyping, polymorphism, type inference}
  79. }
  80. @article{Dunfield:2021,
  81. author = {Dunfield, Jana and Krishnaswami, Neel},
  82. title = {Bidirectional Typing},
  83. year = 2021,
  84. issue_date = {June 2022},
  85. publisher = {Association for Computing Machinery},
  86. address = {New York, NY, USA},
  87. volume = 54,
  88. number = 5,
  89. issn = {0360-0300},
  90. url = {https://doi.org/10.1145/3450952},
  91. doi = {10.1145/3450952},
  92. abstract = {Bidirectional typing combines two modes of typing: type checking, which checks that a program satisfies a known type, and type synthesis, which determines a type from the program. Using checking enables bidirectional typing to support features for which inference is undecidable; using synthesis enables bidirectional typing to avoid the large annotation burden of explicitly typed languages. In addition, bidirectional typing improves error locality. We highlight the design principles that underlie bidirectional type systems, survey the development of bidirectional typing from the prehistoric period before Pierce and Turner’s local type inference to the present day, and provide guidance for future investigations.},
  93. journal = {ACM Comput. Surv.},
  94. month = may,
  95. articleno = 98,
  96. numpages = 38,
  97. keywords = {type inference, Type checking}
  98. }
  99. @inproceedings{Hatcliff:1994ea,
  100. address = {New York, NY, USA},
  101. author = {John Hatcliff and Olivier Danvy},
  102. booktitle = {POPL '94: Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages},
  103. date-added = {2005-11-25 10:47:59 -0600},
  104. date-modified = {2010-12-17 10:23:11 -0700},
  105. isbn = {0-89791-636-0},
  106. location = {Portland, Oregon, United States},
  107. pages = {458--471},
  108. publisher = {ACM Press},
  109. title = {A generic account of continuation-passing styles},
  110. year = {1994}}
  111. @article{Plotkin:1975,
  112. author = {G. D. Plotkin},
  113. date-added = {2005-11-25 10:55:03 -0600},
  114. date-modified = {2009-08-25 22:28:20 -0600},
  115. journal = {Theoretical Computer Science},
  116. month = dec,
  117. number = {2},
  118. pages = {125-159},
  119. rating = {5},
  120. read = {Yes},
  121. title = {Call-by-name, call-by-value and the lambda-calculus},
  122. volume = {1},
  123. year = {1975}}
  124. @inproceedings{Lawall:1993,
  125. author = {Lawall, Julia L. and Danvy, Olivier},
  126. title = {Separating Stages in the Continuation-Passing Style Transformation},
  127. year = 1993,
  128. isbn = 0897915607,
  129. publisher = {Association for Computing Machinery},
  130. address = {New York, NY, USA},
  131. url = {https://doi.org/10.1145/158511.158613},
  132. doi = {10.1145/158511.158613},
  133. booktitle = {Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
  134. pages = {124–136},
  135. numpages = 13,
  136. location = {Charleston, South Carolina, USA},
  137. series = {POPL '93}
  138. }
  139. @book{Friedman:2001,
  140. author = {Daniel P. Friedman and
  141. Mitchell Wand and
  142. Christopher T. Haynes},
  143. title = {Essentials of programming languages {(2.} ed.)},
  144. publisher = {{MIT} Press},
  145. year = 2001,
  146. isbn = {978-0-262-06217-6},
  147. timestamp = {Fri, 15 Apr 2011 13:37:34 +0200},
  148. biburl = {https://dblp.org/rec/books/daglib/0017436.bib},
  149. bibsource = {dblp computer science bibliography, https://dblp.org}
  150. }
  151. @inproceedings{Fischer:1972,
  152. author = {Fischer, Michael J.},
  153. title = {Lambda Calculus Schemata},
  154. year = 1972,
  155. isbn = 9781450378918,
  156. publisher = {Association for Computing Machinery},
  157. address = {New York, NY, USA},
  158. url = {https://doi.org/10.1145/800235.807077},
  159. doi = {10.1145/800235.807077},
  160. booktitle = {Proceedings of ACM Conference on Proving Assertions about
  161. Programs},
  162. pages = {104–109},
  163. numpages = 6,
  164. location = {Las Cruces, New Mexico, USA}
  165. }
  166. @InProceedings{Wijngaarden:1966,
  167. author = {Adriaan {van Wijngaarden}},
  168. title = {Recursive definition of syntax and semantics},
  169. booktitle = {Formal Language Description Languages for Computer Programming},
  170. year = 1966,
  171. editor = {T. B. Steel, Jr.},
  172. pages = {13-24},
  173. publisher = {North-Holland}}
  174. @book{Aho:2006wb,
  175. address = {USA},
  176. author = {Aho, Alfred V. and Lam, Monica S. and Sethi, Ravi and Ullman, Jeffrey D.},
  177. date-added = {2021-10-22 09:38:52 -0400},
  178. date-modified = {2021-10-22 09:38:59 -0400},
  179. isbn = {0321486811},
  180. publisher = {Addison-Wesley Longman Publishing Co., Inc.},
  181. title = {Compilers: Principles, Techniques, and Tools (2nd Edition)},
  182. year = {2006}}
  183. @article{Logothetis:1981,
  184. author = {Logothetis, George and Mishra, Prateek},
  185. title = {Compiling short-circuit boolean expressions in one pass},
  186. journal = {Software: Practice and Experience},
  187. volume = {11},
  188. number = {11},
  189. pages = {1197-1214},
  190. keywords = {Short-circuit evaluation, One-pass compilation, Boolean expressions, Code generation},
  191. doi = {https://doi.org/10.1002/spe.4380111104},
  192. url = {https://onlinelibrary.wiley.com/doi/abs/10.1002/spe.4380111104},
  193. eprint = {https://onlinelibrary.wiley.com/doi/pdf/10.1002/spe.4380111104},
  194. abstract = {Abstract We present a very simple scheme for compiling boolean expressions in the short-circuit manner in one pass. The generated code is of very high quality and avoids most inefficiencies commonly associated with one-pass code generation. In particular, redundant conditional and unconditional branches are kept to a minimum. The scheme is general enough to compile the boolean expressions of a typical high-level language such as Pascal. It is presented in a format suited for syntax-directed translation and can be used with both top-down and bottom-up parsing.},
  195. year = {1981}
  196. }
  197. @article{Clarke:1989,
  198. author = {Clarke, Keith},
  199. title = {One-Pass Code Generation Using Continuations},
  200. year = {1989},
  201. issue_date = {Dec. 1989},
  202. publisher = {John Wiley & Sons, Inc.},
  203. address = {USA},
  204. volume = {19},
  205. number = {12},
  206. issn = {0038-0644},
  207. journal = {Softw. Pract. Exper.},
  208. month = nov,
  209. pages = {1175–1192},
  210. numpages = {18}
  211. }
  212. @article{Moggi:1991in,
  213. address = {Duluth, MN, USA},
  214. annote = {Journal version of the 1989 Computational Lambda-Calculus and Monads},
  215. author = {Eugenio Moggi},
  216. date-added = {2005-11-25 10:58:45 -0600},
  217. date-modified = {2010-12-17 10:23:11 -0700},
  218. issn = {0890-5401},
  219. journal = {Inf. Comput.},
  220. number = {1},
  221. pages = {55--92},
  222. publisher = {Academic Press, Inc.},
  223. title = {Notions of computation and monads},
  224. volume = {93},
  225. year = {1991},
  226. Bdsk-File-1 = {YnBsaXN0MDDRAQJccmVsYXRpdmVQYXRoWGljOTEucGRmCAsYAAAAAAAAAQEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAACE=},
  227. Bdsk-Url-1 = {http://dx.doi.org/10.1016/0890-5401(91)90052-4}}
  228. @article{Flatt:2019tb,
  229. abstract = {We rebuilt Racket on Chez Scheme, and it works well---as long as we're allowed
  230. a few patches to Chez Scheme. DrRacket runs, the Racket distribution can build itself,
  231. and nearly all of the core Racket test suite passes. Maintainability and performance
  232. of the resulting implementation are good, although some work remains to improve end-to-end
  233. performance. The least predictable part of our effort was how big the differences
  234. between Racket and Chez Scheme would turn out to be and how we would manage those
  235. differences. We expect Racket on Chez Scheme to become the main Racket implementation,
  236. and we encourage other language implementers to consider Chez Scheme as a target virtual
  237. machine.},
  238. address = {New York, NY, USA},
  239. articleno = {78},
  240. author = {Flatt, Matthew and Derici, Caner and Dybvig, R. Kent and Keep, Andrew W. and Massaccesi, Gustavo E. and Spall, Sarah and Tobin-Hochstadt, Sam and Zeppieri, Jon},
  241. date-added = {2021-10-21 14:03:11 -0400},
  242. date-modified = {2021-10-21 14:03:16 -0400},
  243. doi = {10.1145/3341642},
  244. issue_date = {August 2019},
  245. journal = {Proc. ACM Program. Lang.},
  246. keywords = {Racket, Scheme},
  247. month = jul,
  248. number = {ICFP},
  249. numpages = {15},
  250. publisher = {Association for Computing Machinery},
  251. title = {Rebuilding Racket on Chez Scheme (Experience Report)},
  252. url = {https://doi.org/10.1145/3341642},
  253. volume = {3},
  254. year = {2019},
  255. Bdsk-File-1 = {YnBsaXN0MDDRAQJccmVsYXRpdmVQYXRoWzMzNDE2NDIucGRmCAsYAAAAAAAAAQEAAAAAAAAAAwAAAAAAAAAAAAAAAAAAACQ=},
  256. Bdsk-Url-1 = {https://doi.org/10.1145/3341642}}
  257. @incollection{Danvy:2003fk,
  258. author = {Danvy, Olivier},
  259. booktitle = {Compiler Construction},
  260. date-added = {2013-01-02 15:56:48 -0700},
  261. date-modified = {2013-01-02 15:58:19 -0700},
  262. pages = {77-89},
  263. series = {LNCS},
  264. title = {A New One-Pass Transformation into Monadic Normal Form},
  265. volume = {2622},
  266. year = {2003},
  267. Bdsk-File-1 = {YnBsaXN0MDDRAQJccmVsYXRpdmVQYXRoXxA0RGFudnkyMDAzX0NoYXB0ZXJfQU5ld09uZS1QYXNzVHJhbnNmb3JtYXRpb25JbnRvLnBkZggLGAAAAAAAAAEBAAAAAAAAAAMAAAAAAAAAAAAAAAAAAABP},
  268. Bdsk-Url-1 = {http://dx.doi.org/10.1007/3-540-36579-6_6}}
  269. @article{PeytonJones:1998,
  270. author = {Simon L. {Peyton Jones} and Andr{\'e}L.M. Santos},
  271. journal = {Science of Computer Programming},
  272. number = {1},
  273. pages = {3-47},
  274. title = {A transformation-based optimiser for Haskell},
  275. volume = {32},
  276. year = {1998}}
  277. @Misc{Lehtosalo2021:MyPy,
  278. author = {Jukka Lehtosalo},
  279. title = {MyPy Optional Type Checker for Python},
  280. howpublished = {\url{http://mypy-lang.org/}},
  281. month = jun,
  282. year = 2021}
  283. @book{Russell2003,
  284. author = {Russell, Stuart J. and Norvig, Peter},
  285. title = {Artificial Intelligence: A Modern Approach},
  286. year = {2003},
  287. isbn = {0137903952},
  288. publisher = {Pearson Education},
  289. edition = {2},
  290. }
  291. @Misc{PSF21:cpython,
  292. title = {CPython github repository},
  293. organization = {Python Software Foundation},
  294. howpublished = {\url{https://github.com/python/cpython}},
  295. year = 2021}
  296. @Manual{PSF21:python_ref,
  297. title = {The Python Language Reference},
  298. organization = {Python Software Foundation},
  299. month = jun,
  300. year = 2021,
  301. howpublished = {\url{https://docs.python.org/3/reference/}},
  302. }
  303. @book{Lutz:2013vp,
  304. author = {Mark Lutz},
  305. date-added = {2021-06-10 10:29:47 -0400},
  306. date-modified = {2021-06-10 10:30:37 -0400},
  307. edition = {5th},
  308. publisher = {O'Reilly},
  309. title = {Learning Python},
  310. year = {2013}}
  311. @book{Sweigart:2019vn,
  312. author = {Al Sweigart},
  313. date-added = {2021-06-10 10:28:09 -0400},
  314. date-modified = {2021-06-10 10:29:04 -0400},
  315. publisher = {No Starch Press},
  316. title = {Automate the Boring Stuff with Python},
  317. year = {2019}}
  318. @book{Barry:2016vj,
  319. author = {Paul Barry},
  320. date-added = {2021-06-10 10:24:32 -0400},
  321. date-modified = {2021-06-10 10:25:03 -0400},
  322. publisher = {O'Reilly},
  323. title = {Head First Python},
  324. year = {2016}}
  325. @book{Matthes:2019vs,
  326. author = {Eric Matthes},
  327. date-added = {2021-06-10 10:22:38 -0400},
  328. date-modified = {2021-06-10 10:23:25 -0400},
  329. edition = {2nd},
  330. publisher = {No Starch Press},
  331. title = {Python Crash Course},
  332. year = {2019}}
  333. @book{Kernighan:1988nx,
  334. address = {Upper Saddle River, NJ, USA},
  335. author = {Brian W. Kernighan and Dennis M. Ritchie},
  336. publisher = {Prentice Hall Press},
  337. title = {The C programming language},
  338. year = {1988},
  339. isbn = {0-13-110362-8},
  340. }
  341. @book{Dybvig:1987aa,
  342. address = {Upper Saddle River, NJ, USA},
  343. author = {Dybvig, R. Kent},
  344. publisher = {Prentice-Hall, Inc.},
  345. title = {The SCHEME Programming Language},
  346. year = {1987},
  347. isbn = {0-13-791864-X},
  348. }
  349. @book{Abelson:1996uq,
  350. address = {Cambridge, MA, USA},
  351. author = {Abelson, Harold and Sussman, Gerald J.},
  352. edition = {2nd},
  353. publisher = {MIT Press},
  354. title = {Structure and Interpretation of Computer Programs},
  355. year = {1996},
  356. isbn = {0262011530},
  357. }
  358. @book{Friedman:1996aa,
  359. address = {Cambridge, MA, USA},
  360. author = {Friedman, Daniel P. and Felleisen, Matthias},
  361. publisher = {MIT Press},
  362. title = {The Little Schemer (4th Ed.)},
  363. year = {1996},
  364. isbn = {0-262-56099-2},
  365. }
  366. @book{Felleisen:2001aa,
  367. address = {Cambridge, MA, USA},
  368. author = {Felleisen, Matthias and Findler, Robert Bruce and
  369. Flatt, Matthew and Krishnamurthi, Shriram},
  370. publisher = {MIT Press},
  371. title = {How to Design Programs: An Introduction to
  372. Programming and Computing},
  373. year = {2001},
  374. isbn = {0-262-06218-6},
  375. }
  376. @book{Felleisen:2013aa,
  377. address = {San Francisco, CA, USA},
  378. author = {Felleisen, Matthias and Conrad, M.D. Barski and
  379. Horn, David Van and
  380. Eight Students of Northeastern University},
  381. publisher = {No Starch Press},
  382. title = {Realm of Racket: Learn to Program, One Game at a
  383. Time!},
  384. year = {2013},
  385. isbn = {1593274912},
  386. }
  387. @techreport{Flatt:2014aa,
  388. author = {Matthew Flatt and Robert Bruce Findler and PLT},
  389. institution = {PLT Inc.},
  390. number = {6.0},
  391. title = {The Racket Guide},
  392. year = {2014},
  393. }
  394. @manual{Intel:2015aa,
  395. author = {Intel},
  396. institution = {Intel},
  397. month = dec,
  398. title = {Intel 64 and IA-32 Architectures Software Developer's
  399. Manual Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B, 3C
  400. and 3D},
  401. year = {2015},
  402. }
  403. @book{Bryant:2010aa,
  404. address = {USA},
  405. author = {Bryant, Randal E. and O'Hallaron, David R.},
  406. edition = {2nd},
  407. publisher = {Addison-Wesley Publishing Company},
  408. title = {Computer Systems: A Programmer's Perspective},
  409. year = {2010},
  410. isbn = {0136108040},
  411. }
  412. @manual{Bryant:2005aa,
  413. author = {Randal E. Bryant and David R. O'Hallaron},
  414. month = sep,
  415. organization = {Carnegie Mellon University},
  416. title = {x86-64 Machine-Level Programming},
  417. year = {2005},
  418. }
  419. @manual{Matz:2013aa,
  420. author = {Michael Matz and Jan Hubicka and Andreas Jaeger and
  421. Mark Mitchell},
  422. month = oct,
  423. title = {System V Application Binary Interface, AMD64
  424. Architecture Processor Supplement},
  425. year = {2013},
  426. }
  427. @misc{Microsoft:2018aa,
  428. author = {Microsoft},
  429. howpublished =
  430. {\url{https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/x64-architecture}},
  431. month = mar,
  432. title = {x64 Architecture},
  433. year = {2018},
  434. }
  435. @misc{Microsoft:2020aa,
  436. author = {Microsoft},
  437. howpublished =
  438. {\url{https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention}},
  439. month = jul,
  440. title = {x64 calling convention},
  441. year = {2020},
  442. }
  443. @inproceedings{Dybvig:2006aa,
  444. address = {New York, NY, USA},
  445. author = {Dybvig, R. Kent},
  446. booktitle = {Proceedings of the Eleventh ACM SIGPLAN International
  447. Conference on Functional Programming},
  448. pages = {1--12},
  449. publisher = {ACM},
  450. series = {ICFP '06},
  451. title = {The Development of {Chez} {Scheme}},
  452. year = {2006},
  453. doi = {10.1145/1159803.1159805},
  454. isbn = {1-59593-309-3},
  455. url = {http://doi.acm.org/10.1145/1159803.1159805},
  456. }
  457. @inproceedings{Sarkar:2004fk,
  458. author = {Dipanwita Sarkar and Oscar Waddell and
  459. R. Kent Dybvig},
  460. booktitle = {ICFP '04: Proceedings of the ninth ACM SIGPLAN
  461. international conference on Functional programming},
  462. pages = {201--212},
  463. publisher = {ACM Press},
  464. title = {A nanopass infrastructure for compiler education},
  465. year = {2004},
  466. isbn = {1-58113-905-5},
  467. }
  468. @phdthesis{Keep:2012aa,
  469. author = {Andrew W. Keep},
  470. month = dec,
  471. school = {Indiana University},
  472. title = {A Nanopass Framework for Commercial Compiler
  473. Development},
  474. year = {2012},
  475. }
  476. @techreport{Dybvig:2010aa,
  477. author = {R. Kent Dybvig and Andrew Keep},
  478. institution = {Indiana University},
  479. title = {P523 Compiler Assignments},
  480. year = {2010},
  481. }
  482. @inproceedings{Ghuloum:2006bh,
  483. author = {Abdulaziz Ghuloum},
  484. booktitle = {Scheme and Functional Programming Workshop},
  485. title = {An Incremental Approach to Compiler Construction},
  486. year = {2006},
  487. }
  488. @book{Aho:1986qf,
  489. address = {Boston, MA, USA},
  490. author = {Alfred V. Aho and Ravi Sethi and Jeffrey D. Ullman},
  491. publisher = {Addison-Wesley Longman Publishing Co., Inc.},
  492. title = {Compilers: principles, techniques, and tools},
  493. year = {1986},
  494. isbn = {0-201-10088-6},
  495. }
  496. @article{Backus:1960aa,
  497. address = {New York, NY, USA},
  498. author = {Backus, J. W. and Bauer, F. L. and Green, J. and
  499. Katz, C. and McCarthy, J. and Perlis, A. J. and
  500. Rutishauser, H. and Samelson, K. and Vauquois, B. and
  501. Wegstein, J. H. and van Wijngaarden, A. and
  502. Woodger, M.},
  503. editor = {Naur, Peter},
  504. journal = {Commun. ACM},
  505. month = may,
  506. number = {5},
  507. pages = {299--314},
  508. publisher = {ACM},
  509. title = {Report on the Algorithmic Language ALGOL 60},
  510. volume = {3},
  511. year = {1960},
  512. doi = {10.1145/367236.367262},
  513. issn = {0001-0782},
  514. url = {http://doi.acm.org/10.1145/367236.367262},
  515. }
  516. @article{Knuth:1964aa,
  517. address = {New York, NY, USA},
  518. author = {Knuth, Donald E.},
  519. journal = {Commun. ACM},
  520. month = dec,
  521. number = {12},
  522. pages = {735--736},
  523. publisher = {ACM},
  524. title = {Backus Normal Form vs. Backus Naur Form},
  525. volume = {7},
  526. year = {1964},
  527. doi = {10.1145/355588.365140},
  528. issn = {0001-0782},
  529. url = {http://doi.acm.org/10.1145/355588.365140},
  530. }
  531. @article{SPERBER:2009aa,
  532. author = {Sperber, Michael and DYBVIG,R. KENT and FLATT,MATTHEW and
  533. VAN STRAATEN,ANTON and FINDLER,ROBBY and
  534. MATTHEWS,JACOB},
  535. journal = {Journal of Functional Programming},
  536. month = {8},
  537. pages = {1--301},
  538. title = {Revised$^6$ Report on the Algorithmic Language
  539. Scheme},
  540. volume = {19},
  541. year = {2009},
  542. doi = {10.1017/S0956796809990074},
  543. issn = {1469-7653},
  544. url = {http://journals.cambridge.org/article_S0956796809990074},
  545. }
  546. @techreport{plt-tr,
  547. author = {Matthew Flatt and PLT},
  548. institution = {PLT Inc.},
  549. note = {\url{http://docs.racket-lang.org/reference/index.html}},
  550. title = {The {R}acket Reference~6.0},
  551. year = {2014},
  552. }
  553. @inproceedings{reynolds72:_def_interp,
  554. author = {John C. Reynolds},
  555. booktitle = {{ACM} '72: Proceedings of the {ACM} Annual
  556. Conference},
  557. pages = {717--740},
  558. publisher = {{ACM} Press},
  559. title = {Definitional interpreters for higher-order
  560. programming languages},
  561. year = {1972},
  562. }
  563. @book{Jones:1993uq,
  564. address = {Upper Saddle River, NJ, USA},
  565. author = {Neil D. Jones and Carsten K. Gomard and
  566. Peter Sestoft},
  567. publisher = {Prentice-Hall, Inc.},
  568. title = {Partial evaluation and automatic program generation},
  569. year = {1993},
  570. isbn = {0-13-020249-5},
  571. }
  572. @techreport{Danvy:1991fk,
  573. author = {Olivier Danvy},
  574. institution = {Kansas State University},
  575. month = dec,
  576. number = {CIS-92-02},
  577. title = {Three Steps for the {CPS} Transformation},
  578. year = {1991},
  579. }
  580. @inproceedings{Flanagan:1993cg,
  581. author = {Cormac Flanagan and Amr Sabry and Bruce F. Duba and
  582. Matthias Felleisen},
  583. booktitle = {Conference on {P}rogramming {L}anguage {D}esign and
  584. {I}mplementation},
  585. month = jun,
  586. pages = {502--514},
  587. series = {PLDI},
  588. title = {The essence of compiling with continuations},
  589. year = {1993},
  590. }
  591. @book{Cooper:2011aa,
  592. author = {Keith Cooper and Linda Torczon},
  593. edition = {2nd},
  594. publisher = {Morgan Kaufmann},
  595. title = {Engineering a Compiler},
  596. year = {2011},
  597. }
  598. @book{Appel:2003fk,
  599. author = {Andrew W. Appel and Jens Palsberg},
  600. publisher = {Cambridge University Press},
  601. title = {Modern Compiler Implementation in Java},
  602. year = {2003},
  603. isbn = {052182060X},
  604. }
  605. @book{Balakrishnan:1996ve,
  606. author = {Balakrishnan, V. K.},
  607. publisher = {Dover Publications, Incorporated},
  608. title = {Introductory Discrete Mathematics},
  609. year = {1996},
  610. isbn = {0486691152},
  611. }
  612. @book{Rosen:2002bh,
  613. author = {Rosen, Kenneth H.},
  614. publisher = {McGraw-Hill Higher Education},
  615. title = {Discrete Mathematics and Its Applications},
  616. year = {2002},
  617. isbn = {0072474777},
  618. }
  619. @article{Brelaz:1979eu,
  620. address = {New York, NY, USA},
  621. author = {Br\'{e}laz, Daniel},
  622. journal = {Commun. ACM},
  623. number = {4},
  624. pages = {251--256},
  625. publisher = {ACM},
  626. title = {New methods to color the vertices of a graph},
  627. volume = {22},
  628. year = {1979},
  629. issn = {0001-0782},
  630. }
  631. @phdthesis{Gebremedhin:1999fk,
  632. author = {Assefaw Hadish Gebremedhin},
  633. school = {University of Bergen},
  634. title = {Parallel Graph Coloring},
  635. year = {1999},
  636. }
  637. @article{Omari:2006uq,
  638. author = {Hussein Al-Omari and Khair Eddin Sabri},
  639. journal = {Journal of Mathematics and Statistics},
  640. number = {4},
  641. title = {New Graph Coloring Algorithms},
  642. volume = {2},
  643. year = {2006},
  644. }
  645. @article{Horwitz:1966aa,
  646. address = {New York, NY, USA},
  647. author = {Horwitz, L. P. and Karp, R. M. and Miller, R. E. and
  648. Winograd, S.},
  649. journal = {J. ACM},
  650. month = jan,
  651. number = {1},
  652. pages = {43--61},
  653. publisher = {Association for Computing Machinery},
  654. title = {Index Register Allocation},
  655. volume = {13},
  656. year = {1966},
  657. doi = {10.1145/321312.321317},
  658. issn = {0004-5411},
  659. url = {https://doi.org/10.1145/321312.321317},
  660. }
  661. @inbook{Backus:1978aa,
  662. address = {New York, NY, USA},
  663. author = {Backus, John},
  664. booktitle = {History of Programming Languages},
  665. pages = {25--74},
  666. publisher = {Association for Computing Machinery},
  667. title = {The History of Fortran I, II, and III},
  668. year = {1978},
  669. isbn = {0127450408},
  670. url = {https://doi.org/10.1145/800025.1198345},
  671. }
  672. @article{Chaitin:1981vl,
  673. author = {Gregory J. Chaitin and Marc A. Auslander and
  674. Ashok K. Chandra and John Cocke and Martin E. Hopkins and
  675. Peter W. Markstein},
  676. journal = {Computer Languages},
  677. pages = {47-57},
  678. title = {Register allocation via coloring},
  679. volume = {6},
  680. year = {1981},
  681. }
  682. @article{Kempe:1879aa,
  683. author = {A. B. Kempe},
  684. journal = {American Journal of Mathematics},
  685. number = {3},
  686. pages = {193--200},
  687. publisher = {Johns Hopkins University Press},
  688. title = {On the Geographical Problem of the Four Colours},
  689. volume = {2},
  690. year = {1879},
  691. issn = {00029327, 10806377},
  692. url = {http://www.jstor.org/stable/2369235},
  693. }
  694. @inproceedings{Chaitin:1982vn,
  695. author = {G. J. Chaitin},
  696. booktitle = {SIGPLAN '82: Proceedings of the 1982 {SIGPLAN}
  697. Symposium on Compiler Construction},
  698. pages = {98--105},
  699. publisher = {ACM Press},
  700. title = {Register allocation \& spilling via graph coloring},
  701. year = {1982},
  702. isbn = {0-89791-074-5},
  703. }
  704. @article{Briggs:1994kx,
  705. author = {Preston Briggs and Keith D. Cooper and Linda Torczon},
  706. journal = {ACM Trans. Program. Lang. Syst.},
  707. number = {3},
  708. pages = {428--455},
  709. publisher = {ACM Press},
  710. title = {Improvements to graph coloring register allocation},
  711. volume = {16},
  712. year = {1994},
  713. issn = {0164-0925},
  714. }
  715. @article{George:1996aa,
  716. address = {New York, NY, USA},
  717. author = {George, Lal and Appel, Andrew W.},
  718. journal = {ACM Trans. Program. Lang. Syst.},
  719. month = may,
  720. number = {3},
  721. pages = {300--324},
  722. publisher = {Association for Computing Machinery},
  723. title = {Iterated Register Coalescing},
  724. volume = {18},
  725. year = {1996},
  726. doi = {10.1145/229542.229546},
  727. issn = {0164-0925},
  728. url = {https://doi.org/10.1145/229542.229546},
  729. }
  730. @incollection{Matula:1972aa,
  731. author = {David W. Matula and George Marble and
  732. Joel D. Isaacson},
  733. booktitle = {Graph Theory and Computing},
  734. editor = {RONALD C. READ},
  735. pages = {109 - 122},
  736. publisher = {Academic Press},
  737. title = {GRAPH COLORING ALGORITHMS††This research was
  738. supported in part by the Advanced Research Projects
  739. Agency of the Department of Defense under contract
  740. SD-302 and by the National Science Foundation under
  741. contract GJ-446.},
  742. year = {1972},
  743. doi = {https://doi.org/10.1016/B978-1-4832-3187-7.50015-5},
  744. isbn = {978-1-4832-3187-7},
  745. url = {http://www.sciencedirect.com/science/article/pii/
  746. B9781483231877500155},
  747. }
  748. @inproceedings{Chow:1984ys,
  749. author = {Frederick Chow and John Hennessy},
  750. booktitle = {SIGPLAN '84: Proceedings of the 1984 SIGPLAN
  751. symposium on Compiler construction},
  752. pages = {222--232},
  753. publisher = {ACM Press},
  754. title = {Register allocation by priority-based coloring},
  755. year = {1984},
  756. isbn = {0-89791-139-3},
  757. }
  758. @inproceedings{Cooper:1998ly,
  759. author = {Keith D. Cooper and L. Taylor Simpson},
  760. booktitle = {Compiler Construction},
  761. title = {Live range splitting in a graph coloring register
  762. allocator},
  763. year = {1998},
  764. }
  765. @inproceedings{Palsberg:2007si,
  766. address = {Darlinghurst, Australia, Australia},
  767. author = {Palsberg, Jens},
  768. booktitle = {CATS '07: Proceedings of the thirteenth Australasian
  769. symposium on Theory of computing},
  770. pages = {3--3},
  771. publisher = {Australian Computer Society, Inc.},
  772. title = {Register allocation via coloring of chordal graphs},
  773. year = {2007},
  774. isbn = {1-920-68246-5},
  775. }
  776. @article{Poletto:1999uq,
  777. author = {Massimiliano Poletto and Vivek Sarkar},
  778. journal = {ACM Trans. Program. Lang. Syst.},
  779. number = {5},
  780. pages = {895--913},
  781. publisher = {ACM Press},
  782. title = {Linear scan register allocation},
  783. volume = {21},
  784. year = {1999},
  785. issn = {0164-0925},
  786. }
  787. @inproceedings{Allen:1970uq,
  788. author = {Frances E. Allen},
  789. booktitle = {Proceedings of a symposium on Compiler optimization},
  790. pages = {1--19},
  791. title = {Control flow analysis},
  792. year = {1970},
  793. }
  794. @techreport{Friedman:1976aa,
  795. author = {Daniel P. Friedman and David S. Wise},
  796. institution = {Indiana University},
  797. number = {TR44},
  798. title = {Cons should not evaluate its arguments},
  799. year = {1976},
  800. }
  801. @book{Pierce:2002hj,
  802. author = {Benjamin C. Pierce},
  803. publisher = {MIT Press},
  804. title = {Types and {P}rogramming {L}anguages},
  805. year = {2002},
  806. }
  807. @article{Lieberman:1983aa,
  808. address = {New York, NY, USA},
  809. author = {Lieberman, Henry and Hewitt, Carl},
  810. journal = {Commun. ACM},
  811. month = jun,
  812. number = {6},
  813. pages = {419--429},
  814. publisher = {ACM},
  815. title = {A Real-time Garbage Collector Based on the Lifetimes
  816. of Objects},
  817. volume = {26},
  818. year = {1983},
  819. doi = {10.1145/358141.358147},
  820. issn = {0001-0782},
  821. url = {http://doi.acm.org/10.1145/358141.358147},
  822. }
  823. @inproceedings{Ungar:1984aa,
  824. address = {New York, NY, USA},
  825. author = {Ungar, David},
  826. booktitle = {Proceedings of the First ACM SIGSOFT/SIGPLAN Software
  827. Engineering Symposium on Practical Software
  828. Development Environments},
  829. pages = {157--167},
  830. publisher = {ACM},
  831. series = {SDE 1},
  832. title = {Generation Scavenging: A Non-disruptive High
  833. Performance Storage Reclamation Algorithm},
  834. year = {1984},
  835. doi = {10.1145/800020.808261},
  836. isbn = {0-89791-131-8},
  837. url = {http://doi.acm.org/10.1145/800020.808261},
  838. }
  839. @book{Jones:1996aa,
  840. address = {New York, NY, USA},
  841. author = {Jones, Richard and Lins, Rafael},
  842. publisher = {John Wiley \& Sons, Inc.},
  843. title = {Garbage Collection: Algorithms for Automatic Dynamic
  844. Memory Management},
  845. year = {1996},
  846. isbn = {0-471-94148-4},
  847. }
  848. @inproceedings{Detlefs:2004aa,
  849. address = {New York, NY, USA},
  850. author = {Detlefs, David and Flood, Christine and Heller, Steve and
  851. Printezis, Tony},
  852. booktitle = {Proceedings of the 4th International Symposium on
  853. Memory Management},
  854. pages = {37--48},
  855. publisher = {ACM},
  856. series = {ISMM '04},
  857. title = {Garbage-first Garbage Collection},
  858. year = {2004},
  859. doi = {10.1145/1029873.1029879},
  860. isbn = {1-58113-945-4},
  861. url = {http://doi.acm.org/10.1145/1029873.1029879},
  862. }
  863. @inproceedings{Tene:2011kx,
  864. address = {New York, NY, USA},
  865. author = {Tene, Gil and Iyengar, Balaji and Wolf, Michael},
  866. booktitle = {Proceedings of the international symposium on Memory
  867. management},
  868. pages = {79--88},
  869. publisher = {ACM},
  870. series = {ISMM '11},
  871. title = {C4: the continuously concurrent compacting collector},
  872. year = {2011},
  873. doi = {http://doi.acm.org/10.1145/1993478.1993491},
  874. }
  875. @incollection{Wilson:1992fk,
  876. author = {Wilson, Paul},
  877. booktitle = {Memory Management},
  878. editor = {Bekkers, Yves and Cohen, Jacques},
  879. note = {10.1007/BFb0017182},
  880. pages = {1-42},
  881. publisher = {Springer Berlin / Heidelberg},
  882. series = {Lecture Notes in Computer Science},
  883. title = {Uniprocessor garbage collection techniques},
  884. volume = {637},
  885. year = {1992},
  886. url = {http://dx.doi.org/10.1007/BFb0017182},
  887. }
  888. @article{Cheney:1970aa,
  889. author = {C. J. Cheney},
  890. journal = {Communications of the {ACM}},
  891. number = {11},
  892. title = {A Nonrecursive List Compacting Algoirthm},
  893. volume = {13},
  894. year = {1970},
  895. }
  896. @article{McCarthy:1960dz,
  897. address = {New York, NY, USA},
  898. author = {McCarthy, John},
  899. journal = {Commun. ACM},
  900. number = {4},
  901. pages = {184--195},
  902. publisher = {ACM},
  903. title = {Recursive functions of symbolic expressions and their
  904. computation by machine, Part I},
  905. volume = {3},
  906. year = {1960},
  907. issn = {0001-0782},
  908. }
  909. @article{Collins:1960aa,
  910. address = {New York, NY, USA},
  911. author = {Collins, George E.},
  912. journal = {Commun. ACM},
  913. month = dec,
  914. number = {12},
  915. pages = {655--657},
  916. publisher = {Association for Computing Machinery},
  917. title = {A Method for Overlapping and Erasure of Lists},
  918. volume = {3},
  919. year = {1960},
  920. doi = {10.1145/367487.367501},
  921. issn = {0001-0782},
  922. url = {https://doi.org/10.1145/367487.367501},
  923. }
  924. @inproceedings{Blackburn:2004aa,
  925. address = {New York, NY, USA},
  926. author = {Blackburn, Stephen M. and Cheng, Perry and
  927. McKinley, Kathryn S.},
  928. booktitle = {Proceedings of the Joint International Conference on
  929. Measurement and Modeling of Computer Systems},
  930. pages = {25--36},
  931. publisher = {ACM},
  932. series = {SIGMETRICS '04/Performance '04},
  933. title = {Myths and Realities: The Performance Impact of
  934. Garbage Collection},
  935. year = {2004},
  936. doi = {10.1145/1005686.1005693},
  937. isbn = {1-58113-873-3},
  938. url = {http://doi.acm.org/10.1145/1005686.1005693},
  939. }
  940. @book{Jones:2011aa,
  941. author = {Jones, Richard and Hosking, Antony and Moss, Eliot},
  942. edition = {1st},
  943. publisher = {Chapman \& Hall/CRC},
  944. title = {The Garbage Collection Handbook: The Art of Automatic
  945. Memory Management},
  946. year = {2011},
  947. isbn = {1420082795},
  948. }
  949. @inproceedings{Shahriyar:2013aa,
  950. author = {Shahriyar, Rifat and Blackburn, Stephen M. and
  951. Yang, Xi and McKinley, Kathryn M.},
  952. booktitle = {OOPSLA '13: Proceeding of the 24th ACM SIGPLAN
  953. conference on Object oriented programming systems
  954. languages and applications},
  955. month = oct,
  956. title = {Taking Off the Gloves with Reference Counting Immix},
  957. year = {2013},
  958. doi = {http://dx.doi.org/10.1145/2509136.2509527},
  959. }
  960. @inproceedings{Cutler:2015aa,
  961. address = {New York, NY, USA},
  962. author = {Cutler, Cody and Morris, Robert},
  963. booktitle = {Proceedings of the 2015 International Symposium on
  964. Memory Management},
  965. pages = {131--142},
  966. publisher = {ACM},
  967. series = {ISMM '15},
  968. title = {Reducing Pause Times with Clustered Collection},
  969. year = {2015},
  970. doi = {10.1145/2754169.2754184},
  971. isbn = {978-1-4503-3589-8},
  972. url = {http://doi.acm.org/10.1145/2754169.2754184},
  973. }
  974. @inproceedings{Shidal:2015aa,
  975. address = {New York, NY, USA},
  976. author = {Shidal, Jonathan and Spilo, Ari J. and
  977. Scheid, Paul T. and Cytron, Ron K. and
  978. Kavi, Krishna M.},
  979. booktitle = {Proceedings of the 2015 International Symposium on
  980. Memory Management},
  981. pages = {118--130},
  982. publisher = {ACM},
  983. series = {ISMM '15},
  984. title = {Recycling Trash in Cache},
  985. year = {2015},
  986. doi = {10.1145/2754169.2754183},
  987. isbn = {978-1-4503-3589-8},
  988. url = {http://doi.acm.org/10.1145/2754169.2754183},
  989. }
  990. @inproceedings{Osterlund:2016aa,
  991. address = {New York, NY, USA},
  992. author = {\"{O}sterlund, Erik and L\"{o}we, Welf},
  993. booktitle = {Proceedings of the 2016 ACM SIGPLAN International
  994. Symposium on Memory Management},
  995. pages = {1--12},
  996. publisher = {Association for Computing Machinery},
  997. series = {ISMM 2016},
  998. title = {Block-Free Concurrent GC: Stack Scanning and Copying},
  999. year = {2016},
  1000. doi = {10.1145/2926697.2926701},
  1001. isbn = {9781450343176},
  1002. url = {https://doi.org/10.1145/2926697.2926701},
  1003. }
  1004. @inproceedings{Jacek:2019aa,
  1005. address = {New York, NY, USA},
  1006. author = {Jacek, Nicholas and Moss, J. Eliot B.},
  1007. booktitle = {Proceedings of the 2019 ACM SIGPLAN International
  1008. Symposium on Memory Management},
  1009. pages = {53--63},
  1010. publisher = {Association for Computing Machinery},
  1011. series = {ISMM 2019},
  1012. title = {Learning When to Garbage Collect with Random Forests},
  1013. year = {2019},
  1014. doi = {10.1145/3315573.3329983},
  1015. isbn = {9781450367226},
  1016. url = {https://doi.org/10.1145/3315573.3329983},
  1017. }
  1018. @inproceedings{Gamari:2020aa,
  1019. address = {New York, NY, USA},
  1020. author = {Gamari, Ben and Dietz, Laura},
  1021. booktitle = {Proceedings of the 2020 ACM SIGPLAN International
  1022. Symposium on Memory Management},
  1023. pages = {87--99},
  1024. publisher = {Association for Computing Machinery},
  1025. series = {ISMM 2020},
  1026. title = {Alligator Collector: A Latency-Optimized Garbage
  1027. Collector for Functional Programming Languages},
  1028. year = {2020},
  1029. doi = {10.1145/3381898.3397214},
  1030. isbn = {9781450375665},
  1031. url = {https://doi.org/10.1145/3381898.3397214},
  1032. }
  1033. @inproceedings{Moore:1959aa,
  1034. author = {E.F. Moore},
  1035. booktitle = {Proceedings of an International Symposium on the
  1036. Theory of Switching},
  1037. month = apr,
  1038. title = {The shortest path through a maze},
  1039. year = {1959},
  1040. }
  1041. @book{Cormen:2001uq,
  1042. author = {Thomas H. Cormen and Clifford Stein and
  1043. Ronald L. Rivest and Charles E. Leiserson},
  1044. publisher = {McGraw-Hill Higher Education},
  1045. title = {Introduction to Algorithms},
  1046. year = {2001},
  1047. isbn = {0070131511},
  1048. }
  1049. @techreport{Steele:1977ab,
  1050. author = {Steele, Jr., Guy L.},
  1051. institution = {MIT Artificial Intelligence Lab},
  1052. month = sep,
  1053. number = {420},
  1054. type = {AI Memo},
  1055. title = {Data Representations in PDP-10 Maclisp},
  1056. year = {1977},
  1057. }
  1058. @article{Appel:1989aa,
  1059. author = {Appel, Andrew W.},
  1060. journal = {LISP and Symbolic Computation},
  1061. number = {2},
  1062. pages = {153-162},
  1063. publisher = {Kluwer Academic Publishers},
  1064. title = {Runtime tags aren't necessary},
  1065. volume = {2},
  1066. year = {1989},
  1067. doi = {10.1007/BF01811537},
  1068. issn = {0892-4635},
  1069. language = {English},
  1070. url = {http://dx.doi.org/10.1007/BF01811537},
  1071. }
  1072. @inproceedings{Goldberg:1991aa,
  1073. address = {New York, NY, USA},
  1074. author = {Goldberg, Benjamin},
  1075. booktitle = {Proceedings of the ACM SIGPLAN 1991 Conference on
  1076. Programming Language Design and Implementation},
  1077. pages = {165--176},
  1078. publisher = {ACM},
  1079. series = {PLDI '91},
  1080. title = {Tag-free Garbage Collection for Strongly Typed
  1081. Programming Languages},
  1082. year = {1991},
  1083. doi = {10.1145/113445.113460},
  1084. isbn = {0-89791-428-7},
  1085. url = {http://doi.acm.org/10.1145/113445.113460},
  1086. }
  1087. @inproceedings{Diwan:1992aa,
  1088. address = {New York, NY, USA},
  1089. author = {Diwan, Amer and Moss, Eliot and Hudson, Richard},
  1090. booktitle = {Proceedings of the ACM SIGPLAN 1992 Conference on
  1091. Programming Language Design and Implementation},
  1092. pages = {273--282},
  1093. publisher = {ACM},
  1094. series = {PLDI '92},
  1095. title = {Compiler Support for Garbage Collection in a
  1096. Statically Typed Language},
  1097. year = {1992},
  1098. doi = {10.1145/143095.143140},
  1099. isbn = {0-89791-475-9},
  1100. url = {http://doi.acm.org/10.1145/143095.143140},
  1101. }
  1102. @inbook{Siebert:2001aa,
  1103. address = {Berlin, Heidelberg},
  1104. author = {Siebert, Fridtjof},
  1105. chapter = {Constant-Time Root Scanning for Deterministic Garbage
  1106. Collection},
  1107. editor = {Wilhelm, Reinhard},
  1108. pages = {304--318},
  1109. publisher = {Springer Berlin Heidelberg},
  1110. title = {Compiler Construction: 10th International Conference,
  1111. CC 2001 Held as Part of the Joint European
  1112. Conferences on Theory and Practice of Software, ETAPS
  1113. 2001 Genova, Italy, April 2--6, 2001 Proceedings},
  1114. year = {2001},
  1115. doi = {10.1007/3-540-45306-7_21},
  1116. isbn = {978-3-540-45306-2},
  1117. url = {http://dx.doi.org/10.1007/3-540-45306-7_21},
  1118. }
  1119. @inproceedings{Henderson:2002aa,
  1120. address = {New York, NY, USA},
  1121. author = {Henderson, Fergus},
  1122. booktitle = {Proceedings of the 3rd International Symposium on
  1123. Memory Management},
  1124. pages = {150--156},
  1125. publisher = {ACM},
  1126. series = {ISMM '02},
  1127. title = {Accurate Garbage Collection in an Uncooperative
  1128. Environment},
  1129. year = {2002},
  1130. doi = {10.1145/512429.512449},
  1131. isbn = {1-58113-539-4},
  1132. url = {http://doi.acm.org/10.1145/512429.512449},
  1133. }
  1134. @article{Baker:2009aa,
  1135. address = {Chichester, UK},
  1136. author = {Baker, J. and Cunei, A. and Kalibera, T. and
  1137. Pizlo, F. and Vitek, J.},
  1138. journal = {Concurr. Comput. : Pract. Exper.},
  1139. month = aug,
  1140. number = {12},
  1141. pages = {1572--1606},
  1142. publisher = {John Wiley and Sons Ltd.},
  1143. title = {Accurate Garbage Collection in Uncooperative
  1144. Environments Revisited},
  1145. volume = {21},
  1146. year = {2009},
  1147. doi = {10.1002/cpe.v21:12},
  1148. issn = {1532-0626},
  1149. url = {http://dx.doi.org/10.1002/cpe.v21:12},
  1150. }
  1151. @techreport{Dijkstra:1982aa,
  1152. author = {E. W. Dijkstra},
  1153. institution = {University of Texas at Austin},
  1154. number = {EWD831},
  1155. title = {Why numbering should start at zero},
  1156. year = {1982},
  1157. }
  1158. @article{Kelsey:1998di,
  1159. author = {R. Kelsey and W. Clinger and J. Rees (eds.)},
  1160. journal = {Higher-Order and Symbolic Computation},
  1161. month = aug,
  1162. number = {1},
  1163. title = {Revised$^5$ Report on the Algorithmic Language
  1164. Scheme},
  1165. volume = {11},
  1166. year = {1998},
  1167. }
  1168. @techreport{Cardelli:1983aa,
  1169. author = {Luca Cardelli},
  1170. institution = {AT\&T Bell Laboratories},
  1171. number = {TR-107},
  1172. title = {The Functional Abstract Machine},
  1173. year = {1983},
  1174. }
  1175. @inproceedings{Minamide:1996ys,
  1176. address = {New York, NY, USA},
  1177. author = {Minamide, Yasuhiko and Morrisett, Greg and
  1178. Harper, Robert},
  1179. booktitle = {Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium
  1180. on Principles of programming languages},
  1181. pages = {271--283},
  1182. publisher = {ACM},
  1183. series = {POPL '96},
  1184. title = {Typed closure conversion},
  1185. year = {1996},
  1186. doi = {http://doi.acm.org/10.1145/237721.237791},
  1187. isbn = {0-89791-769-3},
  1188. url = {http://doi.acm.org/10.1145/237721.237791},
  1189. }
  1190. @inproceedings{Shivers:1988aa,
  1191. address = {New York, NY, USA},
  1192. author = {Shivers, O.},
  1193. booktitle = {Proceedings of the ACM SIGPLAN 1988 Conference on
  1194. Programming Language Design and Implementation},
  1195. pages = {164--174},
  1196. publisher = {ACM},
  1197. series = {PLDI '88},
  1198. title = {Control Flow Analysis in {Scheme}},
  1199. year = {1988},
  1200. }
  1201. @inproceedings{Gilray:2016aa,
  1202. address = {New York, NY, USA},
  1203. author = {Gilray, Thomas and Lyde, Steven and Adams, Michael D. and
  1204. Might, Matthew and Van Horn, David},
  1205. booktitle = {Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT
  1206. Symposium on Principles of Programming Languages},
  1207. pages = {691--704},
  1208. publisher = {Association for Computing Machinery},
  1209. series = {POPL '16},
  1210. title = {Pushdown Control-Flow Analysis for Free},
  1211. year = {2016},
  1212. doi = {10.1145/2837614.2837631},
  1213. isbn = {9781450335492},
  1214. url = {https://doi.org/10.1145/2837614.2837631},
  1215. }
  1216. @inproceedings{Keep:2012ab,
  1217. author = {Keep, Andrew W. and Hearn, Alex and Dybvig, R. Kent},
  1218. booktitle = {Proceedings of the 2012 Workshop on Scheme and
  1219. Functional Programming},
  1220. series = {Scheme '12},
  1221. title = {Optimizing Closures in {O}(0)-time},
  1222. year = {2012},
  1223. }
  1224. @article{Church:1932aa,
  1225. author = {Church, Alonzo},
  1226. journal = {Annals of Mathematics},
  1227. number = {2},
  1228. pages = {pp. 346-366},
  1229. publisher = {Annals of Mathematics},
  1230. series = {Second Series},
  1231. title = {A Set of Postulates for the Foundation of Logic},
  1232. volume = {33},
  1233. year = {1932},
  1234. issn = {0003486X},
  1235. language = {English},
  1236. url = {http://www.jstor.org/stable/1968337},
  1237. }
  1238. @techreport{Guy-L.-Steele:1978yq,
  1239. address = {Cambridge, MA, USA},
  1240. author = {Guy L. Steele},
  1241. publisher = {Massachusetts Institute of Technology},
  1242. title = {Rabbit: A Compiler for {Scheme}},
  1243. year = {1978},
  1244. }
  1245. @inproceedings{Cardelli:1984aa,
  1246. author = {Cardelli, Luca},
  1247. booktitle = {ACM Symposium on LISP and Functional Programming},
  1248. pages = {208--217},
  1249. publisher = {ACM},
  1250. series = {LFP '84},
  1251. title = {Compiling a Functional Language},
  1252. year = {1984},
  1253. }
  1254. @inproceedings{Gordon:1978aa,
  1255. address = {New York, NY, USA},
  1256. author = {Gordon, M. and Milner, R. and Morris, L. and
  1257. Newey, M. and Wadsworth, C.},
  1258. booktitle = {Proceedings of the 5th ACM SIGACT-SIGPLAN Symposium
  1259. on Principles of Programming Languages},
  1260. pages = {119--130},
  1261. publisher = {Association for Computing Machinery},
  1262. series = {POPL '78},
  1263. title = {A Metalanguage for Interactive Proof in LCF},
  1264. year = {1978},
  1265. doi = {10.1145/512760.512773},
  1266. isbn = {9781450373487},
  1267. url = {https://doi.org/10.1145/512760.512773},
  1268. }
  1269. @book{Milner:1990fk,
  1270. author = {Robin Milner and Mads Tofte and Robert Harper},
  1271. publisher = {MIT Press},
  1272. title = {The definition of Standard ML},
  1273. year = {1990},
  1274. isbn = {0-262-63132-6},
  1275. }
  1276. @phdthesis{Dybvig:1987ab,
  1277. author = {R. Kent Dybvig},
  1278. school = {University of North Carolina at Chapel Hill},
  1279. title = {Three Implementation Models for Scheme},
  1280. year = {1987},
  1281. }
  1282. @article{Cardelli:1985kx,
  1283. address = {New York, NY, USA},
  1284. author = {Luca Cardelli and Peter Wegner},
  1285. journal = {ACM Comput. Surv.},
  1286. number = {4},
  1287. pages = {471--523},
  1288. publisher = {ACM Press},
  1289. title = {On understanding types, data abstraction, and
  1290. polymorphism},
  1291. volume = {17},
  1292. year = {1985},
  1293. issn = {0360-0300},
  1294. }
  1295. @inproceedings{Kildall:1973vn,
  1296. author = {Gary A. Kildall},
  1297. booktitle = {POPL '73: Proceedings of the 1st annual ACM
  1298. SIGACT-SIGPLAN symposium on Principles of programming
  1299. languages},
  1300. pages = {194--206},
  1301. publisher = {ACM Press},
  1302. title = {A unified approach to global program optimization},
  1303. year = {1973},
  1304. }
  1305. @misc{Kleene:1952aa,
  1306. author = {Kleene, S.},
  1307. publisher = {Van Nostrand, New York},
  1308. title = {{Introduction to Metamathematics}},
  1309. year = {1952},
  1310. timestamp = {2008-12-30T12:24:45.000+0100},
  1311. }
  1312. @inproceedings{Tobin-Hochstadt:2006fk,
  1313. author = {Sam Tobin-Hochstadt and Matthias Felleisen},
  1314. booktitle = {Dynamic Languages Symposium},
  1315. title = {Interlanguage Migration: From Scripts to Programs},
  1316. year = {2006},
  1317. }
  1318. @inproceedings{Matthews:2007zr,
  1319. author = {Jacob Matthews and Robert Bruce Findler},
  1320. booktitle = {The 34th ACM SIGPLAN-SIGACT Symposium on Principles
  1321. of Programming Languages},
  1322. month = jan,
  1323. title = {Operational Semantics for Multi-Language Programs},
  1324. year = {2007},
  1325. }
  1326. @inproceedings{Flanagan:2006mn,
  1327. address = {Charleston, South Carolina},
  1328. author = {Cormac Flanagan},
  1329. booktitle = {{POPL} 2006: The 33rd {ACM SIGPLAN-SIGACT} Symposium
  1330. on Principles of Programming Languages},
  1331. month = jan,
  1332. pages = {245-256},
  1333. title = {Hybrid Type Checking},
  1334. year = {2006},
  1335. }
  1336. @inproceedings{Gronski:2006uq,
  1337. author = {Jessica Gronski and Kenneth Knowles and Aaron Tomb and
  1338. Stephen N. Freund and Cormac Flanagan},
  1339. booktitle = {Scheme and Functional Programming Workshop},
  1340. pages = {93--104},
  1341. title = {Sage: Hybrid Checking for Flexible Specifications},
  1342. year = {2006},
  1343. }
  1344. @inproceedings{Anderson:2002kd,
  1345. author = {Christopher Anderson and Sophia Drossopoulou},
  1346. booktitle = {WOOD '03},
  1347. number = {8},
  1348. publisher = {Elsevier},
  1349. series = {},
  1350. title = {{BabyJ} - From Object Based to Class Based
  1351. Programming via Types},
  1352. volume = {82},
  1353. year = {2003},
  1354. }
  1355. @inproceedings{Siek:2006bh,
  1356. author = {Jeremy G. Siek and Walid Taha},
  1357. booktitle = {Scheme and Functional Programming Workshop},
  1358. month = sep,
  1359. pages = {81-92},
  1360. title = {Gradual typing for functional languages},
  1361. year = {2006},
  1362. }
  1363. @inproceedings{Wadler:2009qv,
  1364. author = {Philip Wadler and Robert Bruce Findler},
  1365. booktitle = {European {S}ymposium on {P}rogramming},
  1366. month = mar,
  1367. pages = {1--16},
  1368. series = {ESOP},
  1369. title = {Well-typed programs can't be blamed},
  1370. year = {2009},
  1371. }
  1372. @inproceedings{Herman:2006uq,
  1373. author = {David Herman and Aaron Tomb and Cormac Flanagan},
  1374. booktitle = {Trends in Functional Prog. (TFP)},
  1375. month = apr,
  1376. pages = {XXVIII},
  1377. title = {Space-Efficient Gradual Typing},
  1378. year = {2007},
  1379. }
  1380. @article{Herman:2010aa,
  1381. author = {Herman, David and Tomb, Aaron and Flanagan, Cormac},
  1382. journal = {Higher-Order and Symbolic Computation},
  1383. number = {2},
  1384. pages = {167-189},
  1385. publisher = {Springer US},
  1386. title = {Space-efficient gradual typing},
  1387. volume = {23},
  1388. year = {2010},
  1389. language = {English},
  1390. }
  1391. @article{Henglein:1994nz,
  1392. author = {Fritz Henglein},
  1393. journal = {Science of Computer Programming},
  1394. month = jun,
  1395. number = {3},
  1396. pages = {197-230},
  1397. title = {Dynamic typing: syntax and proof theory},
  1398. volume = {22},
  1399. year = {1994},
  1400. }
  1401. @inproceedings{Siek:2015ab,
  1402. author = {Jeremy G. Siek and Peter Thiemann and Philip Wadler},
  1403. booktitle = {Conference on Programming Language Design and
  1404. Implementation},
  1405. month = jun,
  1406. series = {PLDI},
  1407. title = {Blame and coercion: Together again for the first
  1408. time},
  1409. year = {2015},
  1410. }
  1411. @inproceedings{Kuhlenschmidt:2019aa,
  1412. author = {Andre Kuhlenschmidt and Deyaaeldeen Almahallawi and
  1413. Jeremy G. Siek},
  1414. booktitle = {Conference on Programming Language Design and
  1415. Implementation},
  1416. month = jun,
  1417. publisher = {ACM},
  1418. series = {PLDI},
  1419. title = {Toward Efficient Gradual Typing for Structural Types
  1420. via Coercions},
  1421. year = {2019},
  1422. }
  1423. @inproceedings{stroustrup88:_param_types,
  1424. author = {Bjarne Stroustrup},
  1425. booktitle = {USENIX {C++} Conference},
  1426. month = oct,
  1427. title = {Parameterized Types for {C++}},
  1428. year = {1988},
  1429. }
  1430. @inproceedings{Blelloch:1993aa,
  1431. address = {New York, NY, USA},
  1432. author = {Blelloch, Guy E. and Hardwick, Jonathan C. and
  1433. Chatterjee, Siddhartha and Sipelstein, Jay and
  1434. Zagha, Marco},
  1435. booktitle = {Proceedings of the Fourth ACM SIGPLAN Symposium on
  1436. Principles and Practice of Parallel Programming},
  1437. pages = {102--111},
  1438. publisher = {Association for Computing Machinery},
  1439. series = {PPOPP '93},
  1440. title = {Implementation of a Portable Nested Data-Parallel
  1441. Language},
  1442. year = {1993},
  1443. doi = {10.1145/155332.155343},
  1444. isbn = {0897915895},
  1445. url = {https://doi.org/10.1145/155332.155343},
  1446. }
  1447. @inproceedings{Weeks:2006aa,
  1448. address = {New York, NY, USA},
  1449. author = {Weeks, Stephen},
  1450. booktitle = {Proceedings of the 2006 Workshop on ML},
  1451. pages = {1},
  1452. publisher = {Association for Computing Machinery},
  1453. series = {ML '06},
  1454. title = {Whole-Program Compilation in MLton},
  1455. year = {2006},
  1456. doi = {10.1145/1159876.1159877},
  1457. isbn = {1595934839},
  1458. url = {https://doi.org/10.1145/1159876.1159877},
  1459. }
  1460. @techreport{liskov79:_clu_ref,
  1461. author = {Barbara Liskov and Russ Atkinson and Toby Bloom and
  1462. Eliot Moss and Craig Schaffert and Bob Scheifler and
  1463. Alan Snyder},
  1464. institution = {MIT},
  1465. month = oct,
  1466. number = {LCS-TR-225},
  1467. publisher = {Massachusetts Institute of Technology},
  1468. title = {{CLU} Reference Manual},
  1469. year = {1979},
  1470. }
  1471. @inproceedings{Liskov:1993dk,
  1472. address = {New York, NY, USA},
  1473. author = {Liskov, Barbara},
  1474. booktitle = {HOPL-II: The second ACM SIGPLAN conference on History
  1475. of programming languages},
  1476. pages = {133--147},
  1477. publisher = {ACM},
  1478. title = {A history of CLU},
  1479. year = {1993},
  1480. isbn = {0-89791-570-4},
  1481. }
  1482. @inbook{Appel:1987aa,
  1483. address = {Berlin, Heidelberg},
  1484. author = {Appel, Andrew W. and MacQueen, David B.},
  1485. booktitle = {Functional Programming Languages and Computer
  1486. Architecture: Portland, Oregon, USA, September
  1487. 14--16, 1987 Proceedings},
  1488. editor = {Kahn, Gilles},
  1489. pages = {301--324},
  1490. publisher = {Springer Berlin Heidelberg},
  1491. title = {A standard ML compiler},
  1492. year = {1987},
  1493. doi = {10.1007/3-540-18317-5_17},
  1494. isbn = {978-3-540-47879-9},
  1495. url = {http://dx.doi.org/10.1007/3-540-18317-5_17},
  1496. }
  1497. @inproceedings{Bracha:1998fk,
  1498. address = {New York, NY, USA},
  1499. author = {Bracha, Gilad and Odersky, Martin and
  1500. Stoutamire, David and Wadler, Philip},
  1501. booktitle = {Proceedings of the 13th ACM SIGPLAN conference on
  1502. Object-oriented programming, systems, languages, and
  1503. applications},
  1504. pages = {183--200},
  1505. publisher = {ACM},
  1506. series = {OOPSLA '98},
  1507. title = {Making the future safe for the past: adding
  1508. genericity to the Java programming language},
  1509. year = {1998},
  1510. doi = {http://doi.acm.org/10.1145/286936.286957},
  1511. isbn = {1-58113-005-8},
  1512. url = {http://doi.acm.org/10.1145/286936.286957},
  1513. }
  1514. @inproceedings{Leroy:1992qb,
  1515. address = {New York, NY, USA},
  1516. author = {Xavier Leroy},
  1517. booktitle = {POPL '92: Proceedings of the 19th ACM SIGPLAN-SIGACT
  1518. symposium on Principles of programming languages},
  1519. pages = {177--188},
  1520. publisher = {ACM Press},
  1521. title = {Unboxed objects and polymorphic typing},
  1522. year = {1992},
  1523. isbn = {0-89791-453-8},
  1524. }
  1525. @article{Morrison:1991aa,
  1526. address = {New York, NY, USA},
  1527. author = {Morrison, R. and Dearle, A. and Connor, R. C. H. and
  1528. Brown, A. L.},
  1529. journal = {ACM Trans. Program. Lang. Syst.},
  1530. month = jul,
  1531. number = {3},
  1532. pages = {342--371},
  1533. publisher = {ACM},
  1534. title = {An Ad Hoc Approach to the Implementation of
  1535. Polymorphism},
  1536. volume = {13},
  1537. year = {1991},
  1538. doi = {10.1145/117009.117017},
  1539. issn = {0164-0925},
  1540. url = {http://doi.acm.org/10.1145/117009.117017},
  1541. }
  1542. @inproceedings{Harper:1995um,
  1543. author = {Robert Harper and Greg Morrisett},
  1544. booktitle = {POPL '95: Proceedings of the 22nd ACM SIGPLAN-SIGACT
  1545. Symposium on Principles of Programming Languages},
  1546. pages = {130--141},
  1547. publisher = {ACM Press},
  1548. title = {Compiling polymorphism using intensional type
  1549. analysis},
  1550. year = {1995},
  1551. isbn = {0-89791-692-1},
  1552. }