powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / межъязыковое взаимодействие
6 сообщений из 6, страница 1 из 1
межъязыковое взаимодействие
    #32854854
gazon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не очень разбираюсь в низкоуровневых языках, поэтому хочу высказать предположение, а вы меня исправьте, если оно не верное.
В одной книге написали, что межъязыковое взаимодействие достигается благодаря единой CLR и коду IL.
На счет IL я не согласен. Ведь CLR не испольняет сам код IL, а компилит его перед этим в native код.
Ведь можно добиться межъязыкового взаимодействия без IL:
например все компиляторы для разных языков компилировали бы не один и тот же IL код, а один и тот же native код по одному алгоритму, который бы исполняла единая среда исполнения. Таким образом можно было бы обеспечить межъязыковое взаимодействие без промежуточного языка типа IL.
Я прав?
Ведь на самом деле сам IL содержит только двоичные инструкции наподобии что положить с стек и сам IL абсолютно нейтрален к типам, а типы, список внешних сборок, и т.д. содержатся именно в таблицах метаданных(таже сам IL код находится в метаданных). Многе думают, что типы есть в IL, потому что видят их в ILDASM.exe, а он их просто вытаскивает из метаданных и представляет в красивом виде. А значит вся удобная работа со сборками осуществляется за счет именно метаданных.
...
Рейтинг: 0 / 0
межъязыковое взаимодействие
    #32854926
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не силен в тонкостях архитектуры .НЕТ, поэтому могу в чем-то ошибаться.
Межъязыковое взаимодействие достигается именно за счет IL. Потому что любой CLS-совместимый компилятор генерирует код на IL. При этом в идеале для одних и тех же алгоритмов IL-код получается одинаковый. А вот native код уже может отличаться в зависимости от конкретной аппаратной платформы.
Почему взаимодействие через IL, а не через native?
.NET - в некотором смысле еще один уровень абстракции. И IL - это некоторый "контракт" на взаимодействие с аппаратной платформой. И в этом смысле native-код не портируемый.
Отсюда же возможны проблемы со взаимодействием сборок, написанных на разных языках и скомпилированных различными компиляторами. Компиляторы же в общем случае могут генерить не совместимый native-код. А .NET обязывает компиляторы генерить IL-код (который в итоге все равно компилируется в native и потери в производительности минимальны).
...
Рейтинг: 0 / 0
межъязыковое взаимодействие
    #32855779
JeSert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gazon
Bigheadman прав.
Почему же тогда не сделали взаимодействие между C++ и Java??
И не у кого мысли не возникало по этому поводу.
...
Рейтинг: 0 / 0
межъязыковое взаимодействие
    #32856084
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Почему же тогда не сделали взаимодействие между C++ и Java??

Потому, что оно всегда было. JNI называется.
...
Рейтинг: 0 / 0
межъязыковое взаимодействие
    #32856085
Фотография www.fun4me.narod.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>> Ведь можно добиться межъязыкового взаимодействия без IL:

Для межмодульного взаимодействия нативного кода достаточно знать соглашения о вызове и сигнатуру вызываемой функции.
...
Рейтинг: 0 / 0
межъязыковое взаимодействие
    #32857808
MKV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gazon
Межъязыковое взаимодействие осуществляется благодаря общей спецификации CLS. Только некоторое подмножество IL, а также подмножество C#, VB.NET и других языков соответствует CLS. Только в пределах CLS гарантировано взаимодействие. Поэтому сам по себе IL в контексте обсуждаемого вопроса не имеет каких-то примуществ по сравнению с допустим С# и не является гарантом взаимодействия.
Так что по-моему Вы совершенно правы. Просто договорились - даешь общую спецификацию CLS! - и все, вот тебе взаимодействие. Можно было бы придумать что-либо помимо IL, он не является ни необходимым, ни достаточным для решения задачи. В отличии от общей спецификации - без нее никак бы не вышло такого взаимодействия.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / межъязыковое взаимодействие
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]