Skip to content

Latest commit

 

History

History
177 lines (91 loc) · 11.1 KB

Papers.md

File metadata and controls

177 lines (91 loc) · 11.1 KB

The Papers about PL and Compiler

Compilers

  1. An Efficient Method of Computing Static Single Assignment Form

  2. Simple and Efficient Construction of Static Single Assignment Form - CC 2013

  3. A Brief History of JIT Compilation --John Aycock

  4. An Incremental Approach to Compiler Construction --Abdulaziz Ghuloum. 2006

Compilers -- Frontend

  1. Clang matchers for verified usage of the C++ Standard Template Library --Gábor Horváth, Norbert Pataki. 2014

Compilers -- IR

  1. An efficient method of computing static single assignment form --1989 SSA

  2. From Quads to Graphs: An Intermediate Prepresention's Journey --Cliff Click. 1993 It is the paper about Java HotSport Server Compiler IR.

  3. A Simple Graph-Based Intermediate Representation --Cliff Click, Michael Paleczny. 1995 It is the paper of Java HotSport Server Compiler IR.

  4. Thinking About Intermediate Representations --John Rose. September 2014

  5. IRDL: An IR Definition Language for SSA Compilers --Mathieu Fehr, Jeff Niu, River Riddle. PLDI 2022. Jnue 2022

Compilers -- Optimization

  1. Lazy code motion --Jens Knoop, Oliver Rüthing, Bernhard Steffen. 1992

  2. A New Algorithm for Partial Redundancy Elimination based on SSA Form --Fred Chow, Sun Chan, Robert Kennedy, Shin-Ming Liu, Raymond Lo, Peng Tu. 1997

  3. Lazy code motion --Jens Knoop, Oliver Rüthing, Bernhard Steffen. 2004

Compilers -- Optimization -- Peephole Optimization

  1. Peephole optimization --W. M. McKeeman. 1965

  2. Object Code Optimization --Edward S. Lowry, C. W. Medlock. 1969

  3. A Compact, Machine-Independent Peephole Optimizer --Christopher W. Fraser. 1979

  4. The Design and Application of a Retargetable Peephole Optimizer --Davidson J. W, Fraser C. W. 1980

  5. Code Selection Through Object Code Optimization --Davidson J. W, Fraser C. W. 1984

  6. Fifty years of peephole optimization --Pinaki Chakraborty. 2015

Compilers -- Instruction Selection

  1. Code Selection Through Object Code Optimization --Davidson J. W, Fraser C. W. 1984

  2. Optimal Code Generation for Expression Trees: An Application of BURS Theory --Eduardo Pelegri-Llopart, Susan L. Graham. 1988 It is the paper of Java HotSport Server Compiler instruction selection .

  3. Survey on Instruction Selection --gabriel s. hjort blindell. 2013.

Compilers -- Register Allocation

Compilers -- Register Allocation -- Graph Coloring

  1. Register Allocation via Coloring --Gregory J.Chaitin etc. 1981

  2. Register Allocation and Spilling via Graph Coloring -- G.J.Chaitin. 1982

    core algorithm: On the Geographical Problem of the Four colours --A. B. Kempe. 1879

  3. Improvements to Graph Coloring Register Allocation --Preston Briggs, Keith D.Cooper, Linda Torczon. 1994

  4. Iterated Register Coalescing --Lal George, Andrew W.Appel. 1996

  5. Optimistic Register Coalescing --Jinpyo Park, Soo-Mook Moon. 1998

  6. Optimistic Register Coalescing --Jinpyo Park, Soo-Mook Moon. 2004

  7. On the Complexity of Register Coalescing --Florent Bouchez, Alain Darte, Fabrice Rastello. 2007

Compilers -- Register Allocation -- Linear Scan

  1. Linear Scan Register Allocation --MASSIMILIANO POLETTO, VIVEK SARKAR. 1999

    related: Algorithms for Minimum Coloring, Maximum Clique, Minimum Covering by Cliques, and Maximum Independent Set of a Chordal Graph --Fanica Gavril. 1972

  2. Quality and Speed in Linear-scan Register Allocation --Omri Traub, Glenn Holloway, Michael D. Smith. 1998

  3. Linear Scan Register Allocation in the Context of SSA Form and Register Constraints --Hanspeter Mossenbock, Michael Pfeiffer. 2002

  4. Optimized Interval Splitting in a Linear Scan Register Allocator --Christian Wimmer, Hanspeter Mossenbock. 2005

  5. Extended Linear Scan: an Alternate Foundation for Global Register Allocation --Vivek Sarkar, Rajkishore Barik. 2007

