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