If you want to learn how to write interpreters and compilers, and at the same time learn how Python, Python bytecode, assembly language, and dynamic typing work, this is the book for you. The only prerequisites are some experience with any programming language and a computer on which you can install Python 3 (or Python 2 if you prefer). A Raspberry Pi is not required. Included in the software package for the book is an interpreter that allows you to run ARM/Raspberry Pi assembly language programs on your Windows, Linux, or Mac OS X systems. If you have not yet learned Python or assembly language, so much the better. You will get the added bonus of learning Python and assembly language while you learn all about interpreters and compilers. Two chapters on assembly language and an appendix on Python cover everything you need to know to start writing interpreters and compilers. The book covers the three types of language processors: pure interpreters, hybrid interpreters, and compilers. Rather than covering each type in depth before going on to the next type, the book initially covers all three at a very introductory level. So the presentation is easy to follow, and the interpreters and compilers are easy to implement. The book then repeats the cycle but at a higher level, and again at an even higher level. If you call it quits after the first cycle, you will have already benefited from a complete, albeit introductory, course on pure interpreters, hybrid interpreters, and compilers. If you want more, you can continue with the more advanced cycles. And if you want to take the depth-first approach, you can do that also.