Building a Typechecker from scratch [1/20] Introduction to Type theory and checking

preview_player
Показать описание

This is the first lecture from the "Building a Typechecker from scratch" class where we build a static type checker for a full programming language similar to TypeScript, Java, etc.

In this lecture:

- Introduction to Type theory
- Parsing pipeline
- Abstract Syntax Tree (AST)
- Static vs. Dynamic type checker
- Strong vs. Weak typing
- Sound vs. Unsound type system
- Type safety and Memory safety
- Type judgements
- Type Environment, Г
- Type checking vs. Type inference
- Hindley-Milner (HM) | Type constraints
- Eva programming language
- Union types
- Generic types
- Implementation of Number type

#Typechecker #Type_theory #Programming_language
Рекомендации по теме
Комментарии
Автор

Just discovered your channel and this couldn't have come at a better time. I'm working on a compiler right now and I'm just about finished with parsing. Looking forward to this series.

Bobbias
Автор

Finally! Thank you, Dmitry, I've been waiting for the typechecker course. Learned a lot from your other classes.

robertpalovsky
Автор

Dmitry I love your lectures on interpreters, so I can’t wait to watch this series!

JoeHinkle
Автор

Really appreciate the time you put into your videos. I was hoping you'd make a series on types. Your other series were hugely helpful for me

claytonsurgeon
Автор

Another advantage of static type checkers that for some reason isn't mentioned at 5:25 is that it catches some errors already at compile time and not at runtime (e.g., after you've shipped it)

eilfjhslihgasoirgh
Автор

Great stuff as usual, Dmitry! I’ll be signing up for this one as soon as I have a bit of time to dedicate to it :)

louisthibault
Автор

14:06 Can the types here be defined as generics? So that the + operator is defined for any type. (The goal would be to have a single plus operator instead of needing separate operators for different types, like + for numbers and ++ for strings, like in ReScript).

magne
Автор

Thanks for the videos. Just curious, what app(s) do you use for presenting your content?

rexposadas
Автор

What kind of algorithm will your implementation be based on? Is it bidirectional type checking?

mateuszdrewniak
Автор

Hi, I don't know anything about math but I'm autistic and gifted, could you tell me the roadmap for Type Systems? and Compiler Design? I'm not able to differentiate these two concepts, even more so when I understand that Type System is an adaptation of Type theory for computer science...

Furthermore, Type equivalence and type inference are topics covered by which of the three?

btw i liked your videos!

Hicoffeman
welcome to shbcf.ru