web-dev-qa-db-ja.com

バックパッチとはどういう意味ですか?

backpatchingはどういう意味ですか?簡単な例で説明してください。

21
saplingPro

バックパッチは、通常、コードに植え付けられた前方分岐を解決するプロセスを指します。 「if」ステートメントで、ターゲットの値がわかったとき、例えば閉じ括弧または一致する「else」に遭遇したとき。

19
user207421

コンパイラの中間コード生成段階では、多くの場合、まだ存在しないコードの場所に「ジャンプ」命令を実行する必要があります。このタイプのケースに対処するために、その命令にターゲットラベルが挿入されます。プロダクションルールの非終端マーカーにより、セマンティックアクションが選択されます。

11
Mostafiz Rahman

バックパッチ:シンタックス指定の定義は、2つ以上のパスで実装できます(合成属性と継承属性の両方があります)。

最初にツリーを構築します。

深さ優先順でツリーを歩きます。

ワンパスでのコード生成の主な難点は、制御ステートメントのフローのコードを生成するときに分岐のターゲットがわからない場合があることです

バックパッチは、この問題を回避する手法です。空のターゲットで分岐命令を生成するターゲットがわかったら、分岐命令のラベルを埋めます(バックパッチ)。

3

バックパッチは、前方参照を含む命令のオペランドフィールドが最初に空白のままになるプロセスです。前方参照シンボルのアドレスは、その定義がプログラムで検出されると、このフィールドに入れられます。

1
rubal mahal

バックパッチは、コード生成プロセス中に適切なセマンティック式を使用して、ラベルの不特定の情報を埋めるアクティビティです。

以下によって行われます。

  1. ブール式。
  2. 制御ステートメントのフロー。
0
shubham mittal