Несмотря на то, что в этой главе мы сосредоточились на языках C и C++, тем не менее, в мире открытых исходных текстов можно найти прямую поддержку возможности смешивания Python с другими языками программирования. Сюда входят языки программирования, компилируемые в двоичное представление, такие как C, а также другие, некомпилируемые языки.
Например, предоставляя полноценные компиляторы в байт-код, системы Jython и IronPython позволяют писать программы Python, практически прозрачно взаимодействующие с компонентами на языках Java и C#/.NET. Альтернативные проекты, JPype и Python для .NET, также поддерживают интеграцию Java и C#/.NET с обычным программным кодом на CPython (стандартная реализация Python на языке C) без привлечения альтернативных компиляторов в байт-код. Кроме того, системы f2py и PyFort предоставляют интеграцию с программным кодом на языке FORTRAN. Имеются также другие инструменты, обеспечивающие интеграцию с такими языками, как Delphi и Objective-C. В их число входит проект PyObjC, цель которого — обеспечить интеграцию Python и Objective-C. Он поддерживает возможность разработки на языке Python приложений на основе технологии Cocoa GUI в Mac OS X.
Информацию об инструментах интеграции с другими языками программирования ищите в Сети. Посмотрите также страницу wiki на сайте http://www.python.org, где перечислено большое количество других языков программирования, для которых имеется поддержка интеграции, включая Prolog, Lisp, TCL и другие.
Поскольку многие из этих систем поддерживают двунаправленную передачу управления, необходимую для реализации обеих моделей, расширения и встраивания, мы еще вернемся к ним в конце этой главы, когда будем обсуждать вопросы интеграции в целом. Однако прежде нам необходимо развернуться на 180 градусов и исследовать другую сторону интеграции Python/C: встраи ва ние.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, II том, 2011