filmov
tv
Writing a compiler. Environment, closures, let-bindings
Показать описание
This is the second video in a series focused on implementing a compiler backend for a small functional language which is a variation of the untyped λ-calculus. In this video we improve the tree-walking interpreter's performance 10x using environments and closures instead of explicit term substitution. Furthermore, we add support for recursive let-bindings which allow direct encoding of recursive functions without the use of the fix-point operator.
00:00 - Intro
01:02 - Recap
01:50 - Problems with function application
03:01 - Environment and closures
05:07 - Evaluation and Values
09:14 - Adding an environment
10:56 - Introducing closures
14:05 - Interpretation of function application
16:56 - Running the new intepreter
18:38 - Adding let-bindings to the language
21:44 - Handling recursive let-bindings
28:43 - Direct-style fibonacci
30:13 - Performance uplift and comparison with other languages
30:46 - Detecting bad recursive bindings
35:15 - How fast it works in other languages
37:52 - Summary and next up
00:00 - Intro
01:02 - Recap
01:50 - Problems with function application
03:01 - Environment and closures
05:07 - Evaluation and Values
09:14 - Adding an environment
10:56 - Introducing closures
14:05 - Interpretation of function application
16:56 - Running the new intepreter
18:38 - Adding let-bindings to the language
21:44 - Handling recursive let-bindings
28:43 - Direct-style fibonacci
30:13 - Performance uplift and comparison with other languages
30:46 - Detecting bad recursive bindings
35:15 - How fast it works in other languages
37:52 - Summary and next up
Writing a compiler. Environment, closures, let-bindings
Learn Closures In 7 Minutes
Writing a compiler: Adding blocks/closures in Natalie
Andy Keep - Writing a Nanopass Compiler
Writing a compiler. Bytecode finale
Writing a compiler. Term reduction via substitution
What's So Hard About Writing A Compiler, Anyway? Oh - Ramsey Nasser
Closures in Rust
The ClojureScript Compiler - A Look Behind the Curtains - Maria Geller
I made a Compiler in 25 Days - Here is what I learned
Writing a compiler. Bytecode and let-bindings
Writing a compiler: Global variables
Java for the Haters in 100 Seconds
Writing a compiler. Bytecode basics
Why I’m Switching To Go in 2024
Senior Programmers vs Junior Developers #shorts
Testing Stable Diffusion inpainting on video footage #shorts
Do you have a problem? Write a compiler! – Oleg Grenrus
The Nanopass Framework as a Nanopass Compiler
How a (this) Compiler Works | C++ | Compiler Hacking
Writing a compiler: Passing arguments to blocks
'Rebuilding Optimizing Compiler for Dart' by Vyacheslav Egorov
Let's Create a Compiler (Pt.1)
Crust of Rust: Functions, Closures, and Their Traits
Комментарии