Courses by Dmitry Soshnikov

Programming Language with LLVM
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

Automata Theory: inside a RegExp machine
State machines — the fundamental concept used today in many practical applications, starting from UI programming like React, automated reply systems, lexical an
1 hour 48 minutes 5 seconds

Building a Typechecker from scratch
Untyped programs are often prone to errors, runtime exceptions, and can make debugging much harder. That’s why many production languages implement a static type
2 hours 16 minutes 15 seconds

Building a Virtual Machine for Programming Language
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
4 hours 27 minutes 8 seconds

Building a Parser from scratch
Parsing or syntactic analysis is one of the first stages in designing and implementing a compiler. A well-designed syntax of your programming language is a big
2 hours 31 minutes 11 seconds

Parsing Algorithms
Parsing or syntactic analysis is one of the first stages in designing and implementing a compiler. A well-designed syntax of your programming language is a big
4 hours 27 minutes 33 seconds

Building an Interpreter from scratch
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 59 minutes 53 seconds

Garbage Collection Algorithms
Memory leaks and dangling pointers are the main issues of the manual memory management. You delete a parent node in a linked list, forgetting to delete all its
2 hours 13 minutes 20 seconds

Building a Transpiler from scratch
In modern implementations of compilers, it has become popular to transform one high-level language into another. Examples include transpiling new versions of...
2 hours 3 seconds