3 ms·
There's really no such thing as a 'function' at the assembler level. There are pure jumps and there are jumps that also perform side effects on a register conve
by dreamcompiler 1y ago
There's really no such thing as a 'function' at the assembler level. There are pure jumps and there are jumps that also perform side effects on a register conventionally called a 'stack pointer' (and on the memory that register points to) but no true 'functions.'
This is roughly the point Steele is making, in addition to his point that the stack pointer side effects are often unnecessary (i.e. tail jumps).
Implementing a stack pointer in hardware is merely a legacy hack: Before people figured out continuations they didn't know any better.
- antonvs 1y ago> There's really no such thing as a 'function' at the assembler level. That's like saying "There's really no such thing as a 'chair' at the quantum level."
- xboxnolifes 1y agoIf you look at the computer (registers, cache, RAM, storage, etc) as one whole, every assembler instruction is just a function that takes in the state of the computer and returns a new state. Multiple assembler instructions is then using function composition.
- antonvs 1y agoWell put. This is what many people seem to miss: the functional perspective is a model.