
Building an Interpreter from scratch
Duration: 2h 59m | .MP4 1280×720, 30 fps(r) | AAC, 44100 Hz, 2ch | 899 MB
Semantics of programming languages
What you’ll learn
Build a programing language from scratch
Interpreters and Compilers
AOT, JIT-compilers and Transpilers
AST-interpreters and Virtual Machines
Bytecode, LLVM, Stack-machines
First-class functions, Lambdas and Closures
Call-stack and Activation Records
OOP: Classes, Instances and Prototypes
Modules and Abstractions
Requirements
Basic data structures and algorithms
Graphs, trees, traversal
Description
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 about the difference between functional and imperative programming?
There are so many questions when it comes to implementing a programming language!
The problem with “compiler classes” in school is they usually are presented as some “hardcore rocket science” which is only for advanced engineers.
I believe we should be able to build and understand a full programming language semantics, end-to-end, in 4-6 hours – with a content going straight to the point, showed in live coding session as pair-programming, and described in a comprehensible way.
In the Essentials of Interpretations class we focus specifically on runtime semantics, and build a interpreter for a programming language very similar to JavaScript or Python.
Implementing a programing language would also make your practical usage level of other programming languages more professional.
Who this class is for?
This class is for any curious engineer, who would like to gain skills of building complex systems (and building a programming language is really a pretty advanced engineering task!), and obtain a transferable knowledge for building such systems.
If you are interested specifically in compilers, interpreters, and source code transformation tools, then this class is also for you.
The only pre-requisite for this class is basic data structures and algorithms: trees, lists, traversal.
What is used for implementation?
Since we build a language very similar in semantics to JavaScript or Python (the two most popular programming languages today) we use specifically JavaScript – its elegant multi-paradigm structure which combines functional programming, class-based, and prototype-based OOP fits ideal for that.
Note: we want our students to actually follow, understand and implement every detail of the interpreter themselves, instead of just copy-pasting from final solution. The full source code for the language is available in video lectures, showing and guiding how to structure specific modules.
What’s specific in this class?
The main features of these lectures are:
Concise and straight to the point. Each lecture is self-sufficient, concise, and describes information directly related to the topic, not distracting on unrelated materials or talks.
Animated presentation combined with live-editing notes. This makes understanding of the topics easier, and shows how (and when at time) the object structures are connected. Static slides simply don’t work for a complex content.
Reading materials
Structure and Interpretation of Computer Programs (SICP) by Harold Abelson and Gerald Jay Sussman
Programming Languages: Application and Interpretation (PLAI) by Shriram Krishnamurthi
What is in the course?
I hope you’ll enjoy the class, and will be glad to discuss any questions and suggestion in comments.
– Dmitry Soshnikov
Who this course is for:
Curious engineers who want to know and understand how programming languages work under the hood

RapidGator
https://www.keeplinks.org/p27/68fdd9940135a
https://rapidgator.net/file/8dc18001b98143a5cb4440b54db21183/yxusj.Dmitry.Soshnikov.-.Building.an.Interpreter.from.scratch.rar
NitroFlare
https://www.keeplinks.org/p27/68fdd9ed19e8c
https://nitroflare.com/view/6005FB1C8F71F60/yxusj.Dmitry.Soshnikov.-.Building.an.Interpreter.from.scratch.rar
DDownload
https://www.keeplinks.org/p27/68fdda5e6e60d
https://ddownload.com/5s4w4s1pnhiv/yxusj.Dmitry.Soshnikov.-.Building.an.Interpreter.from.scratch.rar
