Статическое распределение и распределение стека в дизайне компилятора
Я не ясно о том, было ли статическое и стек размещения? Является ли статическое распределение статическим и динамическое распределение стека? Тогда к чему относится распределение кучи?
Как с этим связана запись активации? Я думал, что запись активации является концептуальной вещью, такой как дерево активации, и не имеет физического существования.
Что означает следующий целевой машинный код?
статическое распределение:
ST callee. staticArea , #here + 20
BR callee. codeArea
распределение стека:
LD SP , #stackStart
code for the first procedure
HALT
ADD SP , SP , #caller. recordSize
ST *SP , #here + 16
BR callee. codeArea
BR *O (SP) // return to caller
SUB SP , SP , #caller. recordSize // decrement stack pointer