Компиляция нескольких языков вместе и вызов функции с одного языка на другой

Как мне скомпилировать несколько языков программирования и связать их вместе? Поскольку каждый язык программирования лучше всего подходит для некоторых конкретных случаев, мне нужно использовать лучшее из каждого языка, как мне это сделать? Можно ли комбинировать java с c ++ или c и Python с C или C ++? Можно ли вызвать функцию java или python из c или c ++ и наоборот?


person Praburaj    schedule 21.08.2013    source источник
comment
Это называется интерфейсом внешних функций. То, как это реализовано, зависит от используемых языков.   -  person Robert Harvey    schedule 21.08.2013


Ответы (2)


  • Для вызова C из C ++ ничего особенного не нужно, так как C ++ был разработан таким образом
  • Вы можете вызвать C из Python, используя собственные расширения, для этого вам следует использовать ctypes или swig подробнее здесь. И здесь это пример вызова Windows API из Python.
  • Существует собственный интерфейс Java для вызова собственного Библиотеки C от Java и наоборот. Подробнее см. здесь
  • Также можно вызвать C ++ из C. Если я правильно помню, вам нужно использовать объявление extern C в своем коде C ++, прочтите здесь
  • Можно вызвать C из JavaScript (например, собственные модули узлов)

Фактически, почти любой язык имеет возможность вызывать библиотеки C из-за большого количества библиотек C и из-за того, что их легко переносить из системы в систему. Фактически, многие сложные системы используют язык сценариев для так называемого связующего кода, который использует библиотеки C. В любом случае, это обширная тема, вы должны больше рассказать о своей проблеме, чтобы мы могли вам помочь. Если вы хотите протестировать концепцию, я думаю, что путь Python самый простой.

person Darius Kucinskas    schedule 21.08.2013

Взгляните на libffi - хотя я считаю, что это в основном нацелено на случай "скомпилированный интерпретируемый вызов". .

person rjp    schedule 23.08.2013