Как комбинировать разные языки программирования

Я не спрашиваю, КОГДА связывать разные языки программирования.

Это довольно общий вопрос, но я лично работаю над Linux.

Я хочу понять, как можно использовать разные языки программирования. вместе взятых, я нашел хорошую статью по объединению C / C ++ / Fortran: http://www-h.eng.cam.ac.uk/help/tpl/languages/mixinglanguages.html .

Насколько я понимаю, большинство компиляторов выполняют два этапа:

  1. Перевод языковые файлы в объектные файлы, которые содержат машинный код, но все же содержат некоторые символы (возможно, имена функций?)

  2. Связывая объектные файлы вместе, только на этом этапе компоновщик проверяет, что функции в объектных файлах вызываются.

Я думаю, что проблема с объединением разных языков заключается в искажении имен, что означает что имена функций изменяются, когда они превращаются в объектный код.

Вопросы следующие:

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

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

p.s Основная цель - вызывать функции, написанные на другом языке.

7
задан user 16 December 2014 в 10:23
поделиться