Compilers -- Register Allocation -- PBQP

  1. Nearly Optimal Register Allocation with PBQP --Lang Hames, Bernhard Scholz. 2006

Compilers -- Register Allocation -- SSA Based Register Allocation

Note: Any of the register allocation approaches can be adapted to run on SSA-form programs.

  1. [Allocation de registres et vidage en memoire(Master's thesis)] --Florent Bouchez. 2005

  2. [Polynomial-time graph coloring register allocation] --Philip Brisc, Foad Dabiri, Jamie Macbeth, Majid Sarrafzadeh. 2005

  3. Register Allocation for Programs in SSA-Form --Sebastian Hack, Daniel Grund, and Gerhard Goos. 2006

  4. Linear Scan Register Allocation on SSA Form --Christian Wimmer, Michael Franz. 2010

Compilers -- Register Allocation -- Others

  1. The FORTRAN automatic coding system -- J. W. Backus, R. J. Beeber, S. Best, R. Goldberg, L. M. Haibt, H. L. Herrick, R. A. Nelson, D. Sayre, P. B. Sheridan, H. Stern, I. Ziller, R. A. Hughes, R. Nutt. 1957

The first register allocation of compiler.

  1. A Survey on Register Allocation -- Fernando Magno Quint˜ao Pereira. 2008

  2. A SURVEY OF REGISTER ALLOCATION TECHNIQUES -- Jonathan Protzenko. 2009

  3. A Detailed Analysis of the LLVM’s Register Allocators --Tiago Cariolano de Souza Xavier, George Souza Oliveira, Ewerton Daniel de Lima and Anderson Faustino da Silva. 2012

Virtual Machine

1.A Unified Theory of Garbage Collection --David F.Bacon, Perry Cheng, V.T.Rajan. 2004

2.The Java HotSpot™ Server Compiler --Michael Paleczny, Christopher Vick, Cliff Click. JVM'01,2001

3.Visualization of Program Dependence Graphs --Thomas Würthinger. 2007

The History of Programming Languages

  1. The Development of the C Language --Dennis M. Ritchie

  2. APL since 1978 --Roger K. W. Hui, Morten J. Kromberg

  3. Thriving in a crowded and changing world: C++ 2006–2020 --Bjarne Stroustrup

  4. A history of Clojure --Rich Hickey

  5. History of coarrays and SPMD parallelism in Fortran --John Reid, Bill Long, Jon Steidel

  6. Origins of the D Programming Language --Walter Bright, Andrei Alexandrescu, Michael Parker

  7. Evolution of Emacs Lisp --Stefan Monnier, Michael Sperber

  8. The early history of F# --Don Syme

  9. A history of the Groovy programming language --Paul King

  10. JavaScript: the first 20 years --Allen Wirfs-Brock, Brendan Eich

  11. LabVIEW --Jeffrey Kodosky

  12. History of Logo --Cynthia Solomon, Brian Harvey, Ken Kahn, Henry Lieberman, Mark L. Miller, Margaret Minsky, Artemis Papert, Brian Silverman

  13. Hygienic macro technology --William D. Clinger, Mitchell Wand

  14. A history of MATLAB --Cleve Moler, Jack Little

  15. The origins of Objective-C at PPI/Stepstone and its evolution at NeXT --Brad J. Cox, Steve Naroff, Hansen Hsu

  16. A history of the Oz multiparadigm language --Peter Van Roy, Seif Haridi, Christian Schulte, Gert Smolka

  17. S, R, and data science --John M. Chambers

  18. The evolution of Smalltalk: from Smalltalk-72 through Squeak --Daniel Ingalls

  19. The history of Standard ML --David MacQueen, Robert Harper, John Reppy

  20. Verilog HDL and its ancestors and descendants --Peter Flake, Phil Moorby, Steve Golson, Arturo Salz, Simon Davidmann

Notes: 2-20为HOPL IV: History of Programming Languages会议文章,官方网址(https://hopl4.sigplan.org/).

  1. Thriving in a Crowded and Changing World C++ 2006–2020 --BJARNE STROUSTRUP