Hasty Briefsbeta

Bilingual

Writing that changed how I think about programming languages

a year ago
  • #optimization
  • #compilers
  • #programming-languages
  • Andy Wingo's simple semi-space collector made Cheney/copying/compacting garbage collectors practical and understandable.
  • CF Bolz-Tereick's 'Implementing a Toy Optimizer' introduced forwarding pointers for instruction rewrites, replacing find-and-replace methods.
  • CF Bolz-Tereick's 'A Knownbits Abstract Domain for the Toy Optimizer, Correctly' used Z3 as a proof engine and verifier for Python code.
  • Chris Fallin's 'Cranelift, Part 3: Correctness in Register Allocation' advocated proving correctness on a single input for meaningful crashes or correct allocations.
  • Russ Cox's 'Regular Expression Matching: the Virtual Machine Approach' demystified regex engines and coroutines with a 50-line implementation.
  • Andrej Karpathy's 'micrograd' provided a library-free neural network implementation, making machine learning more accessible.
  • Fil Pizlo's 'How I implement SSA form' introduced an Identity tag for union-find, saving space and introducing Phi/Upsilon form and TBAA-style heap effects.
  • Fil Pizlo's 'Speculation in JavaScriptCore' detailed JSC's optimizer workings and Fil's optimization philosophy.
  • Chandler Carruth's 'Modernizing Compiler Design for Carbon Toolchain' explained aggressive compile-time budgets and per-layer compiler architecture.
  • Allison Kaptur's 'A Python Interpreter Written in Python' clarified bytecode interpreters and CPython internals.
  • Eli Bendersky's 'Parsing expressions by precedence climbing' offered an easier alternative to recursive descent parsers.
  • Takashi Kokubun's 'Ruby JIT Challenge' showcased a novel approach to register allocation using a virtual stack of physical registers.
  • Abdulaziz Ghuloum's 'An Incremental Approach to Compiler Construction' simplified compilers into single-pass, feature-by-feature implementations.
  • Fernando Borretti's 'Lessons from Writing a Compiler' highlighted a stripey implementation strategy for compilers.
  • The 'egg: Fast and extensible equality saturation' paper expanded optimizer thinking by generating all expression versions and selecting the best.
  • Chris Fallin's 'Cranelift: Using E-Graphs for Verified, Cooperating Middle-End Optimizations' demonstrated e-graphs' practicality in production compilers.
  • Phil Zucker's 'Acyclic Egraphs and Smart Constructors' explored acyclic egraphs, with insights deepening over time.
  • Bob Nystrom's Reddit comment and Adrian Sampson's 'Flattening ASTs' discussed compact AST storage and parallel abstract interpretation possibilities.