まあ、正確ではありません。機能的なデータ構造についてもっと質問があります。
CPU の実行をモデル化するとします。CPUの状態を変更する命令のセット(スタックベースのCPUだとします。ジャンプだけにオペランドがあります...など)、プログラムを構成する命令のリスト、およびラベルがあります。ジャンプは、オフセットではなく、ラベルへの参照によって行われます。これをどのように表現すればよいですか?
のようなプログラムがある場合[Label "foo", Add, Add, Mult, Label "bar", Jnz "foo"]
、 をヒットJnz "foo"
するまでに、ラベル「foo」を前後に検索して実行を続行する必要があります。それは少しばかげているようです。ラベルへの素早いジャンプを可能にする、より優れたデータ構造を持つことができるはずだと思います。ここで、オフセットを保存したくないと勝手に言います。CPUが自己変更コードなどを許可しているとします。参照が現在のバージョンのコードを指していることを確認しながら、コードにパッチを適用するにはどうすればよいですか?
私はジッパーのアイデアが好きです。O(1)時間で定義済みの場所にジッパーをジャンプさせるという考えが理にかなっているのかどうかはわかりません