0

コンパイラー試験の準備をしていますが、過去の論文で次の 2 つの質問に答えられないことがわかりました。

1. Array bounds checking requires code to check each array subscript to ensure it
falls within the array's declared range. How could induction variable analysis be
used to avoid repeated bounds checks in "for" loops.

2. Give a short example in Java in which one array address calculation is loop-
invariant and another array address is an induction variable.

不変変数と帰納変数が何を意味するかは知っていますが、これら 2 つの解決策を説明することに関して、私に何が期待されているかはよくわかりません。

誰かが説明を手伝ってくれたら幸いです。

ありがとう!

4

1 に答える 1

0

最初のものは非常に単純です。帰納変数は反復ごとに固定量だけ増加するため、配列の添字として使用される帰納変数の最大値を事前に計算し、それが配列の境界を超えていないことを確認できます。反復ごとに添字をチェックするのではなく、ループを実行する前にこれを 1 回実行します。

2 つ目については、(Java を含むさまざまな言語で) ループ不変ループと帰納変数ループの例がたくさんあります。これらの用語については Google だけです。

于 2013-03-01T16:04:10.793 に答える