Chapters
Transcript
Episode notes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
Introduction
00:00 • 5min
How I Learned Programming in High School
04:35 • 3min
How I Learned High Performance Computing
07:20 • 3min
The History of APL
10:08 • 3min
Replica: A Partitioned in Close Thing
13:02 • 2min
How to Make Primitives Beat Hand-Coded Languages
14:56 • 6min
The History of the APL Compiler
20:35 • 5min
The Importance of Static Single Assignment Form
25:49 • 3min
The Cost of Static Single Assignment
29:00 • 2min
SISL and the Benefits of Single Assignment
30:53 • 3min
How to Improve the Speed of a Single Primitive
33:59 • 2min
The Magic of Loop Fusion
36:10 • 4min
The Magic of Loop Folding
40:18 • 4min
The Importance of Multiple Types in Programming
43:56 • 5min
The Problem With APL's Code Defense
49:17 • 5min
How to Optimize Reference Counts
53:59 • 2min
The Advantages of Refactoring an API Interpreter
56:04 • 2min
The Cost of Compiling a Table in a Jet Environment
57:46 • 2min
The Importance of Consistency in Compilation
01:00:01 • 2min
How to Get Primitives to Run at the Same Speed
01:02:06 • 3min
How to Refactor a JIT Compiler to Preserve Existing Interpreter Behavior
01:04:39 • 2min
The Importance of Reference Counting and Conformability Checks in Interpreters
01:06:44 • 2min
How to Compile a Sparse Replica
01:08:40 • 2min
How to Take the Apex Compiler for a Spin
01:10:23 • 2min
The Unpleasant State of AI Languages
01:12:49 • 6min