notes icon indicating copy to clipboard operation
notes copied to clipboard

A notebook on compilers, programming languages, and other topics.

Thalia's notes

A notebook on compilers, programming languages, computing history, and other topics.

Compilers

  • LLVM
    • LLVM M.S. Thesis
    • LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
    • 2020 LLVM Virtual Developers' Meeting
    • LLVM architecture presentation
    • Tutorials
    • Resources
    • Libraries
    • Language reference
    • Version history
  • MLIR
    • MLIR: Scaling Compiler Infrastructure for Domain Specific Computation
    • Tutorials
    • Libraries
    • Projects
  • GraalVM
    • GraalVM papers
    • Graal IR: An Extensible Declarative Intermediate Representation
    • Practical Second Futamura Projection: Partial Evaluation for High-Performance Language Interpreters
    • Release highlights
  • HotSpot
    • The Sea of Nodes and the HotSpot JIT
  • WebAssembly
    • Bringing the Web up to Speed with WebAssembly
    • Not So Fast: Analyzing the Performance of WebAssembly vs. Native Code
    • Multi-Value All the Wasm!
  • Cranelift
    • ægraphs: Acyclic E-graphs for Efficient Optimization in a Production Compiler
    • Contributing to Cranelift
    • Cranelift mid-end optimizers
  • Emscripten
  • QBE
  • CompCert
  • Mesa NIR
  • Coffee Compiler Club
    • 2023-09-08 on Sea of Nodes
    • 2023-10-06 with Simon Peyton Jones
  • Control and data edges in IRs
  • Graph IRs

Programming languages

  • Programming languages
    • Go
      • Go history
    • Idris
      • Learning Idris
    • jq
      • Initial implementations of jq
      • The biggest jq programs in the world
    • Rust
      • Converting between Rug and bitvec types
      • Crates and tutorials
      • foldhash vs rustc-hash
      • Rust enum expressivity
      • Rust history
      • Trivia about Rust Types
    • Zig
  • Esoteric programming languages
    • AsciiDots
    • Brainfuck
      • Brainfuck
      • Ook!
      • Spoon
    • Deadfish
    • Featured languages on the Esolang wiki (category)
    • Leaf
    • PLT Games (category)
    • Whitespace
  • Comparisons
    • Programming language comparisons
    • Programming language specifications
    • Comparison of integer literal syntax
  • Lists
    • Programming language alphabet challenge
    • PL groups at universities
    • Programming languages I know

Logic

  • Adapton
    • Adapton: Composable, Demand-Driven Incremental Computation (PLDI 2014)
    • Incremental Computation with Adapton (University of Colorado Boulder, 2015)
    • miniAdapton: A Minimal Implementation of Incremental Computation in Scheme (2016)
    • Presentation outline (2022)
  • BDDs and other decision diagrams
  • E-graphs
    • ægraphs: Acyclic E-graphs for Efficient Optimization in a Production Compiler
    • ae-graphs (in Cranelift) vs e-graphs
    • E-graph literature survey
    • Guided equality saturation
  • Optimizing Datalog
  • Rete Algorithm

Projects

  • Buffered I/O library ideas
  • Designing a dependently typed systems programming language
  • Detecting esolang polyglots
  • GHC decompilation
  • Loose threads
  • Personal code forge
  • Post-undergrad projects
  • Project genesis
  • Requesting a list of all Git commits from a forge
  • tar library

Topics

  • Archival
    • Archiver tool
    • Code Golf archival
    • Developing with the Internet Archive
  • Bits and arithmetic
  • Colors
    • Color in browser engines
    • Color libraries and color spaces
  • Compiler optimizations
    • Compiler optimization patterns
    • Tail-call optimization
  • Computability
  • Data structures
  • Easter eggs
  • Error handling
  • Floating-point arithmetic
    • Boolean algebra with floating-point numbers
    • Software floating point libraries
  • Futamura projections
  • History of Plan 9
  • Integer division and modulo rounding
  • Implementing generators
  • Language server design
  • List of ciphers
  • Minecraft decompilation
  • Nand to Tetris
  • QR code art
  • Regular expressions
    • History (see the Regular Expression Museum)
    • Exploration of representing specialized string-searching
    • Pike–Levenshtein: Regular expressions with an edit distance
    • Polymorphic automata for string- and AP-matching
    • Recross ideas
  • Short notes on papers
  • Tree-sitter
  • Trusting Trust
  • Unexpectedly Turing-complete
  • Version control systems
    • List of version control systems
    • VCS import and export

Whitespace

  • Assembly
  • Compilation
    • Front-end
    • Back-end
  • Design
  • History
  • Programs
  • Semantics
  • Syntax
  • Tools
  • VM

License

Licensed under the terms of the GNU Free Documentation License, version 1.3.