単純なVMを作成していますが、オブジェクトと構造体のメンバーアクセスの実装について質問があります。
プログラムの開始アドレスは実行ごとに任意であり、その後、そのオブジェクトのすべてのアドレスも任意であるためです。
したがって、オブジェクトまたはそのメンバーオブジェクトにアクセスするために私が考えることができる唯一の方法は、「ベース」ポインタからのオフセットにアクセスすることです。つまり、プログラム構造内のすべてにアクセスするために必要な算術演算があります。
私の質問は、これがプロのコンパイラで行われる方法であるかどうかです。これは、明らかにこのアプローチによってランタイムにオーバーヘッドが追加されるためです。私自身、このプロセスをランタイムからオフロードする方法は考えられません。メモリ割り当てとそのアドレスの一貫性?