0
  1. Dynamic Binding C++から引用、

    動的バインディングは動的リンクと直交しています...

    直交の意味をどう理解すればいいのだろうと思っていたのですが?

    • ソースコードを機械語にコンパイルすることは深層に行くようなものであり、さまざまな機械語コードを連結することは水平に行くようなものであり、互いに直交している.

    • (静的/動的)名前バインディングはコンパイルの概念です

    • 静的/動的リンクはリンケージの概念ですか?

  2. 動的リンクの場合、関与するバインディング、つまりオブジェクト (データおよび/またはコード) と識別子との関与する関連付けは動的バインディングですか?

ありがとう!

4

1 に答える 1

3

「直交」とは、一方の存在または状態 (より抽象的な意味で) が、他方の対応する状態にまったく依存しないことを意味します。この特定のケースでは、動的バインディングが発生するかどうかに関係なく動的リンクが発生する可能性があることを意味し、その逆も同様です。

実際的な例として、動的バインディングは、ソース コードに存在する関数呼び出しの結果として実行する必要があるコードの部分を実行時に解決するものであると考えてください。そのコードは、リンク時に実行可能ファイルにリンクされるライブラリに存在する場合 (静的リンク)、または実行時に動的にロードされるライブラリに存在する場合 (動的リンク) があります。バインディング部分は、リンクがどのように行われたかを気にしません。したがって、後者と直交しています。

また、次のように尋ねます。

動的リンクの場合、関与するバインディング、つまりオブジェクト (データおよび/またはコード) と識別子との関与する関連付けは動的バインディングですか?

リンクプロセスにはバインディングが含まれていないため、この質問は意味がありません。バインディングは、静的 (コンパイラーによって解決され、オブジェクト コードに焼き付けられる) または動的 (実行時に解決される) で発生しますが、バインド方法の決定とバインディングを解決するロジックは、リンクとはまったく相互作用しません。

于 2011-03-27T18:19:44.697 に答える