コンピューター理論、チョットデキルようになりたい

コンピュータサイエンスの学び直しです

学び直し41日目:8章 バーチャルマシン#2:VM仕様

記録

書いてある通り、としか言いようがない。中でも、関数呼び出しについてだけ記載しておく。

関数呼び出しプロトコル

  • if 文は、if-goto が呼ばれたときにスタックの最上位をポップして 0 かどうかで判定している。
  • 関数を呼び出す側の挙動としては、「引数をスタックにプッシュする」→「関数を呼び出す(call)」→「スタック最上位に格納されている返り値を受け取る」→「呼び出し側のメモリセグメントが関数を呼ぶ前の状態に戻る」といった感じ。
  • 呼び出される関数側の挙動としては、「呼び出し側から渡された引数で argument セグメントを初期化する」→「その他セグメントもそれぞれ適切に初期化する(詳細省略)」→「演算実行する」→「リターンされる前に、返り値をスタックにプッシュする。」といった感じ。

今日の筋トレ

最近モチベが…