Я не спрашиваю, КОГДА связывать разные языки программирования.
Это довольно общий вопрос, но я лично работаю над Linux.
Я хочу понять, как можно использовать разные языки программирования. вместе взятых, я нашел хорошую статью по объединению C / C ++ / Fortran: http://www-h.eng.cam.ac.uk/help/tpl/languages/mixinglanguages.html .
Насколько я понимаю, большинство компиляторов выполняют два этапа:
Перевод языковые файлы в объектные файлы, которые содержат машинный код, но все же содержат некоторые символы (возможно, имена функций?)
Связывая объектные файлы вместе, только на этом этапе компоновщик проверяет, что функции в объектных файлах вызываются.
Я думаю, что проблема с объединением разных языков заключается в искажении имен, что означает что имена функций изменяются, когда они превращаются в объектный код.
Вопросы следующие:
Вы не можете каким-то образом заранее обнаружить искаженные имена функций и чем указать их явно на языке программирования или лучше, разве нет программного обеспечения, которое уже делает это?
Я не совсем понимаю, как связаны динамические библиотеки, но могут ли разные языки взаимодействовать тем же методом, что программы взаимодействуют с динамическими библиотеками?
p.s Основная цель - вызывать функции, написанные на другом языке.