Conference Guide

The Craft Behind Crafting Interpreters
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:01Bob Nystrom: Thank you
0:01Bob Nystrom: Thank you
0:01Bob Nystrom: Thank you
0:04BN: I was promised fire
0:04BN: I was promised fire
0:04BN: I was promised fire
0:09Abner Coimbre: Didn't you sign a contract that said you'd drink Chocolate Wine?
0:09Abner Coimbre: Didn't you sign a contract that said you'd drink Chocolate Wine?
0:09Abner Coimbre: Didn't you sign a contract that said you'd drink Chocolate Wine?
0:14BN: What is the deal with ChocoVine?
0:14BN: What is the deal with ChocoVine?
0:14BN: What is the deal with ChocoVine?
0:21AC: Chocolate Wine is just a pure delight
0:21AC: Chocolate Wine is just a pure delight
0:21AC: Chocolate Wine is just a pure delight
0:34BN: Is it good?
0:34BN: Is it good?
0:34BN: Is it good?
0:39AC: Let's move on to the next presentation
0:39AC: Let's move on to the next presentation
0:39AC: Let's move on to the next presentation
0:43AC: Introduce Bob
0:43AC: Introduce Bob
0:43AC: Introduce Bob
0:52BN: Not a VM hacker, but working directly on Dart1 language design
0:52BN: Not a VM hacker, but working directly on Dart1 language design
0:52BN: Not a VM hacker, but working directly on Dart1 language design
1:56AC: You also wrote a book?
1:56AC: You also wrote a book?
1:56AC: You also wrote a book?
2:01BN: I've written two books
2:01BN: I've written two books
2:01BN: I've written two books
2:04AC: Let's talk about those two books
2:04AC: Let's talk about those two books
2:04AC: Let's talk about those two books
2:05BN: On writing Game Programming Patterns2 and Crafting Interpreters3
2:05BN: On writing Game Programming Patterns2 and Crafting Interpreters3
2:05BN: On writing Game Programming Patterns2 and Crafting Interpreters3
2:32AC: Ask our moderator to post the link in the chat
2:32AC: Ask our moderator to post the link in the chat
2:32AC: Ask our moderator to post the link in the chat
2:36BN: It is craftinginterpreters.com4
2:36BN: It is craftinginterpreters.com4
2:36BN: It is craftinginterpreters.com4
2:41AC: On putting Handmade Seattle on a language hiatus due to vicious contentiousness
2:41AC: On putting Handmade Seattle on a language hiatus due to vicious contentiousness
2:41AC: On putting Handmade Seattle on a language hiatus due to vicious contentiousness
4:23BN: Is this really just a criticism of Dart?5
4:23BN: Is this really just a criticism of Dart?5
4:23BN: Is this really just a criticism of Dart?5
4:28AC: On not wanting the conference to become a boxing ring
4:28AC: On not wanting the conference to become a boxing ring
4:28AC: On not wanting the conference to become a boxing ring
4:47BN: It's a real thing
4:47BN: It's a real thing
4:47BN: It's a real thing
4:50AC: How do you feel about this trend?
4:50AC: How do you feel about this trend?
4:50AC: How do you feel about this trend?
4:56BN: People feeling the opportunity cost in language development
4:56BN: People feeling the opportunity cost in language development
4:56BN: People feeling the opportunity cost in language development
6:43AC: It's interesting because you did write a book…
6:43AC: It's interesting because you did write a book…
6:43AC: It's interesting because you did write a book…
6:47BN: …telling people to make lots of new languages
6:47BN: …telling people to make lots of new languages
6:47BN: …telling people to make lots of new languages
6:57AC: Can people build the skill to build special-purpose languages such that it becomes a normal thing? Is there a way to simplify complexity of the tech stack?
6:57AC: Can people build the skill to build special-purpose languages such that it becomes a normal thing? Is there a way to simplify complexity of the tech stack?
6:57AC: Can people build the skill to build special-purpose languages such that it becomes a normal thing? Is there a way to simplify complexity of the tech stack?
7:52BN: On making it easier for new languages to be successful
7:52BN: On making it easier for new languages to be successful
7:52BN: On making it easier for new languages to be successful
9:15BN: Excitement for tooling like the Language Server Protocol6
9:15BN: Excitement for tooling like the Language Server Protocol6
9:15BN: Excitement for tooling like the Language Server Protocol6
10:02BN: The biggest cost for language success is getting it into people's heads
10:02BN: The biggest cost for language success is getting it into people's heads
10:02BN: The biggest cost for language success is getting it into people's heads
10:09AC: Mind share
10:09AC: Mind share
10:09AC: Mind share
10:11BN: The rational reluctance of people to invest their time and attention in a new language
10:11BN: The rational reluctance of people to invest their time and attention in a new language
10:11BN: The rational reluctance of people to invest their time and attention in a new language
10:26AC: Isn't integrating into tools like LSP adding to the complexity of the ecosystems?
10:26AC: Isn't integrating into tools like LSP adding to the complexity of the ecosystems?
10:26AC: Isn't integrating into tools like LSP adding to the complexity of the ecosystems?
10:47BN: Yes
10:47BN: Yes
10:47BN: Yes
10:48AC: On surfacing new languages through the ability to write something similar
10:48AC: On surfacing new languages through the ability to write something similar
10:48AC: On surfacing new languages through the ability to write something similar
12:18BN: The value of coping with the feeling of disempowerment through making things
12:18BN: The value of coping with the feeling of disempowerment through making things
12:18BN: The value of coping with the feeling of disempowerment through making things
13:31AC: As a niche of people making languages, is self-preservation all we can expect?
13:31AC: As a niche of people making languages, is self-preservation all we can expect?
13:31AC: As a niche of people making languages, is self-preservation all we can expect?
15:00BN: Being charitable to suboptimally implemented software
15:00BN: Being charitable to suboptimally implemented software
15:00BN: Being charitable to suboptimally implemented software
16:23AC: Getting a Big Mac in 15 minutes at the press of a button
16:23AC: Getting a Big Mac in 15 minutes at the press of a button
16:23AC: Getting a Big Mac in 15 minutes at the press of a button
16:30BN: Appreciating functionality provided by crappy code
16:30BN: Appreciating functionality provided by crappy code
16:30BN: Appreciating functionality provided by crappy code
16:52AC: Potential inspiration of businesses prioritising software quality over other incentives
16:52AC: Potential inspiration of businesses prioritising software quality over other incentives
16:52AC: Potential inspiration of businesses prioritising software quality over other incentives
17:55AC: Rewinding to before Dart7 and Flutter,8 how did you come to write Crafting Interpreters?9
17:55AC: Rewinding to before Dart7 and Flutter,8 how did you come to write Crafting Interpreters?9
17:55AC: Rewinding to before Dart7 and Flutter,8 how did you come to write Crafting Interpreters?9
18:42BN: Career path to writing Crafting Interpreters,10 working in computer animation, UI design, game programming and language development, and learning F♯ on paternity leave
18:42BN: Career path to writing Crafting Interpreters,10 working in computer animation, UI design, game programming and language development, and learning F♯ on paternity leave
18:42BN: Career path to writing Crafting Interpreters,10 working in computer animation, UI design, game programming and language development, and learning F♯ on paternity leave
20:54AC: Is it11 the book you wish you had when you were learning?
20:54AC: Is it11 the book you wish you had when you were learning?
20:54AC: Is it11 the book you wish you had when you were learning?
21:11BN: On wishing the book existed, and being wired to want to tell people about exciting things
21:11BN: On wishing the book existed, and being wired to want to tell people about exciting things
21:11BN: On wishing the book existed, and being wired to want to tell people about exciting things
22:16AC: Did you design Lox as well?
22:16AC: Did you design Lox as well?
22:16AC: Did you design Lox as well?
22:18BN: Yep, the whole thing
22:18BN: Yep, the whole thing
22:18BN: Yep, the whole thing
22:20AC: Then you wrote interpreters for Lox in two different languages?
22:20AC: Then you wrote interpreters for Lox in two different languages?
22:20AC: Then you wrote interpreters for Lox in two different languages?
22:30BN: In Java and C
22:30BN: In Java and C
22:30BN: In Java and C
22:40AC: So you're writing a VM in a VM?
22:40AC: So you're writing a VM in a VM?
22:40AC: So you're writing a VM in a VM?
22:45BN: Using Java as a stepping stone while learning
22:45BN: Using Java as a stepping stone while learning
22:45BN: Using Java as a stepping stone while learning
23:20AC: Can you define "tree-walk interpreter"?
23:20AC: Can you define "tree-walk interpreter"?
23:20AC: Can you define "tree-walk interpreter"?
23:22BN: Definition: Tree-walk interpreter12
23:22BN: Definition: Tree-walk interpreter12
23:22BN: Definition: Tree-walk interpreter12
24:52AC: Put Q: in #Main to ask a question
24:52AC: Put Q: in #Main to ask a question
24:52AC: Put Q: in #Main to ask a question
25:14BN: I've requested that Abner ask me the most embarrassing questions
25:14BN: I've requested that Abner ask me the most embarrassing questions
25:14BN: I've requested that Abner ask me the most embarrassing questions
25:21AC: So you've taken away all the minutiae
25:21AC: So you've taken away all the minutiae
25:21AC: So you've taken away all the minutiae
25:40BN: Learning the high-level concepts
25:40BN: Learning the high-level concepts
25:40BN: Learning the high-level concepts
25:53AC: So Part 2 switches away from Java
25:53AC: So Part 2 switches away from Java
25:53AC: So Part 2 switches away from Java
25:55BN: Doing the whole thing again from scratch in C13
25:55BN: Doing the whole thing again from scratch in C13
25:55BN: Doing the whole thing again from scratch in C13
27:35AC: How do you manage memory for your interpreter in C?
27:35AC: How do you manage memory for your interpreter in C?
27:35AC: How do you manage memory for your interpreter in C?
28:00BN: Memory management
28:00BN: Memory management
28:00BN: Memory management
28:18BN: Memory management: 1) In the C implementation of Lox
28:18BN: Memory management: 1) In the C implementation of Lox
28:18BN: Memory management: 1) In the C implementation of Lox
29:24BN: Memory management: 2) Lox's Mark-Sweep garbage collector14
29:24BN: Memory management: 2) Lox's Mark-Sweep garbage collector14
29:24BN: Memory management: 2) Lox's Mark-Sweep garbage collector14
30:41AC: So you generate bytecode at some point?
30:41AC: So you generate bytecode at some point?
30:41AC: So you generate bytecode at some point?
31:15BN: All this happens internally
31:15BN: All this happens internally
31:15BN: All this happens internally
31:18AC: How do you design bytecode instructions?
31:18AC: How do you design bytecode instructions?
31:18AC: How do you design bytecode instructions?
31:27BN: Designing the bytecode instruction format for Lox
31:27BN: Designing the bytecode instruction format for Lox
31:27BN: Designing the bytecode instruction format for Lox
32:57AC: So you're translating one representation to a more compact and execution-efficient form?
32:57AC: So you're translating one representation to a more compact and execution-efficient form?
32:57AC: So you're translating one representation to a more compact and execution-efficient form?
33:05BN: Compiler pipelines generally transforming data to a format for the next stage to work on
33:05BN: Compiler pipelines generally transforming data to a format for the next stage to work on
33:05BN: Compiler pipelines generally transforming data to a format for the next stage to work on
33:28AC: After reading your book,15 could someone replace LLVM?
33:28AC: After reading your book,15 could someone replace LLVM?
33:28AC: After reading your book,15 could someone replace LLVM?
33:40BN: …Yes, within weeks
33:40BN: …Yes, within weeks
33:40BN: …Yes, within weeks
33:49AC: Plug the booth of a 19 year old who wants to take on LLVM
33:49AC: Plug the booth of a 19 year old who wants to take on LLVM
33:49AC: Plug the booth of a 19 year old who wants to take on LLVM
34:48AC: Put Q: in #Main to ask a question
34:48AC: Put Q: in #Main to ask a question
34:48AC: Put Q: in #Main to ask a question
34:59AC: What's your take on the whole memory safety fiasco online?
34:59AC: What's your take on the whole memory safety fiasco online?
34:59AC: What's your take on the whole memory safety fiasco online?
36:31BN: We are a tribal primate species
36:31BN: We are a tribal primate species
36:31BN: We are a tribal primate species
38:05AC: Check the chat
38:05AC: Check the chat
38:05AC: Check the chat
38:11BN: Recognising the variety of perspectives
38:11BN: Recognising the variety of perspectives
38:11BN: Recognising the variety of perspectives
39:07AC: Round of applause for Bob
39:07AC: Round of applause for Bob
39:07AC: Round of applause for Bob
39:17AC: People in the chat server, you can ping Bob, and find him in-person
39:17AC: People in the chat server, you can ping Bob, and find him in-person
39:17AC: People in the chat server, you can ping Bob, and find him in-person
40:02BN: Chocolate and Wine is such a strange combination
40:02BN: Chocolate and Wine is such a strange combination
40:02BN: Chocolate and Wine is such a strange combination
40:08AC: So if you had Cabernet Sauvignon and then Dark Chocolate Bar separate, you're cool with that, but if I crush the chocolate bar into the wine and stir it and give it to you, you would say no?
40:08AC: So if you had Cabernet Sauvignon and then Dark Chocolate Bar separate, you're cool with that, but if I crush the chocolate bar into the wine and stir it and give it to you, you would say no?
40:08AC: So if you had Cabernet Sauvignon and then Dark Chocolate Bar separate, you're cool with that, but if I crush the chocolate bar into the wine and stir it and give it to you, you would say no?
40:19BN: It is suspect. Hypothesis: No food product whose name is a portmanteau is good
40:19BN: It is suspect. Hypothesis: No food product whose name is a portmanteau is good
40:19BN: It is suspect. Hypothesis: No food product whose name is a portmanteau is good
40:49AC: I need to vet my speakers better
40:49AC: I need to vet my speakers better
40:49AC: I need to vet my speakers better
40:53tomas.diaz What part of writing a book did you not like?
🗪
40:53tomas.diaz What part of writing a book did you not like?
🗪
40:53tomas.diaz What part of writing a book did you not like?
🗪
41:01BN: On not liking all of the parts of writing Crafting Interpreters16
41:01BN: On not liking all of the parts of writing Crafting Interpreters16
41:01BN: On not liking all of the parts of writing Crafting Interpreters16
42:30pal We've seen some pretty broad topics covered by your books: first Game Programming, now Interpreters. What's the next big interesting area?
🗪
42:30pal We've seen some pretty broad topics covered by your books: first Game Programming, now Interpreters. What's the next big interesting area?
🗪
42:30pal We've seen some pretty broad topics covered by your books: first Game Programming, now Interpreters. What's the next big interesting area?
🗪
42:42BN: No plans to write a third book
42:42BN: No plans to write a third book
42:42BN: No plans to write a third book
43:39rohitawate How would you suggest a new grad to get a job in the programming language / compilers / VMs space?
🗪
43:39rohitawate How would you suggest a new grad to get a job in the programming language / compilers / VMs space?
🗪
43:39rohitawate How would you suggest a new grad to get a job in the programming language / compilers / VMs space?
🗪
44:02BN: On the wider language-adjacent field of software
44:02BN: On the wider language-adjacent field of software
44:02BN: On the wider language-adjacent field of software
44:59scottjmaddox Do you have any insights for efficient and effective error reporting? In my limited experience, error reporting seems to considerably complicate an interpreter
🗪
44:59scottjmaddox Do you have any insights for efficient and effective error reporting? In my limited experience, error reporting seems to considerably complicate an interpreter
🗪
44:59scottjmaddox Do you have any insights for efficient and effective error reporting? In my limited experience, error reporting seems to considerably complicate an interpreter
🗪
45:20BN: Preferring recursive descent parsers partly for their relative ease with error handling
45:20BN: Preferring recursive descent parsers partly for their relative ease with error handling
45:20BN: Preferring recursive descent parsers partly for their relative ease with error handling
46:52AC: Give him a round of applause one more time
46:52AC: Give him a round of applause one more time
46:52AC: Give him a round of applause one more time
46:54BN: Thank you
46:54BN: Thank you
46:54BN: Thank you