динамическое связывание и динамическое связывание - PullRequest
0 голосов
/ 27 марта 2011
  1. Цитируется из Динамическое связывание C ++ ,

    Динамическое связывание ортогонально динамическому связыванию ...

    IИнтересно, как понять значение «ортогональный»? Это потому, что

    • компиляция исходного кода в машинный код - это как углубление, а увязка различных машинных кодов - как горизонтальное движение, ипоэтому они ортогональны друг другу,

    • (статическое / динамическое) привязка имени является концепцией компиляции

    • статическое / динамическое связывание являетсяпонятие в связи?

  2. , если в динамическом связывании любое связанное связывание, то есть любое вовлеченное объединение объектов (данных и / или кода) с идентификаторами, является динамическим связыванием?

Спасибо!

1 Ответ

3 голосов
/ 27 марта 2011

«Ортогональный» означает, что наличие или статус (в более абстрактном смысле) одного вообще не зависит от соответствующего статуса другого. В этом конкретном случае это означает, что динамическое связывание может происходить независимо от того, происходит ли динамическое связывание, и наоборот.

В качестве практического примера рассмотрим, что динамическое связывание - это разрешение во время выполнения того, какой фрагмент кода должен быть выполнен в результате вызова функции, присутствующей в исходном коде. Этот фрагмент кода может присутствовать в библиотеке, которая связана с исполняемым файлом во время соединения (статическое связывание), или он может присутствовать в библиотеке, динамически загружаемой во время выполнения (динамическое связывание). связывание часть не заботится о том, как связывание было сделано; следовательно, ортогонально к последнему.

Вы также спросите:

если в динамическом связывании, любое участие связывание, т. е. любое участие объединение объектов (данных и / или код) с идентификаторами является динамическим связывание?

Этот вопрос не имеет смысла, поскольку привязка не вовлечена в связывание процесса. Привязка может происходить статически (разрешается компилятором и включается в объектный код) или динамически (разрешается во время выполнения), но решение о том, как выполнить привязку, и логика, разрешающая привязку, вообще не взаимодействуют со связыванием.

...