Notes
- π represents a resource that has been fully read and approved
- β represents a resource that has been skimmed and looks good
- β represents a resource that has been darkf approved.
- No symbol represents a resource that I just threw up here (quanity over quality and all of that)
- Hopefully all links will eventually move to π and/or β
- The Interesting Reads section isn't specifically for compiler development, but might still be interesting to read for a compiler writer
- How to write a very basic compiler
- β Overview of Foreign Function Interfaces
- β Exact difference between Compiler and Interpreter?
- Structure and Interpretation of Computer Programs (Wizard Book)
- Algorithms, 4th ed.
- β Overview of Compilers
- β Overview of Assembly
- Linkers and Loaders
- π Stackexchange Canon
- β S-Expressions
- Programming in Haskell
- β Writing Your Own Toy Compiler Using Flex, Bison and LLVM
- π Kaleidoscope: Implementing a Language with LLVM
- π Compilers: Principles, Techniques, and Tools (Purple Dragon Book)
- Modern Compiler Implementation in ML
- π (How to Write a (Lisp) Interpreter (in Python))
- π (An ((Even Better) Lisp) Interpreter (in Python))
- π Let's Build a Compiler
- β Writing a Brainfuck interpreter in Python
- Building a Brainfuck Interpreter in Swift
- β Build Your Own Lisp
- Overview of Formal Grammars
- Overview of Context-free grammar
- Formal Grammars
- Formal Languages, Grammars, and Automata
- Formal grammar
- Formal Grammar and Languages
- Overview of Preprocessors
- Writing a Preprocessor Overview
- How To Write A Simple Lexical Analyzer or Parser
- β Writing Efficient State Machines in C
- Overview of Parsers
- Is there an alternative for flex/bison that is usable on 8-bit embedded systems?
- Overview of Application Binary Interface
- π Sys V ABI
- Overview of ELF
- Overview of DWARF
- Overview of Mach-O Binary Format
- Overview of COM
- Overview of Portable Executable
- π Simple Virtual Machine
- π Creating a Virtual Machine/Register VM in C
- Overview of Bytecode
- Overview of Java Bytecode
- β Python Bytecode: Fun With Dis
- Overview of Abstract Syntax Tree (AST)
- Abstract Syntax Tree
- Overview of Intermediate language
- β C as an Intermediate Language
- β When does it make sense to compile my own language to C code first?
- Overview of LLVM
- π LLVM
- π GNU Lightning
- π GNU libgccjit
- Overview of Flex
- π Flex Manual
- Overview of Bison
- π Bison Manual
- Pyparsing
- β The LEMON Parser Generator
- Antlr
- Happy
- Overview of Optimizing compilers
- Overview of Compiler Optimizations
- compileroptimizations.com
- Optimize for the Hot path
- β Overview of Loop Tiling
- β Overview of Loop Unrolling
- β Loop Unrolling - An Introduction
- β Stochastic Superoptimization
- π Overview of Shunting Yard Algorithm
- π Overview of Reverse Polish Notation
- β Overview of LR(k) Parsers
- [Overview of Recursive descent parser]
- Overview of LL parsers
- Overview of GLR parsers
- GLL Parsing
- Overview of LALR parsers