Building a Typechecker from scratch

Essentials of Type checking and Inference
4.83 (30 reviews)
Udemy
platform
English
language
Programming Languages
category
Building a Typechecker from scratch
255
students
2.5 hours
content
Jul 2022
last update
$54.99
regular price

Why take this course?

πŸš€ [Course Title] Building a Typechecker from Scratch
πŸŽ“ [Course Description]

Course Overview: Dive into the world of static type checking and learn how to enhance your programming language's safety and developer experience. In this comprehensive course, you'll understand the core concepts behind Type theory, Type judgments, and explore whether your language is weakly or strongly typed. You'll also discover the practical steps to implement a robust typechecker, transforming theoretical knowledge into a hands-on, end-to-end project. 🧰

πŸ“š This course goes beyond the typical academic approach by focusing on a real-world application of Type theory, ensuring you can build a complete typechecker for a full programming language in just 2-4 hours.

What's Inside:

  • Real-World Focus: Learn how to implement a static typechecker similar to those found in TypeScript and Java. We'll touch on the theoretical aspects of Type theory but emphasize practical implementation through live coding sessions. 🧡

  • Practical Skills: Enhance your engineering skills by understanding data structures, algorithms, and how they relate to type checking. This course is a natural progression from our popular course on building an interpreter from scratch. πŸ› οΈ

Prerequisites: An optional prerequisite for this class is the "Building an Interpreter from Scratch" (aka Essentials of Interpretation) course, which provides a solid foundation in how programming languages work at the interpreter level. If you're already familiar with eval, closures, scope chains, and environments, you can jump right into this typechecker course. πŸŽ“

Who This Class Is For: This class is perfect for any curious engineer looking to expand their skills in building complex systems, particularly those interested in compilers, Programming Language Theory (PLT), or software development best practices. πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

What Sets This Course Apart:

  • Concise & Focused: Each lecture is crafted to be self-sufficient, concise, and directly relevant to the topic at hand. We avoid distraction with unrelated materials or talks. 🎯

  • Animated Presentations & Live Editing Notes: Our unique approach includes animated slides and live-editing notes, making complex topics easier to grasp through engaging visuals and real-time edits. Static slides simply can't compete! ✨

  • Live Coding Sessions: Follow along with the instructor as you build the typechecker from the ground up, with assignments provided throughout the course for hands-on learning. πŸ–₯️

Course Breakdown: The course is structured into four parts, totaling 20 lectures with numerous subtopics:

  1. Type Theory and Basic Types: Establish foundational concepts and begin building the parser for your typechecker.

  2. Functional Programming: Explore different types of functions, including user-defined, built-in functions, closures, and lambda expressions.

  3. Type Declarations and Classes: Implement type aliases and explore object-oriented programming (OOP) classes to define new types within your language.

  4. Generic Programming: Delve into Union types and implement generic functions, completing the journey from basic types to complex type constructs.

Join us on this type-driven adventure in programming language development! πŸ—οΈπŸš€


Note to Instructors/Students: This course is designed to encourage independent problem-solving. The full source code for the typechecker is presented in the video lectures, but students are expected to actively participate by implementing solutions where prompts are given (e.g., /* Implement here */). This approach ensures that you not only learn by watching but also reinforce your understanding through practice and application. Let's embark on this journey together! πŸ›£οΈπŸ’ͺ

Loading charts...

Related Topics

4746900
udemy ID
22/06/2022
course created date
27/10/2022
course indexed date
Bot
course submited by