About compilers and interpreters

If you always wanted to write your programming language - welcome. Here you will surely find something interesting for yourself.
GitHub-user yawnt has compiled a wonderful selection of links for fans of dragons, languages and other delicious entrails. And knowledgeable comrades in the comments will probably share with you and other dishes.
Yawnt writes the following:
With each passing day, the topic of compilers, interpreters, and the design of programming languages as a whole is more and more interesting to me. And I decided to share with the people links to the materials I collected (most of which I have yet to read: <). I hope someone will find it useful.
I did not include (and do not intend to) link to the official documentation in the list, because I consider it obvious that the first thing to look at is there; P.
All, of course, is in English. We share links to Russian-language materials (and to existing translations of these works) in the comments, gentlemen! The theme is insanely exciting.
References
LLVM
- Discussion on HN with links to different tutorials;
- Creating a working compiler on LLVM: part 1 , part 2 ;
- Chapter on LLVM from the book " Architecture of open-source applications ";
- Description of the GHC backend for LLVM;
- The basics and infrastructure of the LLVM compiler;
- Life Instructions at LLVM;
- LLVM is an infrastructure for multi-stage optimization .
Virtual machines
- TerrorVM ;
- Virtual machines for programming languages ;
- Sol - a small solar virtual machine [picture above - from here] ;
- Fairly fast VM in a fairly short time ;
- Virtual machines: abstractions and implementations ;
- Virtual machine for multilingual performance ;
- Joeq - virtual machine and compiler;
- Draft Falcon organic virtual machine specification ;
- Parallel Scheduler for VM Falcon;
- A bunch of different Self language links .
Compilers
- Compiler design : theory, tools and examples;
- Compiler creation ;
- Compilers and compilers compilers .
Interpreters
- How to write a lisp interpreter in Python;
- How to write a lisp interpreter in Python is even better ;
- Creation of a prototype-oriented object model;
- Implementing the rules from the “ LISP Micro Guide ” in C (thanks to icon for clarification);
- Tiny, readable Scheme interpreters .
Garbage collectors
Books
Compilers
Interpreters
- SICP: in English , in Russian , video ;
- Lisp in Small Pieces ;
- Interpreting Lisp .
Garbage collectors
Any different code
- LISP.c ;
- TinyClojure ;
- Prototype object system on functions ;
- TinyVM ;
- Homoiconic JS ;
- TinyScheme ;
- VM and JIT compiler on the stack ;
- MiniScheme ;
- Kaleidoscope written in LLVM-C .
Stay in touch.
The original post is posted on github , offer the author links, he will add them to the post.
I am sure you know another billion interesting sources of information on a given topic (for example, there is a good course on Coursera). Share your knowledge!