代码之家  ›  专栏  ›  技术社区  ›  Wade Tandy

嵌入式脚本/文本处理引擎的Python与Lua之比较

  •  15
  • Wade Tandy  · 技术社区  · 15 年前

    对于我目前正在研究的项目,我希望将一个脚本引擎嵌入到C++代码中,以允许一些扩展性。应用程序将需要大量的文本处理和在这些脚本中使用正则表达式。

    我知道Lua通常是嵌入式脚本的业界宠儿,但我也知道它不支持正则表达式(至少是现成的)。这使得我倾向于使用python来嵌入我的语言,因为它似乎拥有Lua背后最好的支持,并且仍然提供强大的regex功能。

    这是正确的选择吗?我应该看另一种语言吗?有什么理由让我再看看卢亚吗?

    4 回复  |  直到 15 年前
        1
  •  19
  •   Javier    15 年前

    1. 用Python。它包含的regexp与Perl和sed/grep非常相似
    2. PCRE library

    另一方面,如果您需要任何良好的模式匹配,您可以继续使用Lua,并且:

    1. 使用 LPEG 比regexp更强大,通常也更快。

    我用它来快速破解JSON解析器、C调用树、xPath库等。

        2
  •  7
  •   Roger Pate Roger Pate    15 年前

    Python和C++的集成有很大帮助 boost.python

    即使脚本作者不熟悉你的特定源,如果他们更熟悉C类语法(C,C++等),他们应该发现Python更容易使用,也许只是稍微,Lua并不难。好的程序员可以使用多种语言,但是你还没有提供任何关于你的听众的信息。

    Lua比Python更容易进行沙盒处理,因此如果您必须限制脚本可以做什么(例如生成额外的进程、读取文件),那么可能会排除Python。

        3
  •  5
  •   polemon    15 年前

    在我自己的一个C项目中加入了Lua之后,我建议使用Lua,因为这样更容易。

    但这取决于脚本语言需要具备的能力。Lua上升到了游戏事实上的脚本语言。如果您需要高级脚本功能,可以使用Python,但是如果只是为了简单的脚本支持,可以使用Lua。据我所见,Lua对于不习惯编写脚本的新手来说更容易学习。

    我认为Lua更轻,如果需要外部包,可以添加它们,但关键是,Lua的原子部分比Python小得多。

        4
  •  4
  •   pm100    14 年前

    别忘了他们的爷爷-tcl

    tcl有一个c++包装器,它使嵌入变得非常容易

    我正在当前的项目中使用它

    在以前的(c#)项目中,我使用了lua over python。在旧的c项目中,我使用了python; 我选择lua是因为它的语法对于一般的scripter(用于vbscript或javascript)来说更正常。不过,在下一个c项目中,我将改回(iron)python;lua太晦涩了

    对于c++我将从现在开始一直使用tcl

    编辑:我最喜欢的是jint(.net javascriptt解释器)v易于使用,界面不错。鉴于js是目前最酷的语言,没有人会抱怨这种语言