Какие есть способы запуска из программы на C программ на других языках в Linux?

Какие есть способы запуска из программы на C программ на других языках в Linux? Программой считается любая линейная программа, закодированная на любых языках программирования. Размещена она может быть где угодно.


Ответы (1 шт):

Автор решения: Герман Борисов

Код на других языках можно запускать разными способами.

  1. Вставка в непосредственно кода на другом языке, поддерживаемом тем же компилятором. Как правило, прокатывает только с Asm.
  2. Статическая линковка с объектными файлами или либами, созданными совместимым компилятором. Большинство компилируемых языков могут использовать линковку с либами на Asm, C и C++. Вроде бы ещё все языки, поддерживаемые компилятором LLVM можно линковать между собой, но не уверен.
  3. Динамическая линковка с разделяемыми библиотеками (dll в windows и so в linux). Можно линковаться со всеми языками, которые поддерживают создание таких библиотек. А это почти все компилируемые.
  4. Встраивание в свой язык интерпретатора другого языка. Сам интерпретатор может быть написан на том же языке, или подключен одним из вышеописанных способов. Так делается с упомянутым Lua.
  5. Запуск отдельной программы на другом языке и кросспроцессное взаимодействие с ней любым способом. AlexGlebe упомянул о простейшем из них, когда взаимодействие состоит просто в факте запуск.
→ Ссылка