| 1. VM basic operations | |||
| 1. Introduction to Virtual Machines.mp4 | 72.37 MB | ||
| 1. Introduction to Virtual Machines.srt | 30.81 KB | ||
| 2. Stack-based vs. Register-based VMs.mp4 | 42.72 MB | ||
| 2. Stack-based vs. Register-based VMs.srt | 13.76 KB | ||
| 3. Logger implementation.mp4 | 21.23 MB | ||
| 3. Logger implementation.srt | 5.58 KB | ||
| 4. Numbers Introduction to Stack.mp4 | 46.18 MB | ||
| 4. Numbers Introduction to Stack.srt | 12.68 KB | ||
| 5. Math binary operations.mp4 | 41.79 MB | ||
| 5. Math binary operations.srt | 10.72 KB | ||
| 6. Strings Introduction to Heap and Objects.mp4 | 43.99 MB | ||
| 6. Strings Introduction to Heap and Objects.srt | 10.48 KB | ||
| 7. Syntax Parser implementation.mp4 | 50.16 MB | ||
| 7. Syntax Parser implementation.srt | 13.98 KB | ||
| 8. Compiler Bytecode.mp4 | 61.53 MB | ||
| 8. Compiler Bytecode.srt | 14.04 KB | ||
| 9. Complex expressions.mp4 | 40.26 MB | ||
| 9. Complex expressions.srt | 8.39 KB | ||
| 2. Control flow and variables | |||
| 1. Comparison Booleans.mp4 | 39.5 MB | ||
| 1. Comparison Booleans.srt | 8.24 KB | ||
| 2. Control flow Branch instruction.mp4 | 51.33 MB | ||
| 2. Control flow Branch instruction.srt | 12.97 KB | ||
| 3. Disassembler.mp4 | 64.15 MB | ||
| 3. Disassembler.srt | 13.44 KB | ||
| 4. Global variables.mp4 | 81.42 MB | ||
| 4. Global variables.srt | 17.7 KB | ||
| 5. Blocks Local variables.mp4 | 111.4 MB | ||
| 5. Blocks Local variables.srt | 22.9 KB | ||
| 6. Control flow While-loops.mp4 | 23.52 MB | ||
| 6. Control flow While-loops.srt | 5.54 KB | ||
| 3. Functions and Call stack | |||
| 1. Native functions.mp4 | 55.61 MB | ||
| 1. Native functions.srt | 13.14 KB | ||
| 2. User-defined functions.mp4 | 88.94 MB | ||
| 2. User-defined functions.srt | 19.15 KB | ||
| 3. Call stack Return address.mp4 | 16.21 MB | ||
| 3. Call stack Return address.srt | 10.61 KB | ||
| 4. Lambda functions.mp4 | 42.16 MB | ||
| 4. Lambda functions.srt | 8.83 KB | ||
| 5. Bytecode optimizations.mp4 | 33.1 MB | ||
| 5. Bytecode optimizations.srt | 8.65 KB | ||
| 4. Closures implementation | |||
| 1. Closures Scope analysis.mp4 | 110.81 MB | ||
| 1. Closures Scope analysis.srt | 30.35 KB | ||
| 2. Closures Compilation.mp4 | 75.32 MB | ||
| 2. Closures Compilation.srt | 14.59 KB | ||
| 3. Closures Runtime.mp4 | 94.33 MB | ||
| 3. Closures Runtime.srt | 20.2 KB | ||
| 5. Garbage Collection | |||
| 1. Tracing heap Object header.mp4 | 25.48 MB | ||
| 1. Tracing heap Object header.srt | 18.19 KB | ||
| 2. Mark-Sweep GC.mp4 | 96.92 MB | ||
| 2. Mark-Sweep GC.srt | 24.79 KB | ||
| 6. Object-oriented programming | |||
| 1. Class objects Methods storage.mp4 | 101.31 MB | ||
| 1. Class objects Methods storage.srt | 21.91 KB | ||
| 2. Instance objects Property access.mp4 | 90.78 MB | ||
| 2. Instance objects Property access.srt | 17.24 KB | ||
| 3. Super classes Inheritance.mp4 | 14.61 MB | ||
| 3. Super classes Inheritance.srt | 3.35 KB | ||
| 4. Final VM executable Final VM executable.mp4 | 41.73 MB | ||
| 4. Final VM executable Final VM executable.srt | 9.99 KB | ||
| eva-vm-source-main.zip | 13.02 KB |
Обучающие видео » Компьютерные видеоуроки и обучающие интерактивные DVD » Программирование (видеоуроки)
Building a Virtual Machine for Programming Language
Год выпуска: 2021
Производитель: dmitrysoshnikov.com
Сайт производителя: http://dmitrysoshnikov.com/courses/virtual-machine/
Автор: Dmitry Soshnikov
Продолжительность: 4:26:52
Тип раздаваемого материала: Видеоурок
Язык: Английский + субтитры
Описание: 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 such classes are usually presented as some “hardcore rocket science” which is only for advanced engineers.
Moreover, classic compiler books start from the least significant topic, such as Lexical analysis, going straight down to the theoretical aspects of formal grammars. And by the time of implementing the first Tokenizer module, students simply lose an interest to the topic, not having a chance to actually start implementing a programing language itself. And all this is spread to a whole semester of messing with tokenizers and BNF grammars, without understanding an actual semantics of programming languages.
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 sessions as pair-programming and described in a comprehensible way.
In the Building a Virtual Machine class we focus specifically on runtime semantics, and build a stack-based VM for a programming language very similar to JavaScript or Python. Working closely with the bytecode level you will understand how lower-level interpretation works in production VMs today.
Implementing a programing language would also make your practical level in other programming languages more professional.
Preview
[spoiler="Содержание"]
Part 1: VM basic operations
Lecture 1: Introduction to Virtual Machines (19:22)
Lecture 2: Stack-based vs. Register-based VMs (9:36)
Lecture 3: Logger implementation (4:00)
Lecture 4: Numbers: introduction to Stack (8:00)
Lecture 5: Math binary operations (7:07)
Lecture 6: Strings: introduction to Heap and objects (6:39)
Lecture 7: Syntax: parser implementation (9:20)
Lecture 8: Compiler | Bytecode (9:13)
Lecture 9: Complex expressions (5:26)
Part 2: Control flow and variables
Lecture 10: Comparison | Booleans (5:18)
Lecture 11: Control flow | Branch instruction (8:18)
Lecture 12: Disassembler (8:45)
Lecture 13: Global variables (11:07)
Lecture 14: Blocks | Local variables (14:39)
Lecture 15: Control flow | While-loops (3:34)
Part 3.1: Functions and Call stack
Lecture 16: Native functions | Function calls (7:52)
Lecture 17: User-defined functions (12:07)
Lecture 18: Call stack | Return address (6:37)
Lecture 19: Lambda functions (5:27)
Lecture 20: Bytecode optimizations (5:31)
Part 3.2: Closures implementation
Lecture 21: Closures | Scope analysis (17:55)
Lecture 22: Closures | Compilation (9:31)
Lecture 23: Closures | Runtime (12:23)
Part 4: Garbage Collection
Lecture 24: Tracing heap | Object header (11:00)
Lecture 25: Mark-Sweep GC (15:03)
Part 5: Object-oriented programming
Lecture 26: Class objects | Methods storage (13:23)
Lecture 27: Instance objects | Property access (10:57)
Lecture 28: Super classes | Inheritance (2:13)
Lecture 29: Final VM executable (6:14)
[/spoiler]
[spoiler="Серия курсов от Dmitry Soshnikov"]
Automata Theory inside a RegExp machine
Garbage Collection Algorithms
Building an Interpreter from scratch
Parsing Algorithms
Building a Parser from scratch
Building a Virtual Machine for Programming Language
Building a Typechecker from scratch
Programming Language with LLVM
Building a Transpiler from scratch
[/spoiler]
Файлы примеров: присутствуют
Формат видео: MP4
Видео: MPEG-4 H.264 AVC, 1280x800, 16:10, 30fps, ~3000kbps
Аудио: MPEG-4 AAC LC, 44.1kHz, 128kbps, stereo
[spoiler="Скриншоты"]![]()
![]()
![]()
[/spoiler]
| torrent name | size | uploader | age | seed | leech |
|---|---|---|---|---|---|
|
Udemy - ETF Investing 101 - A Beginner's Guide to Building Long-Term Posted by
freecoursewb in Other
|
1.1 GB | freecoursewb | 2 months | 25 | 4 |
|
Udemy - Becoming an Agent Manager - Building a Frontier Organization Posted by
freecoursewb in Other
|
287.4 MB | freecoursewb | 2 months | 0 | 0 |
|
TREE - Building a Growth Culture Through Trust, Respect, Energy and Enthusiasm Posted by
freecoursewb in Other
|
345.5 MB | freecoursewb | 4 months | 0 | 0 |
| 299.5 MB | freecoursewb | 4 months | 0 | 0 | |
|
Vibe Coding from Scratch - A Beginner's Guide to Building and Shipping an App with AI Posted by
freecoursewb in Other
|
295.7 MB | freecoursewb | 6 months | 0 | 0 |
All Comments