~/talk

Implementing Software Machines in Go and C

Talkat GoLab 2018 · 2018-10-22..10-23· [compilers-and-language-design, go]
slides:none on file

Implements small VMs in C and Go and shows working code: a bytecode interpreter, a function-pointer dispatcher, a C computed goto version that replaces opcodes with label addresses for speed, and a Go version using function values and closures (but without computed labels). Builds stacks (array and cactus stack), a hash map in C and Go, and a tiny assembler/VM that runs examples (13+28 and a countdown from 13 to 0). Uses unsafe and reflect tricks to mutate memory and demonstrates which approaches actually speed up execution.

AI-written summary · about

  1. 0:00Start
  2. 3:34System Virtualization
  3. 10:27The Harvard Memory Model
  4. 12:18Stacks
  5. 20:24Associative Array
  6. 23:55Cache
  7. 31:40Closures
  8. 34:43Vm Harness
  9. 35:41Stack Machines
  10. 37:35Accumulator
  11. 38:12Accumulator Machines
  12. 38:34Register Machines
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.