-
Урок 1.
00:14:35
Motivations & Learning Outcomes
-
Урок 2.
00:02:59
How to Take this Course
-
Урок 3.
00:06:47
Compilers as Translators
-
Урок 4.
00:11:28
CPU Components
-
Урок 5.
00:10:00
Opcodes & Instructions
-
Урок 6.
00:05:32
Stack Push & Pop
-
Урок 7.
00:15:11
Control Flow
-
Урок 8.
00:11:10
What is a Program?
-
Урок 9.
00:05:23
Tokens & Lexemes
-
Урок 10.
00:17:00
Syntax Tree
-
Урок 11.
00:09:50
Setting Up our Project Folder
-
Урок 12.
00:02:58
Configuring Python on Windows
-
Урок 13.
00:01:25
Makefile
-
Урок 14.
00:03:22
Adding Token & Lexer Files
-
Урок 15.
00:11:33
Simple Scanning Algorithm
-
Урок 16.
00:11:54
Single-Character Tokens
-
Урок 17.
00:09:38
Ignoring Whitespace & Comments
-
Урок 18.
00:05:08
Scanning Equals & Not Equals
-
Урок 19.
00:06:24
Scanning Two-Char Tokens
-
Урок 20.
00:13:22
Scanning Numbers
-
Урок 21.
00:09:14
Scanning Strings & Identifiers
-
Урок 22.
00:04:56
Identifying Keywords
-
Урок 23.
00:05:13
Scanning -- as Line Comment
-
Урок 24.
00:01:58
Multiline Comments
-
Урок 25.
00:05:44
Syntax Analysis
-
Урок 26.
00:17:46
Context-Free Grammars & BNF
-
Урок 27.
00:13:56
Grammar for Simple Expressions
-
Урок 28.
00:19:36
A Model for AST Nodes
-
Урок 29.
00:14:30
Recursive Descent Parsing
-
Урок 30.
00:05:44
Parser Helper Functions (Exercise)
-
Урок 31.
00:11:41
AST of a Simple Expression
-
Урок 32.
00:03:16
Pretty AST Printing (Exercise)
-
Урок 33.
00:09:20
AST Printing & Polish Notation
-
Урок 34.
00:03:33
Terminal Colors & ANSI Escape Codes
-
Урок 35.
00:10:39
Standardizing Errors Messages
-
Урок 36.
00:07:11
Storing Line Numbers in Nodes
-
Урок 37.
00:04:59
Renaming Term & Factor
-
Урок 38.
00:07:47
A Tree-Walking Interpreter
-
Урок 39.
00:16:23
Coding a Simple Tree-Walking Interpreter
-
Урок 40.
00:02:52
No Signed Number Tokens?
-
Урок 41.
00:10:24
Pinky Language Data Types
-
Урок 42.
00:14:03
Dynamic Types at Runtime
-
Урок 43.
00:08:34
Runtime Type Checks
-
Урок 44.
00:08:57
Parsing Equality & Comparison (Exercise)
-
Урок 45.
00:10:48
Parsing Equality & Comparison Operators
-
Урок 46.
00:07:50
Exponent Associativity
-
Урок 47.
00:07:25
Logical And & Logical Or
-
Урок 48.
00:12:46
Short-Circuit Evaluation
-
Урок 49.
00:13:21
Testing Expressions
-
Урок 50.
00:03:24
REPL
-
Урок 51.
00:11:56
Alphabets, Languages, & Grammars
-
Урок 52.
00:14:43
Chomsky Grammar Hierarchy
-
Урок 53.
00:14:03
A Program as a List of Statements
-
Урок 54.
00:12:38
Parsing Print Statements
-
Урок 55.
00:06:51
Interpreting Print Statements
-
Урок 56.
00:01:02
PrintLn Statements (Exercise)
-
Урок 57.
00:06:35
PrintLn Statements & Escape Chars
-
Урок 58.
00:21:04
If Statements
-
Урок 59.
00:16:31
Identifiers & Assignments
-
Урок 60.
00:13:01
Program State & Memory
-
Урок 61.
00:13:08
The Environment Class
-
Урок 62.
00:11:16
Environment Load & Store (Exercise)
-
Урок 63.
00:10:53
Global & Local Variables
-
Урок 64.
00:02:08
While Statement (Exercise)
-
Урок 65.
00:06:43
While Statements
-
Урок 66.
00:17:20
For Statements
-
Урок 67.
00:07:27
Stringifying Booleans & Integers
-
Урок 68.
00:07:52
Mandelbrot Set (Exercise)
-
Урок 69.
00:08:25
Mandelbrot Set Script in Pinky
-
Урок 70.
00:08:03
Compiler-Compilers
-
Урок 71.
00:10:28
Functions in Pinky
-
Урок 72.
00:14:02
Function Model
-
Урок 73.
00:05:49
Parsing Function Declaration
-
Урок 74.
00:17:20
Parsing Function Call
-
Урок 75.
00:26:35
Interpreting Function Declaration
-
Урок 76.
00:09:51
Interpreting Function Call
-
Урок 77.
00:03:06
Expressions as Statements?
-
Урок 78.
00:01:05
Max. Number of Params (Exercise)
-
Урок 79.
00:00:45
Max. Number of Params
-
Урок 80.
00:07:20
Parsing Return Statements
-
Урок 81.
00:15:58
Interpreting Return Statements
-
Урок 82.
00:05:17
Fixing Params as Local Variables
-
Урок 83.
00:16:55
Local Variables & Shadowing
-
Урок 84.
00:18:12
Dragon Curve
-
Урок 85.
00:08:07
Simplified Cosine & Sine Functions
-
Урок 86.
00:12:29
Code Generation & VMs
-
Урок 87.
00:05:58
Example of Stack Instructions
-
Урок 88.
00:10:46
Adding Classes for Compiler & VM
-
Урок 89.
00:17:49
Emitting Push Instructions
-
Урок 90.
00:08:40
Emitting BinOp Instructions
-
Урок 91.
00:02:46
Exercise: Formatting our Code
-
Урок 92.
00:03:47
Formatting our Instructions
-
Урок 93.
00:08:28
Emitting UnOp Instructions
-
Урок 94.
00:04:41
Step by Step Stack Execution
-
Урок 95.
00:14:36
VM Execution
-
Урок 96.
00:16:42
VM Expression Evaluation
-
Урок 97.
00:14:18
VM Comparison Instructions
-
Урок 98.
00:12:06
Generating Code for If Statements
-
Урок 99.
00:07:36
Generating Then & Else Labels
-
Урок 100.
00:10:47
VM Jumps & Branches
-
Урок 101.
00:06:26
String Concat Instruction?
-
Урок 102.
00:14:27
Global Memory Load & Store
-
Урок 103.
00:17:39
Coding Globals Load & Store
-
Урок 104.
00:14:58
Scope Depth
-
Урок 105.
00:07:37
Starting & Ending Blocks
-
Урок 106.
00:17:19
Local Variables & Stack Slots
-
Урок 107.
00:21:12
Local Variables Code Generation
-
Урок 108.
00:08:56
Local Variables at Runtime
-
Урок 109.
00:08:23
Storing Globals by Slot Number
-
Урок 110.
00:08:55
Program Symbols & Debug Info
-
Урок 111.
00:01:05
Exercise: While Code Generation
-
Урок 112.
00:06:02
Generating Code for While Statements
-
Урок 113.
00:05:31
Register vs Stack VMs
-
Урок 114.
00:10:26
Register-based Bytecode
-
Урок 115.
00:10:29
CPython Bytecode Disassembly
-
Урок 116.
00:13:15
Search Locals in Reverse Order
-
Урок 117.
00:11:56
Function Code Generation
-
Урок 118.
00:16:33
Activation Frames
-
Урок 119.
00:08:04
Function Symbol Table
-
Урок 120.
00:12:47
Compiling Function Declarations
-
Урок 121.
00:10:48
Implementing JSR & RTS Instructions
-
Урок 122.
00:03:51
Exercise: Function Parameters
-
Урок 123.
00:08:22
Validating Function Arity & Arguments
-
Урок 124.
00:13:20
Frame Pointer Offsets
-
Урок 125.
00:07:36
Return Statements
-
Урок 126.
00:14:40
Removing Inactive Frame Slots
-
Урок 127.
00:19:12
Type Systems
-
Урок 128.
00:20:28
Type Annotations
-
Урок 129.
00:13:11
Shunting Yard for Simple Expressions
-
Урок 130.
00:05:19
Exercise: Shunting Yard Evaluation
-
Урок 131.
00:13:47
A Simple Shunting Yard Implementation
-
Урок 132.
00:09:53
Shunting Yard & Parentheses
-
Урок 133.
00:04:28
Shunting Yard & Right-Associativity
-
Урок 134.
00:13:43
Pratt Parser
-
Урок 135.
00:23:11
NUD, LED, & Binding Powers
-
Урок 136.
00:11:07
Example Pratt Parsing Expression
-
Урок 137.
00:11:47
Pratt Code (Without Precedence)
-
Урок 138.
00:08:24
Pratt Code (Precedence & Parentheses)
-
Урок 139.
00:08:53
Pratt Code (Right Associativity)
-
Урок 140.
00:10:17
Pratt Code (Prefix Unary Minus)
Prepare urself, I will notify you next week.