【问题标题】:Binding C libraries on Python and Perl but reverse在 Python 和 Perl 上绑定 C 库但反向
【发布时间】:2015-02-22 06:32:16
【问题描述】:

您知道,我们可以在 Python 或 Perl 编程语言上绑定每个 C 库。一个很好的例子是PyQtPyQtQt 绑定。

我的问题是:我可以做上述相反的事情吗?我的意思是:假设我有一个 Python 或 Perl 库,我想将它转换为 C 库……可以吗? 但是,您可以考虑将 Web 程序转换为共享库或一组函数。

我的目标:我想改进一组安全功能。

【问题讨论】:

  • 我的问题是,你为什么要经历翻译程序的所有工作来修改它?为什么不直接用原始语言修改这些安全功能?
  • 我在想一个科学大师项目来消除Web服务器,当然这是一个想法......
  • 所以人们在 python/perl/php 中编写他们的代码,然后将其发送到您的“服务器”,然后您在 C 中运行它?类似的东西?

标签: python c converters


【解决方案1】:

是的,至少对于 python:Convert Python program to C/C++ code?

对于 Perl:http://perldoc.perl.org/5.8.9/perlcompile.html

[编辑] 根据评论,我将展开。首先,问题“我可以将 Python 翻译成 C 吗?”已经在SO上回答了。请参阅链接。

其次,Perl 实际上是一种解释性语言(就像 Python 一样),并且能够获取中间代码并将其翻译成完整的 C 语言,以用于本机可执行文件。这是使用“B”模块和其他配套模块完成的,例如 B::C。还有一个独立的程序“perlcc”可以做到这一点。 [/编辑]

【讨论】:

  • 你了解 PHP 吗?
  • 没错,我只是懒惰。虽然,在 PHP 和 Python 链接的情况下,它们是针对在 stackoverflow 上提出的其他问题,通常不会重新回答,因此链接。
【解决方案2】:

是的,你可以。艺术术语是“嵌入”,如“嵌入式 Python”或“嵌入 Python 解释器”。 Python 在这里有一个关于它的文档:https://docs.python.org/2/extending/embedding.html - 一般的想法是您必须使用(至少一小部分)Python C API 来在 C 或 C++ 应用程序中启动 Python。

一旦您意识到您可以在 C 中嵌入一种脚本语言,并且该脚本语言可以调用 C,您就会意识到您也可以将一种脚本语言嵌入到另一种中,使用 C 作为它们之间的桥梁。比如RubyLuaBridge:https://bitbucket.org/neomantra/rubyluabridge

许多商业应用程序在 C 或 C++ 宿主程序中嵌入了脚本语言解释器。一个很好的、有据可查的例子是 Adob​​e Lightroom,它大约是一半 C++ 和一半 Lua。您可以从第 xi 页开始从马口中读到这一点:http://www.lua.org/gems/front.pdf

【讨论】:

  • 我的理解是 Lua 和 Tcl/Tk 最初是为了嵌入程序中使用的。
猜你喜欢
  • 2016-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
  • 2021-03-24
  • 1970-01-01
  • 2012-09-14
相关资源
最近更新 更多