Вопрос взаимодействия программ это вопрос понимания устройства компьютера и операционной системы. Операционная система на то и есть чтобы объединять функционал программ сделанных на разных языках. Для UNIX среди всех языков разобраться в этом лучше всего поможет изучение C.
py.user.next
Страуструп - это C++, а C - это Ритчи (язык C), Томпсон (язык B)
Да я тут сэкономил на вводе текста. Ваш вопрос об архитектуре программ в большей степени рассматривается в надстройке над С языке C++. Если начнете изучать C++ то без Ритчи не обойдетесь :)
kukuruku11
Для остальных случаев я и хотел узнать как.
В общем случае никак. Точнее для каждого языка по своему. И чтобы достаточно глубоко залезть в чужие программы надо знать оба связываемых языка. т.е. Если вы найдете полезный код на C. то вы не сможете использовать результаты, потому что они будут выражены в терминах языка C, не зная этого языка в не поймете что они означают на языке python. И так с любым другим языком. Исключение это когда результат файлы простой структуры.
Вопросы у вас интересные и правильные, но нужно побольше конкретики. Выберите задачку попроще и попробуйте ее решить.
По поводу использования результатов я бы выделил следующие большие группы:
- Обмен файлами и потоками байтов (уровень ОС)
- С образные интерфейсы (структуры и функции динамические библиотеки).
- WWW образные
- ODBC образные
- Java образные
- .Net образные