EVER SEEN A
FUNCTION?
def greet(name)
puts "Hello, ", name
end
Slide 33
Slide 33 text
STACK
PUSH_SELF
PUSH_LIT 0
PUSH_LIT 1
PUSH_LOCAL 0
CALL 2
PROGRAM
IP
def greet(name)
puts "Hello, ", name
end
"puts"
"Hello, "
LITERALS
name: "John"
LOCALS
Slide 34
Slide 34 text
STACK
PUSH_SELF
PUSH_LIT 0
PUSH_LIT 1
PUSH_LOCAL 0
CALL 2
PROGRAM
IP
def greet(name)
puts "Hello, ", name
end
"puts"
"Hello, "
LITERALS
name: "John"
LOCALS
Slide 35
Slide 35 text
"puts"
STACK
PUSH_SELF
PUSH_LIT 0
PUSH_LIT 1
PUSH_LOCAL 0
CALL 2
PROGRAM
IP
def greet(name)
puts "Hello, ", name
end
"puts"
"Hello, "
LITERALS
name: "John"
LOCALS
Slide 36
Slide 36 text
"Hello, "
"puts"
STACK
PUSH_SELF
PUSH_LIT 0
PUSH_LIT 1
PUSH_LOCAL 0
CALL 2
PROGRAM
IP
def greet(name)
puts "Hello, ", name
end
"puts"
"Hello, "
LITERALS
name: "John"
LOCALS
Slide 37
Slide 37 text
"John"
"Hello, "
"puts"
STACK
PUSH_SELF
PUSH_LIT 0
PUSH_LIT 1
PUSH_LOCAL 0
CALL 2
PROGRAM
IP
def greet(name)
puts "Hello, ", name
end
"puts"
"Hello, "
LITERALS
name: "John"
LOCALS
Slide 38
Slide 38 text
nil
STACK
PUSH_SELF
PUSH_LIT 0
PUSH_LIT 1
PUSH_LOCAL 0
CALL 2
PROGRAM
IP
def greet(name)
puts "Hello, ", name
end
"puts"
"Hello, "
LITERALS
name: "John"
LOCALS
Slide 39
Slide 39 text
GARBAGE
COLLECTION
Slide 40
Slide 40 text
THE ALLOCATOR
Slide 41
Slide 41 text
WHAT'S THE OPPOSITE
OF AN ALLIGATOR?
Slide 42
Slide 42 text
REFERENCE
COUNTING
object.refcount++
WHEN WE PUSH
AN OBJECT TO
THE STACK
object.refcount--
WHEN WE POP
AN OBJECT FROM
THE STACK
BROUGHT TO YOU
BY NAIVETY
Slide 43
Slide 43 text
COOLER
ALGORITHMS
GENERATIONAL
BAKER'S TREADMILL
BROUGHT TO YOU
BY COMPUTER
SCIENCE
MASTERMINDS
REAL-TIME
INCREMENTAL
NON-MOVING
NON-COPYING
MOVING
COPYING
CONCURRENT
BITMAP MARKING
TRICOLOR
STOP-THE-WORLD
MARK & SWEEP
BACON-FLAVOURED
SENTIMENTAL
KEBAP
Slide 44
Slide 44 text
JUST
IN
TIME
Slide 45
Slide 45 text
JUST
IN
TIME COMPILING
VM Bytecode
MACHINE CODE
x86
x86_64
arm
Slide 46
Slide 46 text
CHECK THIS OUT
breaux:
even cooler
cool
IF THIS TOPIC IS RELEVANT TO YOUR INTERESTS