What you would learn in Building a Typechecker from scratch course?
Untyped software is often susceptible to errors and runtime failures and may make it difficult to debug. This is the reason why most production languages have the static type checker as an additional module that is designed to enhance the security of programs and simplify development.
Type inference or Type checking? What exactly are Type Theory and Type judgments? Does my native language appear weak or heavily typed? How am I going to use an automated type checker?
There are a lot of questions to be asked when the implementation of this module. If you've had to ask the same questions while developing your programming language or want to know what typeckechers do underneath the hood with hands-on, practical implementation, this course is for you.
Many of the books that deal with Type theory and the type of judgment are geared towards theoretical issues, viewing type sets as mathematical but not providing the actual steps to construct an effective type checker. I believe that we can construct and understand a Typechecker that can be used to check the whole programming language from beginning to end in two to four hours and with text that gets directly to the core, demonstrated by live coding sessions, as pair-programming, and explained understandably.
In the Making an initial Typechecker class, we will concentrate on creating a simple type checker and create an equivalent as TypeScript, Java, etc. We will touch on Type Theory, and have already from the beginning of the class; we will be focusing on the actual implementation.
Implementing a typechecker will also enhance your engineering capabilities because it affects many aspects of algorithms and data structures.
An alternative requirement for this course is the building an interpreter starting from scratch (aka Essentials of Interpretation) course in which we construct an AST interpreter to interpret a complete programming language. If you do not already know how languages operate on this scale, i.e., what an eval, closure, or scoping chain, environments, and various other terms are, it is recommended that you take the class of interpreters as an essential prerequisite.
What is unique about this class?
The most critical aspects of these talks are
Short and direct to the straight to the. Each lecture is clear, concise, focus on information directly relevant to the subject, and does not diver attention from irrelevant material or lectures.
Animation-based presentation that is accompanied by notes that are edited live. This makes understanding the subjects easier and illustrates how the object structure are linked. The static slides aren't suited to convey complicated content.
Live programming session from beginning to end with assignments. The complete source code, beginning from scratch to the end, is shown in the lecture videos.
What's involved in the course?
It is broken down into four sections with 20 lectures and a variety of sub-topics within each lecture. Here are this list of content and the course curriculum.
Part 1: Type Theory BASIC TYPES
In this chapter, we begin discussing Type theory and type checking, and inference. We also lay the basis of our typechecker. We define the fundamental types, establish variables, discuss Typing Environment, and build an arithmetic parser.
Part 2 1: FUNCTIONAL PROGRAMMING
This section will focus on various functions - built-in, user-defined functions inside and closure, recursive functions, and the anonymous lambda functions.
Part 3: Type Declarations and CLASSES
In this chapter, we introduce techniques to establish new types. Topics related to type aliases as well as OOP classes are discussed.
Part 4 GENERIC PROGRAMMING
In this segment, we continue with declarations of types and discuss Union types. We additionally implement generic functions.
Content of the Course:
- Type systems
- Type Theory and Type Judgments
- Static and Dynamic. Dynamic TC
- Strong vs. Weak typing
- Type checking | Type inference
- Security of Memory and Type
- The hands-on method for a typechecker implementation
- Create a static typechecker for the whole programming language
- Type declarations
- Generic typing functions
- Functional typing and OOP programs
Download Building a Typechecker from scratch from below links NOW!