Building a Transpiler from scratch

Why take this course?
π [Course Title] Building a Transpiler from scratch
π [Course Headline] Techniques of high-level compilation
π [Course Overview] Dive into the world of high-level language compilers with our course "Building a Transpiler from scratch". This course demystifies the process of translating from one high-level language to another, like transpiling JavaScript versions or working with TypeScript. By focusing on practical application and leveraging existing runtime environments, we avoid the complexities of lower-level constructs.
π οΈ [Why This Course?] If you're intrigued by the concept of compilers and interested in designing your own programming language, starting with high-level compilation is an excellent approach. This course cuts through theoretical noise, providing a hands-on experience with live coding sessions and clear explanations. Our goal is to equip you with the skills to build a practical transpiler for a full programming language within 2-4 hours!
π§ [What You'll Learn] In this course, we'll be building a transpiler for a concurrent functional programming language, similar to Erlang, down to JavaScript. This journey not only covers the intricacies of transpiling but also offers a deeper understanding of concurrent functional languages and operating systems. It's a comprehensive engineering exercise that will sharpen your data structures and algorithms skills.
π [Prerequisites] While this course is self-contained, having prior knowledge from the "Building an Interpreter from scratch" class (or equivalent understanding of programming language fundamentals) is highly recommended. Topics covered include eval, closures, scope chains, and environments.
π₯ [Who This Class Is For?] This course is tailored for curious engineers eager to gain skills in building complex systems. Whether you're fascinated by compilers, PL theory, or Type systems, this class will guide you through building a transpiler for your own programming language.
βοΈ [Implementation Details] We implement our transpiler using JavaScript, with the end goal of translating to JavaScript. The choice of JavaScript ensures portability and accessibility, as it can be adapted to various other languages like TypeScript, Rust, OCaml, C++, or Python.
π [Learning Approach]
- Concise Content: Each lecture is designed to be self-sufficient, clear, and focused on the essentials without unnecessary distractions.
- Animated Presentations: Enhanced with live-editing notes to facilitate a deeper understanding of complex topics.
- Live Coding Sessions: The entire transpiler, from initial setup to completion, is demonstrated in real-time, complete with assignments.
π [Course Curriculum] The course is structured into four parts, consisting of 18 lectures and numerous sub-topics:
Part 1: Transpiler Pipeline
- Exploring the transpiler pipeline, parsing, code generation, and AST nodes.
Part 2: Functions and Processes
- Implementing runtime components such as Process and Scheduler classes, with a focus on cooperative multitasking.
Part 3: Pattern Matching
- Building packed data structures like Lists and Records, and implementing support for pattern matching.
Part 4: Message Passing
- A comprehensive guide to message passing, including a case study using real compiled code from the web, culminating in building the final executable.
π [Join Us!] Embark on this exciting journey of learning and master the art of transpiler construction with our comprehensive and practical course. Let's transform your understanding of programming languages one step at a time! π©βπ»β¨
Loading charts...