General documentations
- Learning to Write a Compiler : List of interresting links on StackOverflow
Courses
- MIT 6.035 Computer Language Engineering (video, 49 mn)
- Programming Languages, Building a Web Browser : free class on Udacity, teaching how to create a web browser engine with HTML and JS interpreters
PDF books
- Programming Languages: Application and Interpretation
- An introduction to compilers
- Basics of Compiler Design by Torben Mogensen
- Lightweight Compiler Techniques
- Compiler Design: Theory, Tools, and Examples by Seth D. Bergmann
- Compiler Construction by Niklaus Wirth
- Blunt Axe Basic: Let's Build a Scripting Engine-Compiler
- Compiler Construction using Flex and Bison
Tutorials
- Writing Your Own Toy Compiler Using Flex, Bison and LLVM
- Implementing A Scripting Engine by Jan Niestadt on Flipcode (mirror)
- Make Your Own Programming Language : code examples in Javascript
- Compiler Construction on WikiBooks
AST interpreter versus Bytecode/VM
- How can be bytecode used for optimizing the execution time of dynamic langauges?
- Four Ways to Write an Interpreter (part of the XIDEK Extensible Interpreter Development Kit)
Parsers, lexers
Lex/Yacc
- Mini manuel d'utilisation de Lex et Yacc (in french)
- A Guide to Lex & Yacc (PDF)
- Flex documentation
- Flex manual
- ANSI C grammar : Lex specification / Yacc grammar
re2c
Peg
- Parsing Expression Grammars Page
- peg/leg — recursive-descent parser generators for C
- PEG Basics
- peg-markdown : example of a Markdown interpreter written in C