notes
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
- Go
- 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.