Essentials of Interpretation. Lecture [3/18] Compilers: AOT, JIT, Transpiler

  Рет қаралды 22,059

Dmitry Soshnikov

Dmitry Soshnikov

Күн бұрын

Пікірлер: 19
@DmitrySoshnikov-education
@DmitrySoshnikov-education 4 жыл бұрын
⭐ *Enroll:* dmitrysoshnikov.com/courses/essentials-of-interpretation/ 📚 *Udemy:* www.udemy.com/course/essentials-of-interpretation/?referralCode=E7D6C9ADFCA273A53950 👉 *DS Education:* www.dmitrysoshnikov.education/p/essentials-of-interpretation Lecture 1: Parsers, ASTs, Interpreters and Compilers Lecture 2: AST Interpreters and Virtual Machines Lecture 3: Compilers: AOT, JIT, Transpiler Lecture 4: Eva programming language Lecture 5: Self-evaluating expressions Lecture 6: Variables and Environments Lecture 7: Blocks: expression groups and Nested Scopes Lecture 8: Control flow: If and While expressions Lecture 9: Back to parsers: S-expression to AST Lecture 10: Built-in and Native functions Lecture 11: User-defined functions, Activation Records and Closures Lecture 12: Lambda functions and Functional programming Lecture 13: Call-stack and Recursive calls Lecture 14: Syntactic sugar: Switch, For, Inc, Dec operators Lecture 15: Object-oriented Eva: Classes Lecture 16: Class inheritance and Super calls Lecture 17: Code isolation: Modules and Imports Lecture 18: Final executable and further data structures
@Egrodo1
@Egrodo1 5 жыл бұрын
Can't wait for the next one! Great work here, very clear explanations.
@evanxg852000
@evanxg852000 5 жыл бұрын
Thanks for the hard work, waiting for the next video
@DebdutBiswasOnline
@DebdutBiswasOnline 5 жыл бұрын
Very useful tutorial...
@eaglenight9826
@eaglenight9826 5 жыл бұрын
Thanks.
@riskey93
@riskey93 5 жыл бұрын
Thanks for the courses, when you planning to release next videos? '
@DmitrySoshnikov-education
@DmitrySoshnikov-education 5 жыл бұрын
Thanks, the next lecture is already preparing and is coming soon!
@chackokabraham738
@chackokabraham738 3 жыл бұрын
Hi Dmitry, Unable to find the Lecture 2: i dont see it in the playlist. Is it available ?
@DmitrySoshnikov-education
@DmitrySoshnikov-education 3 жыл бұрын
Hi Chacko, yes, you can enroll to full class here: dmitrysoshnikov.com/courses/essentials-of-interpretation/
@chackokabraham738
@chackokabraham738 3 жыл бұрын
@@DmitrySoshnikov-education Thank you
@zhenghaohe4727
@zhenghaohe4727 3 жыл бұрын
Hi thanks for putting out such amazing content. Wanted to ask a few quick questions: 1. You mentioned that it doesn't matter how you implement your language, what matters is the runtime semantics should be preserved. I am still not super clear on what you meant by the runtime semantics. In the context of JavaScript, can we think of the runtime semantics as the ECMAScript specs, as in the JS implementors have to follow and conform to the specs? 2. Is there a discord channel or any kind of support community for people who bought your courses?
@DmitrySoshnikov-education
@DmitrySoshnikov-education 3 жыл бұрын
Thanks for the feedback, glad you liked the course. Yes, the ES spec is a good example, since exactly a specification for a programming language defines its semantics (static and runtime). And for the same formal spec there might be multiple implementations: simple AST interpreter for JavaScript, or a Stack-based virtual machine, or static LLVM compiler to native code. A dedicated discord channel might be good idea, I'll think about creating one. Current students use discussion comments within each lecture.
@zhenghaohe4727
@zhenghaohe4727 3 жыл бұрын
​@@DmitrySoshnikov-education hey thanks for the reply! I have two more followup questions if you don't mind 1. I am not super clear on the concept of runtime. it seems to me that it has multiple meanings: I understand it means "during the code execution, the opposite is compile time" but people always use it when they are saying that "V8/node/deno is a JS runtime" or "react is a UI runtime". Could you expound on this please? Also when you say "runtime semantics", which one were you referring to? 2. you mentioned that ES spec might have multiple implementations: simple AST interpreter for JavaScript, or a Stack-based virtual machine, or static LLVM compiler to native code. Do these implementations exist in the real world? Could you give me some examples?
@DmitrySoshnikov-education
@DmitrySoshnikov-education 3 жыл бұрын
@@zhenghaohe4727 yes, "Runtime" may refer to a system which handles execution of a program. It might be a VM (such as V8) or a framework (like React for UI), set of extra helper tools. And the "runtime" is the *time* during execution, i.e. opposite to the "static time", which is before execution. The "runtime semantics" refers to formal *rules* which describes how a Runtime should be implemented. I.e. it refers to implementations like V8 and others. Also, yes - V8, JavaScriptCore, Hermes, etc are all the different implementations of the ECMAScript spec, which defines formal semantics.
@zhenghaohe4727
@zhenghaohe4727 3 жыл бұрын
@@DmitrySoshnikov-education Hi thanks for the reply! Do you mind if I ask a few more followup questions about JavaScript specifically? 1. are variables in JavaScript basically C++ pointers under the hood (assuming the runtime is V8)? Even for primitive values like numbers and strings, they either live in the heap or they are pooled in Constant Pool. Therefore JS variables (their memory blocks) actually store the memory addresses of other C++ objects? 2. when we declare `const a = 1; const b = 'foo'` , what exactly provides the program with the number `1` and the string `foo` , is it the runtime e.g. V8 or it is something else that is providing these primitive values?
@saftsos8150
@saftsos8150 4 жыл бұрын
I do not find some lectures including: Lecture 2: AST Interpreters and Virtual Machines... and many others? thanks,
@DmitrySoshnikov-education
@DmitrySoshnikov-education 4 жыл бұрын
HI Saft, you can enroll to full course here: dmitrysoshnikov.com/courses/essentials-of-interpretation/
@anantmishra9813
@anantmishra9813 5 жыл бұрын
which software do you use to make these presentations?
@DmitrySoshnikov-education
@DmitrySoshnikov-education 5 жыл бұрын
This is a combination of Good Notes, Notability, Camtasia, and live editing on iPad.
Essentials of Interpretation. Lecture [4/18] Eva programming language
11:12
Understanding AOT Compilers, JIT Compilers, and Interpreters
6:27
Engineer Man
Рет қаралды 28 М.
Every team from the Bracket Buster! Who ya got? 😏
0:53
FailArmy Shorts
Рет қаралды 13 МЛН
Jaidarman TOP / Жоғары лига-2023 / Жекпе-жек 1-ТУР / 1-топ
1:30:54
Just In Time (JIT) Compilers - Computerphile
10:41
Computerphile
Рет қаралды 284 М.
Java (Compiler, Interpreter, JIT)
10:01
smackdounnkol
Рет қаралды 57 М.
Compilers, How They Work, And Writing Them From Scratch
23:53
Adam McDaniel (kiwi)
Рет қаралды 241 М.
Building a Parser from scratch. Lecture [1/18]: Tokenizer | Parser
14:02
Dmitry Soshnikov
Рет қаралды 159 М.
Arenas, strings and Scuffed Templates in C
12:28
VoxelRifts
Рет қаралды 100 М.
AOT vs JIT compilation in Java
10:02
Defog Tech
Рет қаралды 65 М.
Why Are Threads Needed On Single Core Processors
16:07
Core Dumped
Рет қаралды 227 М.
7 Outside The Box Puzzles
12:16
MindYourDecisions
Рет қаралды 418 М.
Programming Language with LLVM [1/20] Introduction to LLVM IR and tools
13:34