Skip to content

Latest commit

 

History

History
137 lines (127 loc) · 35.2 KB

page8.md

File metadata and controls

137 lines (127 loc) · 35.2 KB

Compiler Technology/Implementation Techniques and Optimization

Program Analysis, Inlining and other Optimizations

  • Andrew Keep and R. Kent Dybvig. "Enabling cross-library optimization and compile-time error checking in the presence of procedural macros". 2010 Workshop on Scheme and Functional Programming. August 2010. Available online: pdf.
  • Christopher Earl, Matthew Might and David Van Horn. "Pushdown Control-Flow Analysis of Higher-Order Programs". 2010 Workshop on Scheme and Functional Programming. August 2010. Available online: pdf.
  • Matthew Might and Tarun Prabhu. "Interprocedural Dependence Analysis of Higher-Order Programs via Stack Reachability". 2009 Workshop on Scheme and Functional Programming. August 2009. Available online: pdf.
  • Philippe Meunier, Robert Bruce Findler and Matthias Felleisen. "Modular Set-Based Analysis from Contracts". Principles of Programming Languages, POPL 2006. January 2006. Available online: pdf.
  • Ulrik Pagh Schultz. "Explicit and Implicit Aspects of Scope and Block Structure". Masters Thesis. University of Aarhus. June 1997. Available online: ps pdf.
  • Olivier Danvy and Ulrik Pagh Schultz. "Lambda-dropping: transforming recursive equations into programs with block structure". Partial Evaluation and Semantics-Based Program Manipulation (PEPM'97). June 1997. Available online: ACM Digital Library.
  • Olivier Danvy and Ulrik Pagh Schultz. "Lambda-Dropping: Transforming Recursive Equations into Programs with Block Structure ". University of Aarhus. RS-97-6. March 1997. Available online: ps pdf.
  • Olivier Danvy and Ulrik Pagh Schultz. "Lambda-Dropping: Transforming Recursive Equations into Programs with Block Structure". Theoretical Computer Science. Volume 248/1-2. November 2000. Available online: ps pdf.
  • Olivier Danvy and Ulrik Pagh Schultz. "Lambda-Dropping: Transforming Recursive Equations into Programs with Block Structure ". University of Aarhus. RS-99-27. September 1999. Available online: ps pdf.
  • Oscar Waddell, Dipanwita Sarkar and R. Kent Dybvig. "Robust and effective transformation of letrec". Workshop on Scheme and Functional Programming (2002). October 2002. Available online: pdf.
  • Mitchell Wand. "Continuation-Based Program Transformation Strategies". Journal of the ACM. 27. 1. January 1980. Available online: ACM Digital Library.
  • Williams Ludwell Harrison III. "The Interprocedural Analysis and Automatic Parallellization of Scheme Programs". Lisp and Symbolic Computation: An International Journal. 2. 3/4. October 1989. Available online: .
  • J. Michael Ashley and R. Kent Dybvig. "A Practical and Flexible Flow Analysis for Higher-Order Languages". ACM Transactions on Programming Languages and Systems. Vol. 20, Num. 4. July 1998. Available online: pdf.
  • Jeffrey Mark Siskind. "Flow-Directed Lightweight Closure Conversion". NEC Research Institute, Inc.. Technical Report 99-190R. December 1999. Available online: pdf.
  • Oscar Waddell and R. Kent Dybvig. "Fast and Effective Procedure Inlining". Proceedings of the Fourth International Symposium on Static Analysis (SAS '97). 1302. September 1997. Available online: ps.
  • Manuel Serrano. "Inline expansion: when and how?". Programming Language Implementation and Logic Programming, PLILP'97. September 1997. Available online: ps.
  • Manuel Serrano. "A Fresh Look to Inlining Decision". International Computer Symposium, ICS'95. November 1995. Available online: ps.
  • Manuel Serrano. "Control flow analysis: a functional languages compilation paradigm". Symposium on Applied Computing, SAC'95. February 1995. Available online: ps pdf.
  • J. Michael Ashley and Charles Consel. "Fixpoint Computation for Polyvariant Static Analyses of Higher-Order Applicative Programs". ACM Transactions on Programming Languages and Systems. 16(5). September 1994. Available online: pdf.
  • J. Michael Ashley. "A Practical and Flexible Flow Analysis for Higher-Order Languages". PhD. Thesis. Indiana University. 1996. Available online: pdf.
  • J. Michael Ashley. "A Practical and Flexible Flow Analysis for Higher-Order Languages". Conference Record of POPL'96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 1996. Available online: pdf.
  • J. Michael Ashley. "The Effectiveness of Flow Analysis for Inlining". Proceedings of the 1997 ACM International Conference on Functional Programming. Available online: pdf.
  • Dominique Boucher, Marc Feeley. "Abstract Compilation: a New Implementation Paradigm for Static Analysis". Compiler Construction Conference. April 1996. Available online: ps.
  • Dominique Boucher, Marc Feeley. "Un systeme pour l'optimisation globale de programmes d'ordre superieur par compilation abstraite separee". departement d'informatique et r.o., Universite de Montreal. Rapport technique 992. Septembre 1995. Available online: ps.
  • Cormac Flanagan and Matthias Felleisen. "Componential Set-Based Analysis". Proceedings of PLDI 97. 1996. Available online: ps.
  • Cormac Flanagan and Matthias Felleisen. "Componential Set-Based Analysis". Transactions on Programming Languages and Systems. 1999. Available online: ps.
  • Cormac Flanagan. "Effective Static Debugging via Componential Set-Based Analysis". PhD. Thesis. Rice University. Available online: ps.
  • Cormac Flanagan and Matthias Felleisen. "Modular and Polymorphic Set-Based Analysis: Theory and Practice". Rice University. TR 96-266. 1996. Available online: ps.
  • Cormac Flanagan and Matthias Felleisen. "Set-Based Analysis for Full Scheme and Its Use in Soft-Typing". Rice University. TR 95-254. 1995. Available online: ps.
  • Olin Shivers. "Control-flow analysis in Scheme". Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation. June 1988. Available online: ps pdf.
  • Olin Shivers. "Super-beta: Copy, constant, and lambda propagation in Scheme". CMU School of Computer Science. May 1990. Available online: ps pdf.
  • Olin Shivers. "Useless-variable elimination". Proceedings of the Workshop on Static Analysis of Equational, Functional and Logic Programs. April 1990. Available online: ps pdf.
  • Olin Shivers. "CPS data-flow analysis example". CMU School of Computer Science. May 1990. Available online: ps pdf.
  • Olin Shivers. "Control-Flow Analysis of Higher-Order Languages". PhD. Thesis. Carnegie Mellon University. May 1991. Available online: ps pdf.
  • Olin Shivers. "The semantics of Scheme control-flow analysis". Proceedings of the First ACM SIGPLAN and IFIP Symposium on Partial Evaluation and Semantics-Based Program Manipulation. June 1991. Available online: ps pdf.
  • Amr Sabry and Matthias Felleisen. "Is Continuation-Passing Useful for Data Flow Analysis?". Proceedings of PLDI 94. 1994. Available online: ps.
  • Andrew E. Ayers. "Abstract Analysis and Optimization of Scheme". PhD. Thesis. MIT. 1993.
  • Bjarne Steensgaard and Morten Marquard. "A Polyvariant Closure Analysis with Dynamic Widening". May 1994. Available online: ps.
  • Dominique Boucher. "Analyse et optimisation globales de modules compiles separement". PhD. Thesis. Universite de Montreal. December 1999. Available online: ps.
  • Suresh Jagannathan and Andrew K. Wright. "Polymorphic Splitting: An Effective Polyvariant Flow Analysis". ACM Transactions on Programming Languages and Systems. March 1998. Available online: ps.
  • Suresh Jagannathan and Andrew K. Wright. "Flow-Directed Inlining". ACM Symposium on Programming Language Design and Implementation (PLDI96). May 1996. Available online: ps.
  • Suresh Jagannathan and Andrew K. Wright. "Compiling with Flow Analysis". ACM Computing Surveys. June 1996. Available online: ps.
  • Suresh Jagannathan and Andrew K. Wright. "Effective Flow Analysis for Avoiding Runtime Checks". 2nd International Static Analysis Symposium. LNCS 983. September 1995. Available online: ps.
  • Suresh Jagannathan and Andrew K. Wright. "Flow-Directed Inlining". ACM Symposium on Programming Language Design and Implementation (PLDI96). May 1996. Available online: ps.
  • Peter A. Bigot and Saumya Debray. "Return Value Placement and Tail Call Optimization in High Level Languages". Journal of Logic Programming. January 1999. Available online: ps.
  • Saumya Debray, Robert Muth and Scott Watterson. "Link-time Improvement of Scheme Programs". International Conference on Compiler Construction (CC'99). March 1999. Available online: ps.

Type Systems and Soft Typing

  • Ryan Culpepper, Sam Tobin-Hochstadt and Matthew Flatt. "Advanced Macrology and the Implementation of Typed Scheme". 2007 Workshop on Scheme and Functional Programming. September 2007. Available online: pdf.
  • Danny Dube and Marc Feeley. "A Demand-Driven Adaptive Type Analysis". International Conference on Functional Programming (ICFP'2002). October 2002. Available online: ps.
  • Danny Dube. "Demand-driven type analysis for dynamically-typed functional languages". PhD. Thesis. Universite de Montreal. August 2002. Available online: ps.
  • Andrew K. Wright and Robert Cartwright. "A Practical Soft Type System for Scheme". Transactions on Programming Languages and Systems. 1997. Available online: ps.
  • Cormac Flanagan and Matthias Felleisen. "A New Way of Debugging LISP Programs". Proceedings of LUGM 98. 1998. Available online: ps.
  • Andrew K. Wright. "Practical Soft Typing". PhD. Thesis. Rice University. Available online: ps.
  • Mike Fagan. "Soft Typing: An Approach to Type Checking for Dynamically Typed Languages". PhD. Thesis. Rice University. Available online: ps.
  • Robert Cartwright and Matthias Felleisen. "Program Verification through Soft Typing". Computing Surveys. 1996. Available online: ps.
  • Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, Stephanie Weirich and Matthias Felleisen. "Catching Bugs in the Web of Program Invariants". Proceedings of PLDI 96. 1996. Available online: ps.
  • Andrew K. Wright. "Simple Imperative Polymorphism". LISP and Symbolic Computation. 1995. Available online: ps.
  • Andrew K. Wright and Matthias Felleisen. "A Syntactic Approach to Type Soundness". Information and Computation. 1994. Available online: ps.
  • Andrew K. Wright and Robert Cartwright. "A Practical Soft Type System for Scheme". Proceedings of LFP 94. 1994. Available online: ps.
  • Andrew K. Wright and Robert Cartwright. "A Practical Soft Type System for Scheme". Rice University. TR 93-218. 1993. Available online: ps.
  • Robert Cartwright and Mike Fagan. "Soft Typing". Proceedings of PLDI 91. 1991. Available online: ps.
  • Olin Shivers. "Data-flow analysis and type recovery in Scheme". CMU School of Computer Science. Technical Report CMU-CS-90-115. March 1990. Available online: ps pdf.
  • Danny Dube, Marc Feeley. "Demand-Driven Type Analysis: an Introduction". 2nd Workshop on Scheme and Functional Programming. September 2001. Available online: ps pdf.
  • Philippe Meunier, Robert Bruce Findler, Paul A. Steckler, Mitchell Wand. "Selectors Make Set-Based Analysis Too Hard". 2nd Workshop on Scheme and Functional Programming. September 2001. Available online: ps pdf.
  • Manfred Widera. "An Algorithm for Checking the Disjointness of Types". 2nd Workshop on Scheme and Functional Programming. September 2001. Available online: ps pdf.
  • Manfred Widera. "A Sketch of Complete Type Inference for Functional Programming". International Workshop on Functional and (Constraint) Logic Programming (WLFP 2001). September 2001. Available online: ps pdf.
  • Steven L. Jenkins and Gary T. Leavens. "Ploymorphic Type-Checking in Scheme". Journal of Computer Languages. Vol. 22. Num. 4. 1996.
  • W. F. Wong. "Optimizing Floating Point Operations in Scheme". Journal of Computer Languages. Vol. 25. 1999.
  • Mitchell Wand. "Finding the Source of Type Errors". Conference Record of the Thirteenth Annual Symposium on Principles of Programming Languages. 1986.
  • Fritz Henglein. "Global Tagging Optimization by Type Inference". Proceedings of the 1992 ACM Conference on Lisp and Functional Programming. June 1992. Available online: ACM Digital Library.
  • Fritz Henglein and Jakob Rehof. "Safe polymorphic type inference for a Dynamically Typed Language: Translating Scheme to ML". ACM Conference on Functional Programming Languages and Computer Architecture (FPCA'95). 1995. Available online: ps pdf.

Code Generation

  • Robert G. Burger, Oscar Waddell and R. Kent Dybvig. "Register Allocation Using Lazy Saves, Eager Restores, and Greedy Shuffling". ACM SIGPLAN 1995 Conference on Programming Language Design and Implementation. June 1995. Available online: ps.
  • Marc Feeley, Guy Lapalme. "Closure Generation Based on Viewing LAMBDA As EPSILON Plus COMPILE". Journal of Computer Languages. Vol. 17, No. 4. 1992. Available online: ps.
  • R. Kent Dybvig, Robert Hieb and Tom Butler. "Destination-Driven Code Generation". Indiana University Computer Science Department. Technical Report #302. February 1990. Available online: ps.
  • Marc Feeley, Guy Lapalme. "Using Closures for Code Generation". Journal of Computer Languages. Vol. 12, No. 1. 1987. Available online: ps.
  • Mario Latendresse. "Automatic generation of compact programs and virtual machines for Scheme". Scheme and Functional Programming 2000. September 2000. Available online: ps pdf.
  • Mario Latendresse. "Generation de machines virtuelles pour l'execution de programmes compresses". PhD. Thesis. Universite de Montreal. April 2000. Available online: ps.

Garbage Collection and Memory Management

  • William D Clinger and Felix S. Klock II. "Scalable Garbage Collection with Guaranteed MMU". 2009 Workshop on Scheme and Functional Programming. August 2009. Available online: pdf.
  • Adam Wick and Matthew Flatt. "Memory Accounting without Partitions". ISMM 2004. 2004. Available online: pdf.
  • Stephen Paul Carl. "A Framework for Memory-Management Experimentation". 2004 Scheme Workshop. September 2004. Available online: ps pdf.
  • Lars Thomas Hansen and William D. Clinger. "An Experimental Study of Renewal-Older-First Garbage Collection". International Conference on Functional Programming (ICFP'2002). October 2002. Available online: pdf.
  • Adam Wick, Matthew Flatt and Wilson Hsieh. "Reachability-based memory accounting". Workshop on Scheme and Functional Programming (2002). October 2002. Available online: pdf.
  • Richard A. Kelsey. "Tail-Recursive Stack Disciplines for an Interpreter". Available online: ps.
  • Julia L. Lawall and Daniel P. Friedman. "Toward Leakage Containment". Computer Science Department, Indiana University. February 1992. Available online: ps.
  • James S. Miller and Guillermo J. Rozas. "Garbage Collection is Fast, But a Stack is Faster". MIT AI Lab. AIM-1462. March 1994. Available online: ps pdf.
  • R. Kent Dybvig, David Eby and Carl Bruggeman. "Don't Stop the BiBOP: Flexible and Efficient Storage Management for Dynamically-Typed Languages". Indiana University. technical report #400. March 1994. Available online: ps.
  • R. Kent Dybvig, David Eby and Carl Bruggeman. "Guardians in a Generation-based Collector". ACM SIGPLAN 1993 Conference on Programming Language Design and Implementation. June 1993. Available online: ps.
  • Martin Larose, Marc Feeley. "A Compacting Incremental Collector and its Performance in a Production Quality Compiler". Proceedings of the 1998 International Symposium on Memory Management. October 1998. Available online: ps.
  • Manuel Serrano, Marc Feeley. "Storage Use Analysis and its Applications". ACM SIGPLAN International Conference on Functional Programming. May 1996. Available online: ps.
  • Danny Dube, Marc Feeley, Manuel Serrano. "Un GC temps reel semi-compactant". Journ ees Francophones des Langages Applicatifs. January 1996. Available online: ps.
  • Manuel Serrano and Hans J. Boehm. "Understanding Memory allocations of Scheme Programs". International Conference on Functional Programming, ICFP'00. September 2000. Available online: ps.
  • David Gudeman. "Representing Type Information in Dynamically Typed Languages". University of Arizona. TR 93-27. October 1993. Available online: ps.
  • Paul R. Wilson. "Uniprocessor Garbage Collection Techniques". Available online: ps.
  • Paul R. Wilson, Michael S. Lam and Thomas G. Moher. "Caching Considerations for Generational Garbage Collection". 1992 ACM Symposium on Lisp and Functional Programming. June 1992. Available online: ps.
  • Olivier Danvy. "Memory Allocation and Higher-Order Functions". Interpreters and Interpretive Techniques (SIGPLAN'87). June 1987.
  • Guy Lewis Steele, Jr.. "Macaroni is Better than Spaghetti". Proceedings of the Symposium on Artificial Intelligence and Programming Languages. August 1977. Available online: ACM Digital Library.

Miscellaneous Implementation Topics

  • Felix S. Klock II. "The layers of Larceny's foreign function interface". 2008 Workshop on Scheme and Functional Programming. September 2008. Available online: pdf.
  • Marcus Crestani. "Foreign-Function Interfaces for Garbage-Collected Programming Languages". 2008 Workshop on Scheme and Functional Programming. September 2008. Available online: pdf.
  • Andrew W. Keep and R. Kent Dybvig. "Ftypes: Structured foreign types". 2011 Workshop on Scheme and Functional Programming. October 2011. Available online: pdf.
  • Nguyen-Minh Bui. "Toward abstract profiling". 2007 Workshop on Scheme and Functional Programming. September 2007. Available online: pdf.
  • Guillaume Marceau, Gregory H. Cooper, Jonathan P. Spiro, Shriram Krishnamurthi and Steven P. Reiss. "The Design and Implementation of a Dataflow Language for Scriptable Debugging". Automated Software Engineering Journal, 2006. 2006. Available online: downloadable paper.
  • Eli Barzilay and Dmitry Orlovsky. "Foreign Interface for PLT Scheme". 2004 Scheme Workshop. September 2004. Available online: ps pdf.
  • Guillaume Marceau and Gregory H. Cooper and Shriram Krishnamurthi and Steven P. Reiss. "A Dataflow Language for Scriptable Debugging". IEEE International Symposium on Automated Software Engineering (ASE2004). September 2004. Available online: downloadable paper.
  • Damien Ciabrini. "Debugging Scheme Fair Threads". 2004 Scheme Workshop. September 2004. Available online: ps pdf.
  • Damien Ciabrini and Manuel Serrano. "Bugloo: A Source Level Debugger for Scheme Programs Compiled into JVM Bytecode". 3th International Lisp Conference. October 2003. Available online: pdf.
  • Marc Feeley and Danny Dube. "PICBIT: A Scheme System for the PIC Microcontroller". Scheme Workshop 2003. November 2003. Available online: ps pdf.
  • John Clements and Matthias Felleisen. "A Tail-Recursive Semantics for Stack Inspections". European Symposium on Programming (ESOP'2003). April 2003. Available online: ps pdf.
  • Danny Dube. "BIT: A very compact Scheme system for embedded applications". Scheme and Functional Programming 2000. September 2000. Available online: ps pdf.
  • Dominique Boucher. "GOld: a link-time optimizer for Scheme". Scheme and Functional Programming 2000. September 2000. Available online: ps pdf.
  • Fred Bayer. "LispMe: An Implementation of Scheme for the PalmPilot". 2nd Workshop on Scheme and Functional Programming. September 2001. Available online: ps pdf.
  • Lars Thomas Hansen. "The Impact of Programming Style on the Performance of Scheme Programs". Masters Thesis. University of Oregon. August 1992. Available online: ps.
  • Pieter H. Hartel, Marc Feeley, Martin Alt, Lennart Augustsson, Peter Baumann, Marcel Beemster, Emmanuel Chailloux, Christine H. Flood, Wolfgang Grieskamp, John H. G. Van Groningen, Kevin Hammond, Bogumil Hausman, Melody Y. Ivory, Richard E. Jones, Jasper Kamperman, Peter Lee, Xavier Leroy, Rafael D. Lins, Sandra Loosemore, Niklas Rojemo, Manuel Serrano, Jean-Pierre Talpin, Jon Thackray, Stephen Thomas, Pum Walters, Pierre Weis, Peter Wentworth. "Benchmarking Implementations of Functional Languages with ``Pseudoknot'' a Float-Intensive Benchmark". Journal of Functional Programming. Vol. 6, No. 4. 1996. Available online: ps.
  • Pieter H. Hartel, Marc Feeley, Martin Alt, Lennart Augustsson, Peter Baumann, Marcel Beemster, Emmanuel Chailloux, Christine H. Flood, Wolfgang Grieskamp, John H. G. Van Groningen, Kevin Hammond, Bogumil Hausman, Melody Y. Ivory, Richard E. Jones, Jasper Kamperman, Peter Lee, Xavier Leroy, Rafael D. Lins, Sandra Loosemore, Niklas Rojemo, Manuel Serrano, Jean-Pierre Talpin, Jon Thackray, Stephen Thomas, Pum Walters, Pierre Weis, Peter Wentworth. "Benchmarking Implementations of Functional Languages with ``Pseudoknot'' a Float-Intensive Benchmark". Journal of Functional Programming. Vol. 6, No. 4. 1996. Available online: ps.
  • Matthias Felleisen and Paul A. Steckler. "Implementing a Static Debugger for a First-Order Functional Programming Language". Rice University. TR 00-359. 2000. Available online: ps.
  • John Clements, Matthew Flatt, Matthias Felleisen. "Modeling an Algebraic Stepper". Proceedings of ESOP 2001. 2001. Available online: ps pdf.
  • John Clements and Matthias Felleisen. "A Tail-Recursive Machine with Stack Inspection". Transactions on Programming Languages and Systems. 2004. Available online: pdf.
  • Robert G. Burger. "Efficient Compilation and Profile-Driven Dynamic Recompilation in Scheme". PhD. Thesis. Indiana University Computer Science Department. March 1997. Available online: ps.
  • Robert G. Burger and R. Kent Dybvig. "An infrastructure for profile-driven dynamic recompilation". IEEE Computer Society 1998 International Conference on Computer Languages. May 1998. Available online: ps.
  • Robert G. Burger and R. Kent Dybvig. "Printing Floating Point Numbers Quickly and Accurately". ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation. June 1996. Available online: ps.
  • William D. Clinger. "How to read floating point numbers accurately". Proceedings of the conference on Programming language design and implementation. June 1990. Available online: ACM Digital Library.
  • Guy Lewis Steele and Jon L. White. "How to print floating-point numbers accurately". Proceedings of the conference on Programming language design and implementation. June 1990. Available online: ACM Digital Library.
  • Christian Queinnec. "Validation Suite Generation". Revue Bigre+Globule. (65). July 1989. Available online: ps.