Skip to main content

Building a Transpiler from scratch

2h 3s
English
Paid

Course description

In modern implementations of compilers, it has become popular to transform one high-level language into another. Examples include transpiling new versions of JavaScript into older ones or converting TypeScript into JavaScript. Such compilers are called transpilers, and this course is dedicated to them.

Read more about the course

Why are transpilers important?

Transpilers allow the use of existing runtime environments (such as JavaScript engines) while avoiding dealing with low-level details such as memory management or bytecode. This is a practical and efficient approach to learning compilers, especially if you want to create your own programming language.

Unlike traditional books on compilers that focus on theoretical aspects (grammars, parsing, etc.), this course offers a practical guide to creating a full-fledged transpiler in 2-4 hours. We will develop it in a live coding format, step by step, with clear explanations.

What will you learn?

We will focus on transpiling a high-level concurrent programming language with message-passing processes into JavaScript. Besides transpiling, you will understand how concurrent functional languages (such as Erlang) and even operating systems with processes and threads work.

Developing a transpiler will improve your programming skills as it involves data structures, algorithms, and architectural decisions.

Course prerequisites

It is optionally recommended to take the course "Building an Interpreter from Scratch", where we create an AST interpreter. If you already understand concepts such as eval, closures, scopes, environments, you can start this course directly.

Who is this course for?

  • For engineers who want to master the creation of complex systems and acquire transferable knowledge
  • For those interested in compilers, programming languages, and type theory
  • For developers who want to create their own programming language

What technologies are used?

We will write the transpiler in JavaScript and compile code into JavaScript. This choice makes the course accessible to a wide range of developers and allows the code to be adapted to other languages (TypeScript, Rust, OCaml, C++, Python, etc.).

Important! This course is focused on active learning. We do not just provide the final code - you will need to implement key parts of the transpiler yourself in specially prepared exercises.

Course format

  • Clear and structured lectures - without distractions and unnecessary theoretical digressions
  • Animated presentations + live notes - to visually explain complex topics
  • Live coding with step-by-step assignments - from an empty project to a full-fledged transpiler

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 18 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Building a Transpiler from scratch

0:00
/
#1: Lecture 1: Transpiler overview | Numbers

All Course Lessons (18)

#Lesson TitleDurationAccess
1
Lecture 1: Transpiler overview | Numbers Demo
12:04
2
Lecture 2: Strings | Blocks and Statements
07:28
3
Lecture 3: Parsing: S-expression to AST
05:59
4
Lecture 4: Variable declaration and lookup
05:17
5
Lecture 5: Function calls | Runtime
04:21
6
Lecture 6: Binary and Unary expressions
05:29
7
Lecture 7: Control flow: If statement | While loops
03:12
8
Lecture 8: Function declarations | Return statement
05:14
9
Lecture 9: Primer on generators
08:40
10
Lecture 10: Process | Scheduler class
05:08
11
Lecture 11: Spawning processes | JS Transform
07:48
12
Lecture 12: Records and Lists
07:00
13
Lecture 13: Pattern matching | Decomposition
11:42
14
Lecture 14: Pattern matching statement
05:23
15
Lecture 15: Awaiting messages | Process mailbox
05:41
16
Lecture 16: Receive statement | Recursive calls
05:18
17
Lecture 17: Using compiled code from Web
08:35
18
Lecture 18: Final executable | Next steps
05:44

Unlock unlimited learning

Get instant access to all 17 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Existentialism and the Authentic Life

Existentialism and the Authentic Life

Sources: Wondrium by The Great Courses, Skye C. Cleary
In the 24 fascinating lectures of Existentialism and the Authentic Life, Professor Skye C. Cleary will lead you through the writings of many existentialists to
11 hours 57 minutes 41 seconds
The 30-Day Design Challenge

The 30-Day Design Challenge

Sources: ArjanCodes
This course is designed for those who want to go beyond theoretical knowledge and develop skills in working with production code. Regardless of your level of...
8 hours 52 minutes 30 seconds
Programming Language with LLVM

Programming Language with LLVM

Sources: Dmitry Soshnikov
How programming languages work under the hood? What’s the difference between compiler and interpreter? What is a virtual machine, and JIT-compiler? And what abo
2 hours 46 minutes 4 seconds
Learn Hugging Face by Building a Custom AI Model

Learn Hugging Face by Building a Custom AI Model

Sources: zerotomastery.io
Explore the Hugging Face ecosystem from scratch, including Transformers, Datasets, Hub/Spaces, and much more by creating and customizing your own AI model...
6 hours 32 minutes 55 seconds
Screenflow for Screencasters

Screenflow for Screencasters

Sources: Aaron Francis
Easy screencast editing - simple and efficient. The course "ScreenFlow for Screencasters" will help you work faster, focus on the essentials, and confidently...
1 hour 22 minutes 2 seconds