βHaskell to WebAssemblyβ
βAwesome compilersβ
βCompiler Explorer - Run compilers interactively from your web browser and interact with the assembly. (HN) (Code)
βShivyC - C compiler created in Python.
βswc - Super-fast alternative for Babel.
βIntroduction to Compilers - Swift Playground giving an overview over the inner workings of modern compilers.
βccache - Fast compiler cache.
βStarlark in Go - The Starlark configuration language, implemented in Go.
βModern CMake Examplesβ
βsccache - Shared Compilation Cache.
βShort overview of "C--"β
βtal - Implementation of Typed Assembly Language (Morrisett, Walker, Crary, Glew).
βmicroml - Minimal ML, type-inferred, compiled, and/or interpreted in less than 800 lines.
βlibffi - Portable foreign-function interface library.
βgo2ll - Toy go compiler to LLVM.
βlibFirm - Graph based intermediate representation and backend for optimising compilers.
βmimalloc - Compact general purpose allocator with excellent performance.
βPropeller - Profile Guided Optimizing Large Scale LLVM-based Relinker.
βIntel(r) SPMD Program Compiler - Compiler for a variant of the C programming language, with extensions for single program, multiple data programming.
βhobbes - Language and an embedded JIT compiler.
βFunctional Language Research Compiler (FLRC) - Designed to be a general compiler framework for functional languages.
βdino - Compiler / PL Experimentation in Rust.
βCompiler Writing Journeyβ
βClang Build Analyzer - Can be useful to figure out what takes time during compilation of one source file.
βCompilers for humansβ
βCompiler notesβ
βAdventures of a Haskell compiler - Main goal is to continually level-up a self-hosting Haskell compiler. (Code)
βEssentials of Interpretation (2019) - Course on implementing an interpreter for a programming language similar to Python or JavaScript, from scratch.
βhtcc - Tiny C language compiler (x86-64).
βTermite - Generic distributed compilation system.
βugdb - Alternative TUI for gdb.
βTrybuild - Test harness for ui tests of compiler diagnostics.
βCarpentry Compilerβ
βIcecream - Distributed compiler with a central scheduler to share build load.
βMIR Project - Light-weight JIT compiler based on MIR (Medium Internal Representation).
βReflections on Trusting Trust by Ken Thompson - Creating a version of C compiler that, when presented with the source code for the "login" program, would automatically compile in a backdoor to allow him entry to the system.
βSPARTA - Library of software components specially designed for building high-performance static analyzers based on the theory of Abstract Interpretation.
βPPCI - Compiler for ARM, X86, MSP430, xtensa and more implemented in pure Python.
βAwesome JITβ
βELVM - Similar to LLVM but dedicated to Esoteric Languages.
βAn Intro to Compilers (2017) - How to Speak to Computers. (HN)
βThe Super Tiny Compiler - Ultra-simplified example of all the major pieces of a modern compiler written in easy to read JavaScript.
βMLIR Tutorialβ
βBootstrapping compilers - Building up compilers and interpreters and tools from nothing.
βLinkers go brrrrr (2020)β
βHex Rays - State-of-the-art binary code analysis solutions.
βHexRaysDeob - Hex-Rays microcode API plugin for breaking an obfuscating compiler.
βInline caching (2021)β
βCompilers are hard (HN)
βCompiler Video Seriesβ
βCompiler Class (2021) (HN)
βToolchains.net - Collection of toolchain resources.
βJitFromScratch - Example project from my talks in the LLVM Social Berlin and C++ User Group.