awesome-compilers-languages

Compiler toolkit

A curated collection of resources and guides for building programming languages, compilers, and interpreters.

A curated list of awesome programming language design, domain specific languages and homebrew compilers

GitHub

40 stars
5 watching
1 forks
last commit: almost 2 years ago
Linked from 1 awesome list

awesomeawesome-list

Awesome Formal Languages and Compilers / Tutorials / Writing a C Compiler

Writing a C Compiler - Part 1: Integers
Writing a C Compiler - Part 2: Unary Operators
Writing a C Compiler - Part 3: Binary Operators
Writing a C Compiler - Part 4: Even More Binary Operators
Writing a C Compiler - Part 5: Local Variables
Writing a C Compiler - Part 6: Conditionals
Writing a C Compiler - Part 7: Compound Statements
Writing a C Compiler - Part 8: Loops

Awesome Formal Languages and Compilers / Tutorials

PEG parser in Perl
Build Your Own Lisp
Writing your own programming language and compiler with Python

Awesome Formal Languages and Compilers / Tutorials / Let's Build A Simple Interpreter

Let's Build A Simple Interpreter - Part 1
Let's Build A Simple Interpreter - Part 2
Let's Build A Simple Interpreter - Part 3
Let's Build A Simple Interpreter - Part 4
Let's Build A Simple Interpreter - Part 5
Let's Build A Simple Interpreter - Part 6
Let's Build A Simple Interpreter - Part 7: Abstract Syntax Trees
Let's Build A Simple Interpreter - Part 8
Let's Build A Simple Interpreter - Part 9
Let's Build A Simple Interpreter - Part 10
Let's Build A Simple Interpreter - Part 11
Let's Build A Simple Interpreter - Part 12
Let's Build A Simple Interpreter - Part 13: Semantic Analysis
Let's Build A Simple Interpreter - Part 14: Nested Scopes and a Source-to-Source Compiler
Let's Build A Simple Interpreter - Part 15
Let's Build A Simple Interpreter - Part 16: Recognizing Procedure Calls
Let's Build A Simple Interpreter - Part 17: Call Stack and Activation Records
Let's Build A Simple Interpreter - Part 18: Executing Procedure Calls
Let's Build A Simple Interpreter - Part 19: Nested Procedure Calls

Awesome Formal Languages and Compilers / Tutorials

Dragon taming with Tailbiter, a bytecode compiler for Python
BASIC Interpreter Implemented in a Jupyter Notebook 23,140 24 days ago
Let's Write a Brainfuck Compiler
Build a JS Interpreter in JavaScript Using Acorn as a Parser
Let's Write an LLVM Specializer for Python!
Implementing a JIT Compiled Language with Haskell and LLVM
Write You a Haskell- Building a modern functional compiler from first principles.
PEG Parsing Series - Guido van Rossum

Awesome Formal Languages and Compilers / Tutorials / PEG Parsing Series - Guido van Rossum

PEG Parsing Series - Part 1: PEG Parsers
PEG Parsing Series - Part 2: Building a PEG Parser
PEG Parsing Series - Part 3: Generating a PEG Parser
PEG Parsing Series - Part 4: Visualizing PEG Parsing
PEG Parsing Series - Part 5: Left-recursive PEG Grammars
PEG Parsing Series - Part 6: Adding Actions to a PEG Grammar
PEG Parsing Series - Part 7: A Meta-Grammar for PEG Parsers
PEG Parsing Series - Part 8: Implementing PEG Features
PEG Parsing Series - Part 9: PEG at the Core Developer Sprint

Awesome Formal Languages and Compilers / Tutorials

Pyleri - Parsing with Ease

Awesome Formal Languages and Compilers / Videos

Writing a PEG parser for fun and profit - Guido van Rossum

Awesome Formal Languages and Compilers / Tools

PyParsing - A Python Parsing Module 2,233 3 days ago
Lark - A parsing toolkit for Python 4,909 8 days ago
Unicode-friendly lexer generator for OCaml 240 20 days ago
Menhir - A LR(1) parser generator for OCaml
LPeg - Parsing Expression Grammars in Lua with first-class patterns
Python Left-Right Parser (Pyleri) - An easy-to-use parser created for SiriDB 121 8 months ago
TatSu - TatSu is a tool that takes grammars in a variation of EBNF as input, and outputs memoizing (Packrat) PEG parsers in Python 408 6 days ago

Awesome Formal Languages and Compilers / Homebrew

A C parser and interpreter written in Python 347 about 5 years ago

Backlinks from these awesome lists:

More related projects: