29. スタックベースの実行
#29. スタックベースの実行 CPython は、ほとんどのバイトコードをスタック マシンで実行します。スタック マシンは、すべての命令でソース レジスタとデスティネーション レジスタを明示的に指定するのではなく、暗黙的なオペランド スタックを使用します。 CPython では、このスタックは現在のフレームに属します。 Python オブジェクトへの参照を保存します。バイトコード命令は、オブジェクトのプッシュ、オブジェクトのポップ、オブジェクトの検査、オブジェクトの置換、およびオブジェクトを使用した新しい結果の計算を行います。 簡単な表現: python id="kz6m7x" x = a + b 概念的には次のように実行されます。 text id="eurdpx" LOAD_FAST a push a LOAD_FAST b push b BINARY_OP + pop b and a, push result STORE_FAST x pop result into local x 命令ストリームには次のような記述はありません。 text id="ardj57" add local_a, local_b, local_x 代わりに、次のように書かれています。```text id="jzzlmf" load a load b add top two stack values store result ## 29.1 CPython…