Как программы используют другие программы, которые не на том же языке программирования - PullRequest
0 голосов
/ 11 ноября 2011

Как программы используют другие программы, которые не на том же языке? Например, Windows находится на C ++, а ядро ​​на C. Я также видел, что Java-программы также используют C-программы.
Как они это делают?
Они используют мастер-классы? Как class Whatever : MasterClassName?

Ответы [ 2 ]

0 голосов
/ 21 ноября 2011

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

Для того, чтобы общаться, программы должны сделать несколько предположений о том, как это общение выглядит. Этот механизм обычно называется протоколом.

Например, приложения взаимодействуют с ядром ОС, как правило, по протоколу системного вызова. Они хранят некоторые специальные значения в регистрах процессора и используют инструкцию машинного кода для переключения в режим ядра. Затем ядро ​​проверяет вышеупомянутые специальные значения, чтобы решить, какую операцию необходимо выполнить (например, открыть файл, распечатать на терминале и т. Д.). Значение конкретных значений определяется протоколом.

DLL, файлы, базы данных, IPC, сети и т. Д. - все это протоколы связи, в этой конкретной интерпретации. Они обычно реализуются в терминах более низкоуровневых протоколов, таких как системные вызовы ядра.

0 голосов
/ 11 ноября 2011

Я не уверен, что вы имеете в виду, когда говорите, что видели, как Java-программа использует C-программу. Вы имеете в виду, что Java-программа использует исполняемый файл, сгенерированный из кода C?

С другой стороны, две программы могут взаимодействовать друг с другом через, среди прочего, DLL, интерфейс сокетов (TCP / UDP), файл, базу данных и / или CORBA.

...