结合两种不同的语言(不是你想的那样)



是否可以在一个项目中组合两种不同的编程语言?

让我举一个例子来说明我的意思:

我的主要编程语言是Python。(Python 3)

比方说我想写一个计算器,我想用C构建GUI,而不是用python构建计算器本身。用C编写的GUI需要将用户输入的数据发送到Python代码中进行计算。

有可能吗?

特别是对于这两种语言,本指南应该包含您需要了解的几乎所有内容:

https://docs.python.org/3.4/extending/index.html

根据经验,任何好的解释和/或基于VM的语言都可以:

  • 使用与解释器相同的语言编写扩展模块
  • 允许您将解释器嵌入其他程序中,同样使用解释器/运行时所用的语言编写
  • 通常(但并非总是)允许轻松地"包装"现有的本地共享库

这适用于Java、Python、CLR语言和Javascript,以及一些通常使用的不太为人所知的语言,因为它们很容易扩展或嵌入(例如Lua和TCL)。

混合&基于解释和/或编译的虚拟机语言的匹配通常是可以实现的,因为除了通常的"标准"C impl语言之外,这一类别中几乎每一种主要语言都在其他语言中重新实现。

例如,Python有PyPy、Jython和IronPython。

如果所有其他操作都失败了,请运行两个单独的进程,每种语言一个,并使用类似套接字的IPC机制在两者之间进行通信。

是。您必须将Python代码转换为c代码可以调用的DLL,这听起来很困难,但也是可能的。

最新更新