加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

嵌入式语言:Lua vs Common Lisp(ECL)

发布时间:2020-12-15 00:21:34 所属栏目:大数据 来源:网络整理
导读:这里有人有使用Common Lisp作为嵌入式语言(使用ECL)的经验吗?如果是这样,ECL与Lua相比有多好? 解决方法 我以前没有嵌入CL,但是我已经用Lua和两个特定的Scheme实现(Gambit-C和GNU Guile)完成了。 计划在我看来是一个很好的嵌入式语言,因为它是灵活的而不
这里有人有使用Common Lisp作为嵌入式语言(使用ECL)的经验吗?如果是这样,ECL与Lua相比有多好?

解决方法

我以前没有嵌入CL,但是我已经用Lua和两个特定的Scheme实现(Gambit-C和GNU Guile)完成了。

计划在我看来是一个很好的嵌入式语言,因为它是灵活的而不是太blo肿。 Gambit-C对于这一点特别好,因为它允许您同时运行解释的脚本,也可以将代码编译为C.在我的测试中,Gambit-C生成的C代码只比手写C慢一些(例如,在C中运行0.030s的特定测试在Gambit中为0.040)。 Gambit还有一个非常好的FFI(外部函数接口),它本质上只是用于将绑定写入C库的特殊语法的Scheme(也直接支持ObjC和C)。 Gambit也有一个非常好的回复与一些调试功能。

Guile也相当不错,实际上比Lua(速度最快的解释语言,我现在知道的 – Guile近年来取得了很大的进步)。但是由于Gambit-C可以编译成真正快速的代码,所以我通常不会使用Guile,除非我打算在最终版本中使用解释代码。

Lua已经关闭了,但是你不会像Scheme那样得到延续,你也不会得到宏。尽管如此,仍然可以做一些合理的功能。它不会有一个完全功能的对象系统(如CL中的CLOS),但它确实有表,它们可以很容易地用于实现基于类的继承和基于原型的继承。此外,Lua还有一个优秀的C API,真的很高兴与您合作。它是基于堆栈的,并且设计的方式,你不必担心内存管理的Lua方面。 API非常清晰,组织良好,并且有很多很好的文档和示例代码。 Lua不能编译,但它确实使用字节码(总是 – 当您向Lua VM发送代码时,它始终先将该代码编译成字节码,然后运行)。

现在,对于Common Lisp来说,我觉得这可能不是一个很好的嵌入语言。这样做的原因只是CL很大。一般来说,嵌入一个轻量级的语言是理想的,因为它将使用您提供给它的平台/ libs,而不是外部的东西。

所以,我认为你不能错过Gambit-C,Guile或Lua。他们都会很好CL是强大的,但我只是认为它对于嵌入来说太大了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读