Overview lectures
- JavaScript. The Core: 2nd Edition
- JavaScript. The Core (older ES3 version)
- JS scope: static, dynamic, and runtime-augmented
- Writing a Memory Allocator
Essentials of Garbage Collectors
Online course devoted to the Automatic memory management used in computer programs, know as the Garbage Collection. Read more →
Preview:
- Lecture 2: Manual memory management
- Lecture 4: Virtual Memory and Memory Layout
- Lecture 9: Mark-Sweep collector
- Lecture 14: Mark-Region CG: Immix collector
- [ Enroll to full course ⇢ ]
State machines and Automata: building a RegExp machine
Online course devoted to state machines, formal grammars, and regular expressions implementation, where we build a RegExp processor based on NFA and DFA. Read more →
Preview:
- Lecture 1: RegExp history
- Lecture 4: Character and Epsilon NFA
- Lecture 13: RegExp-Tree tool
- [ Enroll to full course ⇢ ]
Written lectures for Finite Automata and RegExp class:
Parsing
- Syntax: language agnostic parser generator
- RegExp Tree: a regular expressions processor
- MIPS Assembly parser
- Rust LALR(1) parser generator
- hdl-js: HDL parser and Hardware simulator (online tool)
ECMA-262-3 in detail
- Chapter 1. Execution Contexts
- Chapter 2. Variable object
- Chapter 3. This
- Chapter 4. Scope chain
- Chapter 5. Functions
- Chapter 6. Closures
- Chapter 7.1. OOP: The general theory
- Chapter 7.2. OOP: ECMAScript implementation
- Chapter 8. Evaluation strategy
ECMA-262-5 in detail
- Chapter 1. Properties and Property Descriptors
- Chapter 2. Strict Mode
- Chapter 3.1. Lexical environments: Common Theory
- Chapter 3.2. Lexical environments: ECMAScript implementation
Notes
- Note 1. ECMAScript. Bound functions
- Note 2. ECMAScript. Equality operators
- Note 3. CoffeeScript. Scheme on Coffee
- Note 4. Two words about “hoisting”
- Note 5. ECMAScript: Unresolved references
- Note 6. ES6: Default values of parameters
“Essentials of interpretation” course
- Intro
- Checkpoint: part 1
- Lesson 1. The simplest arithmetic expressions (AE) evaluator
- Lesson 2. Parsing. Lexer of AE in math infix notation
- Lesson 3. Parsing. Parser of AE in math infix notation
- Lesson 4. Working with environments. Variables and built-in functions
- Lesson 5. Simple user-defined functions
- Lesson 6. Inner functions, lambdas and closures
- Lesson 7. Derived expressions (“Syntactic sugar”)
Misc
- Using modern regexes in JavaScript
- Pattern Matching
- OO Relationships
- x86: More code – less code
- x86: Generated code optimizations and tricks