@book{Pierce:2004fk, editor = {Benjamin C. Pierce}, publisher = {MIT Press}, title = {Advanced Topics in Types and Programming Languages}, year = {2004}} @book{Pierce:SF2, author = {Benjamin C. Pierce and Arthur Azevedo de Amorim and Chris Casinghino and Marco Gaboardi and Michael Greenberg and C\v{a}t\v{a}lin Hri\c{t}cu and Vilhelm Sj\"{o}berg and Andrew Tolmach and Brent Yorgey}, title = {Programming Language Foundations}, series = {Software Foundations}, volume = {2}, year = {2018}, publisher = {Electronic textbook}, keys = {verification,books}, url = {https://softwarefoundations.cis.upenn.edu/plf-current/index.html} } @Book{Harper2016, author = {Robert Harper}, title = {Practical Foundations for Programming Languages}, publisher = {Cambridge University Press}, year = 2016, edition = {2nd edition}} @Article{Appel90, author = {Appel, Andrew W.}, title = {A {Runtime} {System}}, journal = {{LISP} and Symbolic Computation}, year = 1990, volume = 3, number = 4, pages = {343--380} } @book{Appel91, place={Cambridge}, title={Compiling with Continuations}, publisher={Cambridge University Press}, author={Appel, Andrew W.}, year={1991} } @inproceedings{Hatcliff:1994ea, author = {John Hatcliff and Olivier Danvy}, booktitle = {Proceedings of the 21st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '94}, pages = {458--471}, publisher = {Association for Computing Machinery}, title = {A Generic Account of Continuation-Passing Styles}, year = {1994}} @article{Plotkin:1975, author = {G. D. Plotkin}, journal = {Theoretical Computer Science}, number = {2}, pages = {125--159}, rating = {5}, read = {Yes}, title = {Call-by-{N}ame, {C}all-by-{V}alue and the {L}ambda-{C}alculus}, volume = {1}, year = {1975}} @inproceedings{Lawall:1993, author = {Lawall, Julia L. and Danvy, Olivier}, title = {Separating Stages in the Continuation-Passing Style Transformation}, year = 1993, publisher = {Association for Computing Machinery}, booktitle = {Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '93}, pages = {124--136}, numpages = 13 } @book{Friedman:2001, author = {Daniel P. Friedman and Mitchell Wand and Christopher T. Haynes}, title = {Essentials of {Programming} {Languages}}, edition = {2nd edition}, publisher = {{MIT} Press}, year = 2001, timestamp = {Fri, 15 Apr 2011 13:37:34 +0200}, biburl = {https://dblp.org/rec/books/daglib/0017436.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} } @inproceedings{Fischer:1972, author = {Fischer, Michael J.}, title = {Lambda Calculus Schemata}, year = 1972, publisher = {Association for Computing Machinery}, booktitle = {Proceedings of ACM Conference on Proving Assertions about Programs}, pages = {104--109} } @InProceedings{Wijngaarden:1966, author = {Adriaan {van Wijngaarden}}, title = {Recursive Definition of Syntax and Semantics}, booktitle = {Formal Language Description Languages for Computer Programming}, year = 1966, editor = {T. B. Steel Jr.}, pages = {13--24}, publisher = {North-Holland}} @book{Aho:2006wb, author = {Aho, Alfred V. and Lam, Monica S. and Sethi, Ravi and Ullman, Jeffrey D.}, date-added = {2021-10-22 09:38:52 -0400}, date-modified = {2021-10-22 09:38:59 -0400}, publisher = {Addison-Wesley Longman}, title = {Compilers: Principles, Techniques, and Tools}, edition = {2nd edition}, year = {2006}} @article{Logothetis:1981, author = {Logothetis, George and Mishra, Prateek}, title = {Compiling {S}hort-{C}ircuit {B}oolean {E}xpressions in {O}ne {P}ass}, journal = {Software: Practice and Experience}, volume = {11}, number = {11}, pages = {1197--1214}, year = {1981} } @article{Clarke:1989, author = {Clarke, Keith}, title = {One-Pass Code Generation Using Continuations}, year = {1989}, issue_date = {Dec. 1989}, publisher = {John Wiley & Sons}, volume = {19}, number = {12}, journal = {Softw. Pract. Exper.}, pages = {1175--1192}, numpages = {18} } @article{Moggi:1991in, author = {Eugenio Moggi}, journal = {Inf. Comput.}, number = {1}, pages = {55--92}, publisher = {Academic Press}, title = {Notions of {C}omputation and {M}onads}, volume = {93}, year = {1991} } @article{Flatt:2019tb, articleno = {78}, 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}, journal = {Proc. ACM Program. Lang., ICFP (August)}, numpages = {15}, pages = {1--15}, publisher = {Association for Computing Machinery}, title = {Rebuilding Racket on Chez Scheme (Experience Report)}, volume = {3}, year = {2019}} @inproceedings{Danvy:2003fk, author = {Danvy, Olivier}, booktitle = {Compiler Construction: Proceedings of the 12th International Conference, CC '03, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS '03. \normalfont{Lecture Notes in Computer Science 2622}}, pages = {77--89}, title = {A New One-Pass Transformation into Monadic Normal Form}, publisher = {Springer}, year = {2003} } @article{PeytonJones:1998, author = {Simon L. {Peyton Jones} and Andr{\'e} L. M. Santos}, journal = {Science of Computer Programming}, number = {1}, pages = {3--47}, title = {A {T}ransformation-{B}ased {O}ptimiser for {H}askell}, volume = {32}, year = {1998}} @book{Russell2003, author = {Russell, Stuart J. and Norvig, Peter}, title = {Artificial Intelligence: A Modern Approach}, year = {2003}, publisher = {Pearson Education}, edition = {2} } @book{Kernighan:1988nx, author = {Brian W. Kernighan and Dennis M. Ritchie}, publisher = {Prentice Hall}, title = {The C {P}rogramming {L}anguage}, year = {1988} } @book{Dybvig:1987aa, author = {Dybvig, R. Kent}, publisher = {Prentice Hall}, title = {The Scheme Programming Language}, year = {1987} } @book{Abelson:1996uq, author = {Abelson, Harold and Sussman, Gerald J.}, edition = {2nd edition}, publisher = {MIT Press}, title = {Structure and Interpretation of Computer Programs}, year = {1996} } @book{Friedman:1996aa, author = {Friedman, Daniel P. and Felleisen, Matthias}, publisher = {MIT Press}, title = {The Little Schemer}, edition = {4th edition}, year = {1996} } @book{Felleisen:2001aa, author = {Felleisen, Matthias and Findler, Robert Bruce and Flatt, Matthew and Krishnamurthi, Shriram}, publisher = {MIT Press}, title = {How to Design Programs: An Introduction to Programming and Computing}, year = {2001} } @book{Felleisen:2013aa, author = {Felleisen, Matthias and Conrad, M.D. Barski and Horn, David Van and Eight Students of Northeastern University}, publisher = {No Starch Press}, title = {Realm of Racket: Learn to Program, One Game at a Time!}, year = {2013} } @techreport{Flatt:2014aa, author = {Matthew Flatt and Robert Bruce Findler and PLT}, institution = {PLT}, number = {6.0}, title = {The Racket Guide}, year = {2014} } @manual{Intel:2015aa, author = {Intel}, institution = {Intel}, title = {Intel 64 and IA-32 Architectures Software Developer's Manual Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B, 3C and 3D}, year = {2015} } @book{Bryant:2010aa, author = {Randal Bryant and David O'Hallaron}, edition = {2nd edition}, publisher = {Addison-Wesley}, title = {Computer Systems: A Programmer's Perspective}, year = {2010} } @manual{Bryant:2005aa, author = {Randal Bryant and David O'Hallaron}, organization = {Carnegie Mellon University}, title = {x86-64 Machine-Level Programming}, year = {2005} } @manual{Matz:2013aa, author = {Michael Matz and Jan Hubicka and Andreas Jaeger and Mark Mitchell}, title = {System V Application Binary Interface, AMD64 Architecture Processor Supplement}, publisher = {Linux Foundation}, year = {2013} } @misc{Microsoft:2018aa, author = {Microsoft}, url = {https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/x64-architecture}, title = {x64 Architecture}, year = {2018} } @misc{Microsoft:2020aa, author = {Microsoft}, url = {https://docs.microsoft.com/en-us/cpp/build/x64-calling-convention}, title = {x64 {C}alling {C}onvention}, year = {2020} } @inproceedings{Dybvig:2006aa, author = {Dybvig, R. Kent}, booktitle = {Proceedings of the Eleventh ACM SIGPLAN International Conference on Functional Programming, ICFP '06}, pages = {1--12}, publisher = {Association for Computing Machinery}, title = {The Development of {Chez} {Scheme}}, year = {2006} } @inproceedings{Sarkar:2004fk, author = {Dipanwita Sarkar and Oscar Waddell and R. Kent Dybvig}, booktitle = {Proceedings of the Ninth ACM SIGPLAN International Conference on Functional Programming, ICFP '04}, pages = {201--212}, publisher = {Association for Computing Machinery}, title = {A {N}anopass {I}nfrastructure for {C}ompiler {E}ducation}, year = {2004} } @phdthesis{Keep:2012aa, author = {Andrew W. Keep}, school = {Indiana University}, title = {A Nanopass Framework for Commercial Compiler Development}, year = {2012} } @techreport{Dybvig:2010aa, author = {R. Kent Dybvig and Andrew Keep}, institution = {Indiana University}, title = {P523 Compiler Assignments}, year = {2010} } @inproceedings{Ghuloum:2006bh, author = {Abdulaziz Ghuloum}, booktitle = {Scheme '06: Proceedings of the Workshop on Scheme and Functional Programming}, url = {http://www.schemeworkshop.org/2006/}, title = {An Incremental Approach to Compiler Construction}, year = {2006} } @article{Backus:1960aa, author = {Backus, J. W. and Bauer, F. L. and Green, J. and Katz, C. and McCarthy, J. and Perlis, A. J. and Rutishauser, H. and Samelson, K. and Vauquois, B. and Wegstein, J. H. and van Wijngaarden, A. and Woodger, M.}, editor = {Naur, Peter}, journal = {Commun. ACM}, number = {5}, pages = {299--314}, publisher = {Association for Computing Machinery}, title = {Report on the Algorithmic Language ALGOL 60}, volume = {3}, year = {1960} } @article{Knuth:1964aa, author = {Knuth, Donald E.}, journal = {Commun. ACM}, number = {12}, pages = {735--736}, publisher = {Association for Computing Machinery}, title = {Backus Normal Form vs. Backus Naur Form}, volume = {7}, year = {1964} } @article{SPERBER:2009aa, author = {Sperber, Michael and Dybvig, R. Kent and Flatt, Matthew and van Straaten, Anton and Findler, Robby and Matthews, Jacob}, journal = {Journal of Functional Programming}, pages = {1--301}, title = {Revised$^6$ Report on the Algorithmic Language Scheme}, volume = {19}, year = {2009} } @techreport{plt-tr, author = {Matthew Flatt and PLT}, institution = {PLT}, url = {https://docs.racket-lang.org/reference/index.html}, title = {The {R}acket Reference~6.0}, year = {2014} } @inproceedings{reynolds72:_def_interp, author = {John C. Reynolds}, booktitle = {{ACM} '72: Proceedings of the {ACM} Annual Conference}, pages = {717--740}, publisher = {Association for Computing Machinery}, title = {Definitional Interpreters for Higher-Order Programming Languages}, year = {1972} } @book{Jones:1993uq, author = {Neil D. Jones and Carsten K. Gomard and Peter Sestoft}, publisher = {Prentice Hall}, title = {Partial {Evaluation} and {Automatic} {Program} {Generation}}, year = {1993} } @techreport{Danvy:1991fk, author = {Olivier Danvy}, institution = {Kansas State University}, number = {CIS-92-02}, title = {Three Steps for the {CPS} Transformation}, year = {1991} } @inproceedings{Flanagan:1993cg, author = {Cormac Flanagan and Amr Sabry and Bruce F. Duba and Matthias Felleisen}, booktitle = {Proceedings of the ACM SIGPLAN 1993 Conference on {P}rogramming {L}anguage {D}esign and {I}mplementation, PLDI '93}, pages = {502--514}, title = {The {Essence} of {Compiling} with {Continuations}}, publisher = {Association for Computing Machinery}, year = {1993} } @book{Cooper:2011aa, author = {Keith Cooper and Linda Torczon}, edition = {2nd edition}, publisher = {Morgan Kaufmann}, title = {Engineering a Compiler}, year = {2011} } @book{Appel:2003fk, author = {Andrew W. Appel and Jens Palsberg}, publisher = {Cambridge University Press}, title = {Modern Compiler Implementation in Java}, year = {2003} } @book{Balakrishnan:1996ve, author = {Balakrishnan, V. K.}, publisher = {Dover}, title = {Introductory Discrete Mathematics}, year = {1996} } @book{Rosen:2002bh, author = {Rosen, Kenneth H.}, publisher = {McGraw-Hill Higher Education}, title = {Discrete Mathematics and Its Applications}, year = {2002} } @article{Brelaz:1979eu, author = {Br\'{e}laz, Daniel}, journal = {Commun. ACM}, number = {4}, pages = {251--256}, publisher = {Association for Computing Machinery}, title = {New {Methods} to {Color} the {Vertices} of a {Graph}}, volume = {22}, year = {1979} } @article{Horwitz:1966aa, author = {Horwitz, L. P. and Karp, R. M. and Miller, R. E. and Winograd, S.}, journal = {J. ACM}, number = {1}, pages = {43--61}, publisher = {Association for Computing Machinery}, title = {Index Register Allocation}, volume = {13}, year = {1966} } @inbook{Backus:1978aa, author = {Backus, John}, booktitle = {History of Programming Languages}, pages = {25--74}, publisher = {Association for Computing Machinery}, title = {The History of Fortran I, II, and III}, year = {1978} } @article{Chaitin:1981vl, author = {Gregory J. Chaitin and Marc A. Auslander and Ashok K. Chandra and John Cocke and Martin E. Hopkins and Peter W. Markstein}, journal = {Computer Languages}, pages = {47--57}, title = {Register {Allocation} via {Coloring}}, volume = {6}, year = {1981} } @article{Kempe:1879aa, author = {A. B. Kempe}, journal = {American Journal of Mathematics}, number = {3}, pages = {193--200}, publisher = {Johns Hopkins University Press}, title = {On the Geographical Problem of the Four Colours}, volume = {2}, year = {1879} } @inproceedings{Chaitin:1982vn, author = {G. J. Chaitin}, booktitle = {SIGPLAN '82: Proceedings of the 1982 {SIGPLAN} Symposium on Compiler Construction}, pages = {98--105}, publisher = {Association for Computing Machinery}, title = {Register {Allocation} \& {Spilling} via {Graph} {Coloring}}, year = {1982} } @article{Briggs:1994kx, author = {Preston Briggs and Keith D. Cooper and Linda Torczon}, journal = {ACM Trans. Program. Lang. Syst.}, number = {3}, pages = {428--455}, publisher = {Association for Computing Machinery}, title = {Improvements to Graph Coloring Register Allocation}, volume = {16}, year = {1994} } @article{George:1996aa, author = {George, Lal and Appel, Andrew W.}, journal = {ACM Trans. Program. Lang. Syst.}, number = {3}, pages = {300--324}, publisher = {Association for Computing Machinery}, title = {Iterated Register Coalescing}, volume = {18}, year = {1996} } @incollection{Matula:1972aa, author = {David W. Matula and George Marble and Joel D. Isaacson}, booktitle = {Graph Theory and Computing}, pages = {109--122}, publisher = {Academic Press}, title = {Graph Coloring Algorithms}, year = {1972} } @inproceedings{Chow:1984ys, author = {Frederick Chow and John Hennessy}, booktitle = {Proceedings of the 1984 SIGPLAN {Symposium} on {Compiler} {Construction}}, pages = {222--232}, publisher = {Association for Computing Machinery}, title = {Register {Allocation} by {Priority-Based} {Coloring}}, year = {1984} } @inproceedings{Cooper:1998ly, author = {Keith D. Cooper and L. Taylor Simpson}, booktitle = {Compiler Construction: Proceedings of the 7th International Conference, CC '98, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS '98. \normalfont{Lecture Notes in Computer Science 1383}}, publisher = {Springer}, title = {Live {Range} {Splitting} in a {Graph} {Coloring} {Register} {Allocator}}, year = {1998} } @inproceedings{Palsberg:2007si, author = {Palsberg, Jens}, booktitle = {Proceedings of the {T}hirteenth {A}ustralasian {S}ymposium on {T}heory of {C}omputing}, pages = {3--3}, publisher = {Australian Computer Society}, title = {Register {A}llocation via {C}oloring of {C}hordal {G}raphs}, year = {2007} } @article{Poletto:1999uq, author = {Massimiliano Poletto and Vivek Sarkar}, journal = {ACM Trans. Program. Lang. Syst.}, number = {5}, pages = {895--913}, publisher = {Association for Computing Machinery}, title = {Linear {S}can {R}egister {A}llocation}, volume = {21}, year = {1999} } @inproceedings{Allen:1970uq, author = {Frances E. Allen}, booktitle = {Proceedings of a Symposium on Compiler Optimization}, publisher = {Association for Computing Machinery}, pages = {1--19}, title = {Control {Flow} {Analysis}}, year = {1970} } @techreport{Friedman:1976aa, author = {Daniel P. Friedman and David S. Wise}, institution = {Indiana University}, number = {TR44}, title = {Cons {Should} {Not} {Evaluate} {Its} {Arguments}}, year = {1976} } @book{Pierce:2002hj, author = {Benjamin C. Pierce}, publisher = {MIT Press}, title = {Types and {P}rogramming {L}anguages}, year = {2002} } @article{Lieberman:1983aa, author = {Lieberman, Henry and Hewitt, Carl}, journal = {Commun. ACM}, number = {6}, pages = {419--429}, publisher = {Association for Computing Machinery}, title = {A Real-Time Garbage Collector Based on the Lifetimes of Objects}, volume = {26}, year = {1983} } @inproceedings{Ungar:1984aa, author = {Ungar, David}, booktitle = {Proceedings of the First ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, SDE 1}, pages = {157--167}, publisher = {Association for Computing Machinery}, title = {Generation Scavenging: A Non-Disruptive High Performance Storage Reclamation Algorithm}, year = {1984} } @book{Jones:1996aa, author = {Jones, Richard and Lins, Rafael}, publisher = {John Wiley \& Sons}, title = {Garbage Collection: Algorithms for Automatic Dynamic Memory Management}, year = {1996} } @inproceedings{Detlefs:2004aa, author = {Detlefs, David and Flood, Christine and Heller, Steve and Printezis, Tony}, booktitle = {Proceedings of the 4th International Symposium on Memory Management, ISMM '04}, pages = {37--48}, publisher = {Association for Computing Machinery}, title = {Garbage-{F}irst {Garbage} {Collection}}, year = {2004} } @inproceedings{Tene:2011kx, author = {Tene, Gil and Iyengar, Balaji and Wolf, Michael}, booktitle = {Proceedings of the International Symposium on Memory Management, ISMM '11}, pages = {79--88}, publisher = {Association for Computing Machinery}, title = {C4: The {C}ontinuously {C}oncurrent {C}ompacting {C}ollector}, year = {2011} } @incollection{Wilson:1992fk, author = {Wilson, Paul}, booktitle = {Memory Management}, editor = {Bekkers, Yves and Cohen, Jacques}, pages = {1--42}, publisher = {Springer}, title = {Uniprocessor Garbage Collection Techniques. \normalfont{Lecture Notes in Computer Science 637}}, year = {1992} } @article{Cheney:1970aa, author = {C. J. Cheney}, journal = {Commun. of the {ACM}}, number = {11}, title = {A Nonrecursive List Compacting Algorithm}, volume = {13}, year = {1970} } @article{McCarthy:1960dz, author = {McCarthy, John}, journal = {Commun. ACM}, number = {4}, pages = {184--195}, publisher = {Association for Computing Machinery}, title = {Recursive {F}unctions of {S}ymbolic {E}xpressions and their {C}omputation by {M}achine, Part I}, volume = {3}, year = {1960} } @article{Collins:1960aa, author = {Collins, George E.}, journal = {Commun. ACM}, number = {12}, pages = {655--657}, publisher = {Association for Computing Machinery}, title = {A Method for Overlapping and Erasure of Lists}, volume = {3}, year = {1960} } @inproceedings{Blackburn:2004aa, author = {Blackburn, Stephen M. and Cheng, Perry and McKinley, Kathryn S.}, booktitle = {Proceedings of the Joint International Conference on Measurement and Modeling of Computer Systems, SIGMETRICS '04/Performance '04}, pages = {25--36}, publisher = {Association for Computing Machinery}, title = {Myths and Realities: The Performance Impact of Garbage Collection}, year = {2004} } @book{Jones:2011aa, author = {Jones, Richard and Hosking, Antony and Moss, Eliot}, publisher = {Chapman \& Hall/CRC}, title = {The Garbage Collection Handbook: The Art of Automatic Memory Management}, year = {2011} } @inproceedings{Shahriyar:2013aa, author = {Shahriyar, Rifat and Blackburn, Stephen M. and Yang, Xi and McKinley, Kathryn M.}, booktitle = {Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA '13}, publisher = {Association for Computing Machinery}, title = {Taking Off the Gloves with Reference Counting Immix}, year = {2013} } @inproceedings{Cutler:2015aa, author = {Cutler, Cody and Morris, Robert}, booktitle = {Proceedings of the 2015 International Symposium on Memory Management, ISMM '15}, pages = {131--142}, publisher = {Association for Computing Machinery}, title = {Reducing Pause Times with Clustered Collection}, year = {2015} } @inproceedings{Shidal:2015aa, author = {Shidal, Jonathan and Spilo, Ari J. and Scheid, Paul T. and Cytron, Ron K. and Kavi, Krishna M.}, booktitle = {Proceedings of the 2015 International Symposium on Memory Management, ISMM '15}, pages = {118--130}, publisher = {Association for Computing Machinery}, title = {Recycling Trash in Cache}, year = {2015} } @inproceedings{Osterlund:2016aa, author = {\"{O}sterlund, Erik and L\"{o}we, Welf}, booktitle = {Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management, ISMM '16}, pages = {1--12}, publisher = {Association for Computing Machinery}, title = {Block-Free Concurrent GC: Stack Scanning and Copying}, year = {2016} } @inproceedings{Jacek:2019aa, author = {Jacek, Nicholas and Moss, J. Eliot B.}, booktitle = {Proceedings of the 2019 ACM SIGPLAN International Symposium on Memory Management, ISMM '19}, pages = {53--63}, publisher = {Association for Computing Machinery}, title = {Learning When to Garbage Collect with Random Forests}, year = {2019} } @inproceedings{Gamari:2020aa, author = {Gamari, Ben and Dietz, Laura}, booktitle = {Proceedings of the 2020 ACM SIGPLAN International Symposium on Memory Management, ISMM '20}, pages = {87--99}, publisher = {Association for Computing Machinery}, title = {Alligator Collector: A Latency-Optimized Garbage Collector for Functional Programming Languages}, year = {2020} } @inproceedings{Moore:1959aa, author = {E.F. Moore}, booktitle = {Proceedings of an International Symposium on the Theory of Switching}, title = {The {S}hortest {P}ath {T}hrough a {M}aze}, publisher = {Harvard University Press}, year = {1959} } @book{Cormen:2001uq, author = {Thomas H. Cormen and Clifford Stein and Ronald L. Rivest and Charles E. Leiserson}, publisher = {McGraw-Hill Higher Education}, title = {Introduction to Algorithms}, year = {2001} } @techreport{Steele:1977ab, author = {Guy L. Steele}, institution = {MIT Artificial Intelligence Lab}, number = {420}, type = {AI Memo}, title = {Data Representations in PDP-10 MacLISP}, year = {1977} } @article{Appel:1989aa, author = {Appel, Andrew W.}, journal = {LISP and Symbolic Computation}, number = {2}, pages = {153--162}, publisher = {Kluwer Academic Publishers}, title = {Runtime {Tags} {Aren't} {Necessary}}, volume = {2}, year = {1989} } @inproceedings{Goldberg:1991aa, author = {Goldberg, Benjamin}, booktitle = {Proceedings of the ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation, PLDI '91}, pages = {165--176}, publisher = {Association for Computing Machinery}, title = {Tag-free Garbage Collection for Strongly Typed Programming Languages}, year = {1991} } @inproceedings{Diwan:1992aa, author = {Diwan, Amer and Moss, Eliot and Hudson, Richard}, booktitle = {Proceedings of the ACM SIGPLAN 1992 Conference on Programming Language Design and Implementation, PLDI '92}, pages = {273--282}, publisher = {Association for Computing Machinery}, title = {Compiler Support for Garbage Collection in a Statically Typed Language}, year = {1992} } @inproceedings{Siebert:2001aa, author = {Siebert, Fridtjof}, title = {Constant-Time Root Scanning for Deterministic Garbage Collection}, pages = {304--318}, publisher = {Springer}, editor = {Reinhard Wilhelm}, booktitle = {Proceedings of Compiler Construction: 10th International Conference, CC 2001, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS '01}, year = {2001} } @inproceedings{Henderson:2002aa, author = {Henderson, Fergus}, booktitle = {Proceedings of the 3rd International Symposium on Memory Management, ISMM '02}, pages = {150--156}, publisher = {Association for Computing Machinery}, title = {Accurate Garbage Collection in an Uncooperative Environment}, year = {2002} } @article{Baker:2009aa, author = {Baker, J. and Cunei, A. and Kalibera, T. and Pizlo, F. and Vitek, J.}, journal = {Concurr. Comput.: Pract. Exper.}, number = {12}, pages = {1572--1606}, publisher = {John Wiley and Sons Ltd.}, title = {Accurate Garbage Collection in Uncooperative Environments Revisited}, volume = {21}, year = {2009} } @techreport{Dijkstra:1982aa, author = {E. W. Dijkstra}, institution = {University of Texas at Austin}, number = {EWD831}, title = {Why {Numbering} {Should} {Start} at {Zero}}, year = {1982} } @article{Kelsey:1998di, editor = {R. Kelsey and W. Clinger and J. Rees}, journal = {Higher-Order and Symbolic Computation}, number = {1}, title = {Revised$^5$ Report on the Algorithmic Language Scheme}, volume = {11}, year = {1998} } @techreport{Cardelli:1983aa, author = {Luca Cardelli}, institution = {AT\&T Bell Laboratories}, number = {TR-107}, title = {The Functional Abstract Machine}, year = {1983} } @inproceedings{Minamide:1996ys, author = {Minamide, Yasuhiko and Morrisett, Greg and Harper, Robert}, booktitle = {Proceedings of the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '96}, pages = {271--283}, publisher = {Association for Computing Machinery}, title = {Typed {C}losure {C}onversion}, year = {1996} } @inproceedings{Shivers:1988aa, author = {Shivers, O.}, booktitle = {Proceedings of the ACM SIGPLAN 1988 Conference on Programming Language Design and Implementation, PLDI '88}, pages = {164--174}, publisher = {Association for Computing Machinery}, title = {Control Flow Analysis in {Scheme}}, year = {1988} } @inproceedings{Gilray:2016aa, author = {Gilray, Thomas and Lyde, Steven and Adams, Michael D. and Might, Matthew and Van Horn, David}, booktitle = {Proceedings of the 43rd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '16}, pages = {691--704}, publisher = {Association for Computing Machinery}, title = {Pushdown Control-Flow Analysis for Free}, year = {2016} } @inproceedings{Keep:2012ab, author = {Keep, Andrew W. and Hearn, Alex and Dybvig, R. Kent}, booktitle = {Scheme '12: Proceedings of the Workshop on Scheme and Functional Programming}, title = {Optimizing Closures in {O}(0)-time}, publisher = {Association for Computing Machinery}, year = {2012} } @article{Church:1932aa, author = {Church, Alonzo}, journal = {Annals of Mathematics}, number = {2}, pages = {346--366}, publisher = {Annals of Mathematics}, series = {Second Series}, title = {A Set of Postulates for the Foundation of Logic}, volume = {33}, year = {1932} } @techreport{Guy-L.-Steele:1978yq, author = {Guy L. Steele}, institution = {MIT}, title = {Rabbit: A Compiler for {Scheme}}, year = {1978} } @inproceedings{Cardelli:1984aa, author = {Cardelli, Luca}, booktitle = {ACM Symposium on LISP and Functional Programming, LFP '84}, publisher = {Association for Computing Machinery}, title = {Compiling a Functional Language}, pages = {208--221}, year = {1984} } @inproceedings{Gordon:1978aa, author = {Gordon, M. and Milner, R. and Morris, L. and Newey, M. and Wadsworth, C.}, booktitle = {Proceedings of the 5th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, POPL '78}, pages = {119--130}, publisher = {Association for Computing Machinery}, title = {A Metalanguage for Interactive Proof in LCF}, year = {1978} } @book{Milner:1990fk, author = {Robin Milner and Mads Tofte and Robert Harper}, publisher = {MIT Press}, title = {The {D}efinition of Standard ML}, year = {1990} } @phdthesis{Dybvig:1987ab, author = {R. Kent Dybvig}, school = {University of North Carolina at Chapel Hill}, title = {Three Implementation Models for Scheme}, year = {1987} } @article{Cardelli:1985kx, author = {Luca Cardelli and Peter Wegner}, journal = {ACM Comput. Surv.}, number = {4}, pages = {471--523}, publisher = {Association for Computing Machinery}, title = {On {Understanding} {Types}, {Data} {Abstraction}, and {Polymorphism}}, volume = {17}, year = {1985} } @inproceedings{Kildall:1973vn, author = {Gary A. Kildall}, booktitle = {Proceedings of the 1st {A}nnual ACM SIGACT-SIGPLAN {S}ymposium on {P}rinciples of {P}rogramming {L}anguages, POPL '73}, pages = {194--206}, publisher = {Association for Computing Machinery}, title = {A {U}nified {A}pproach to {G}lobal {P}rogram {O}ptimization}, year = {1973} } @book{Kleene:1952aa, author = {Kleene, S.}, publisher = {Van Nostrand}, title = {Introduction to {M}etamathematics}, year = {1952} } @inproceedings{Tobin-Hochstadt:2006fk, author = {Sam Tobin-Hochstadt and Matthias Felleisen}, booktitle = {Companion to the 21st ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications (Dynamic Languages Symposium), DLS '06}, title = {Interlanguage Migration: From Scripts to Programs}, publisher = {Association for Computing Machinery}, year = {2006} } @inproceedings{Matthews:2007zr, author = {Jacob Matthews and Robert Bruce Findler}, booktitle = {Proceedings of the 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL '07}, title = {Operational Semantics for Multi-Language Programs}, publisher = {Association for Computing Machinery}, year = {2007} } @inproceedings{Flanagan:2006mn, author = {Cormac Flanagan}, booktitle = {Proceedings of the 33rd {ACM SIGPLAN-SIGACT} Symposium on Principles of Programming Languages, POPL '06}, pages = {245--256}, title = {Hybrid Type Checking}, publisher = {Association for Computing Machinery}, year = {2006} } @inproceedings{Gronski:2006uq, author = {Jessica Gronski and Kenneth Knowles and Aaron Tomb and Stephen N. Freund and Cormac Flanagan}, booktitle = {Scheme '06: Proceedings of the Workshop on Scheme and Functional Programming}, pages = {93--104}, title = {Sage: Hybrid Checking for Flexible Specifications}, url = {http://www.schemeworkshop.org/2006/}, year = {2006} } @article{Anderson:2002kd, author = {Christopher Anderson and Sophia Drossopoulou}, journal = {Electron. Notes Theor. Comput. Sci.}, number = {8}, publisher = {Elsevier}, title = {{BabyJ}: From Object Based to Class Based Programming via Types}, volume = {82}, pages = {53--81}, year = {2003} } @inproceedings{Siek:2006bh, author = {Jeremy G. Siek and Walid Taha}, booktitle = {Scheme '06: Proceedings of the Workshop on Scheme and Functional Programming}, pages = {81--92}, title = {Gradual {T}yping for {F}unctional {L}anguages}, url = {http://www.schemeworkshop.org/2006/}, year = {2006} } @inproceedings{Wadler:2009qv, author = {Philip Wadler and Robert Bruce Findler}, booktitle = {Proceedings of Programming Languages and Systems, 31st European Symposium on Programming, ESOP '09, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS '09}, editor = {Giuseppe Castagna}, publisher = {Springer}, pages = {1--16}, title = {Well-Typed Programs Can't Be Blamed}, year = {2009} } @inproceedings{Herman:2006uq, author = {David Herman and Aaron Tomb and Cormac Flanagan}, booktitle = {Trends in Functional Programming, TFP '07}, title = {Space-{E}fficient {G}radual {T}yping}, year = {2007} } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @article{Herman:2010aa, author = {Herman, David and Tomb, Aaron and Flanagan, Cormac}, journal = {Higher-Order and Symbolic Computation}, number = {2}, pages = {167--189}, publisher = {Springer US}, title = {Space-{E}fficient {G}radual {T}yping}, volume = {23}, year = {2010} } @article{Henglein:1994nz, author = {Fritz Henglein}, journal = {Science of Computer Programming}, number = {3}, pages = {197--230}, title = {Dynamic Typing: Syntax and Proof Theory}, volume = {22}, year = {1994} } @inproceedings{Siek:2015ab, author = {Jeremy G. Siek and Peter Thiemann and Philip Wadler}, booktitle = {Proceedings of the ACM SIGPLAN 2015 Conference on Programming Language Design and Implementation, PLDI '15}, title = {Blame and {C}oercion: {T}ogether {A}gain for the {F}irst {T}ime}, publisher = {Association for Computing Machinery}, year = {2015} } @inproceedings{Kuhlenschmidt:2019aa, author = {Andre Kuhlenschmidt and Deyaaeldeen Almahallawi and Jeremy G. Siek}, booktitle = {Proceedings of the ACM SIGPLAN 2019 Conference on Programming Language Design and Implementation, PLDI '19}, publisher = {Association for Computing Machinery}, title = {Toward Efficient Gradual Typing for Structural Types via Coercions}, year = {2019} } @inproceedings{stroustrup88:_param_types, author = {Bjarne Stroustrup}, booktitle = {Proceedings of the USENIX {C++} Conference}, title = {Parameterized Types for {C++}}, publisher = {USENIX}, year = {1988} } @inproceedings{Blelloch:1993aa, author = {Blelloch, Guy E. and Hardwick, Jonathan C. and Chatterjee, Siddhartha and Sipelstein, Jay and Zagha, Marco}, booktitle = {Proceedings of the Fourth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP '93}, publisher = {Association for Computing Machinery}, title = {Implementation of a Portable Nested Data-Parallel Language}, pages = {102--111}, year = {1993} } @inproceedings{Weeks:2006aa, author = {Weeks, Stephen}, booktitle = {Proceedings of the 2006 Workshop on ML '06}, pages = {1}, publisher = {Association for Computing Machinery}, title = {Whole-Program Compilation in MLton}, year = {2006} } @techreport{liskov79:_clu_ref, author = {Barbara Liskov and Russ Atkinson and Toby Bloom and Eliot Moss and Craig Schaffert and Bob Scheifler and Alan Snyder}, institution = {MIT}, number = {LCS-TR-225}, publisher = {Massachusetts Institute of Technology}, title = {{CLU} Reference Manual}, year = {1979} } @inproceedings{Liskov:1993dk, author = {Liskov, Barbara}, booktitle = {The {S}econd ACM SIGPLAN {C}onference on {H}istory of {P}rogramming {L}anguages, HOPL-II}, pages = {133--147}, publisher = {Association for Computing Machinery}, title = {A {H}istory of {CLU}}, year = {1993} } @inbook{Appel:1987aa, author = {Appel, Andrew W. and MacQueen, David B.}, booktitle = {Functional Programming Languages and Computer Architecture}, pages = {301--324}, publisher = {Springer}, title = {A Standard ML Compiler}, year = {1987} } @inproceedings{Bracha:1998fk, author = {Bracha, Gilad and Odersky, Martin and Stoutamire, David and Wadler, Philip}, booktitle = {Proceedings of the 13th ACM SIGPLAN {Conference} on {Object-Oriented} {Programming}, {Systems}, {Languages}, and {Applications}, OOPSLA '98}, publisher = {Association for Computing Machinery}, title = {Making the {Future} {Safe} for the {Past}: {Adding} {Genericity} to the {Java} {Programming} {Language}}, pages = {183--200}, year = {1998} } @inproceedings{Leroy:1992qb, author = {Xavier Leroy}, booktitle = {Proceedings of the 19th ACM SIGPLAN-SIGACT {Symposium} on {Principles} of {Programming} {Languages}, POPL '92}, pages = {177--188}, publisher = {Association for Computing Machinery}, title = {Unboxed {Objects} and {Polymorphic} {Typing}}, year = {1992} } @article{Morrison:1991aa, author = {Morrison, R. and Dearle, A. and Connor, R. C. H. and Brown, A. L.}, journal = {ACM Trans. Program. Lang. Syst.}, number = {3}, pages = {342--371}, publisher = {Association for Computing Machinery}, title = {An Ad Hoc Approach to the Implementation of Polymorphism}, volume = {13}, year = {1991} } @inproceedings{Harper:1995um, author = {Robert Harper and Greg Morrisett}, booktitle = {Proceedings of the 22nd ACM SIGPLAN-SIGACT {Symposium} on {Principles} of {Programming} {Languages}, POPL '95}, pages = {130--141}, publisher = {Association for Computing Machinery}, title = {Compiling {Polymorphism} {Using} {Intensional} {Type} {Analysis}}, year = {1995} }