Cademy logoCademy Marketplace

Course Images

Building an Interpreter from Scratch

Building an Interpreter from Scratch

  • 30 Day Money Back Guarantee
  • Completion Certificate
  • 24/7 Technical Support

Highlights

  • On-Demand course

  • 3 hours

  • All levels

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.

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

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

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.

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.

Key Features

Learn about basic expressions and variables in interpreters * Learn about functions and functional programming * Learn about object-oriented programming

Github Repo

https://github.com/PacktPublishing/Building-an-Interpreter-from-Scratch

About the Author

Dmitry Soshnikov

Dmitry Soshnikov is a software engineer and a lecturer on different computer science topics. He is passionate about education and focuses on high-quality educational content: concise and straight-to-the-point animated lectures with live-editing notes.

Course Outline

1. Compilers crash course


2. Interpreters: Basic expressions and Variables


3. Functions and Functional programming


4. Object-oriented programming

Course Content

  1. Building an Interpreter from Scratch

About The Provider

Packt
Packt
Birmingham
Founded in 2004 in Birmingham, UK, Packt’s mission is to help the world put software to work in new ways, through the delivery of effective learning and i...
Read more about Packt

Tags

Reviews