Building an Interpreter from Scratch

How do programming languages work under the hood? What’s the difference between compiler and interpreter? What is a virtual machine and JIT-compiler? And what about the difference between functional and imperative programming?

There are so many questions when it comes to implementing a programming language!

In this course, we will learn about compilers and AST interpreters and virtual machines. We will further explore basic expressions and variables in interpreters and learn about variables and environments. We will also explore built-in and native functions, user-defined functions, and call stack and recursive calls. Lastly, we will learn about OOP, class inheritance, and code isolation.

By the end of the course, we will implement a full AST interpreter for our programming language.

All the resource files are added to the GitHub repository at: https://github.com/PacktPublishing/Building-an-Interpreter-from-Scratch

Type
video
Category
publication date
2021-04-22
what you will learn

Build a programing language from scratch
Learn about AOT and JIT-compilers and Transpilers
Learn about Bytecode, LLVM, stack-machines
Learn about call-stack and activation records
Learn about interpreters and compilers
Learn about AST-interpreters and virtual machines

duration
180
key features
Learn about basic expressions and variables in interpreters * Learn about functions and functional programming * Learn about object-oriented programming
approach
Each lecture is self-sufficient and concise, and describes information related to the topic, not distracting one by unrelated materials or talks. Usage of animated presentations combined with live-editing notes makes understanding the topics easier and shows how (and when in time) the object structures are connected.
audience
This class is for any curious engineer who would like to gain skills in building complex systems (and building a programming language is really a pretty advanced engineering task!) and obtain transferable knowledge for building such systems.

If you are interested specifically in compilers, interpreters, and source code transformation tools, then this class is also for you.

The only prerequisite for this class is basic data structures and algorithms: trees, lists, traversal.
meta description
Build and understand a full programming language semantics.
short description
In this course, we’ll learn about runtime semantics and build an interpreter for a programming language from scratch. In the process, we’ll build and understand a full programming language semantics.
subtitle
Learn about the semantics of programming languages
keywords
Interpreter, compiler, JIT-compiler, imperative programming
Product ISBN
9781801071338