我正在开发一个在 DSP 上运行 Linux 的嵌入式系统。现在我们想让它的某些部分可以编写脚本,并且我们正在寻找一种很好的嵌入式脚本语言。这些脚本应该与我们现有的 C++ 代码库很好地集成,并且小而快。
我知道 Lua 是解决此类问题的行业选择。我们可能会选择 Lua,因为它经过验证并且被证明是稳定的等等。然而,作为一种编程语言,它有一些相当古怪的地方。
那么,嵌入式语言有哪些替代方案呢?
EDIT:
这是大约一年后的事了。
我们实际上在嵌入式系统上使用了 Lua,并且它的性能非常好。随着时间的推移,我们为项目的越来越多部分添加了越来越多的脚本支持,这确实有助于项目的顺利进行。
性能确实非常出色。即使涉及搜索长数组或花哨的字符串操作的相当复杂的操作也表现得令人惊讶。我们基本上从来没有遇到过 Lua 相关的性能问题。
与 C 函数的接口非常简单并且工作得非常好。这使我们能够轻松地扩展脚本系统。
最后,我们对 Lua 的灵活性感到惊讶。我们的 Lua 解释器必须在具有非标准内存分配器且不支持双精度数据类型的系统上运行。为了让 Lua 在该系统上工作,我们必须修改一个头文件中两个有详细记录的地方。它真的非常适合嵌入!
既然你说“嵌入式系统”、“小而快”和“集成得很好”,我想说你是对的,Lua 即使不是唯一的选择,也是第一选择。但我不再同意编程语言有“古怪的角落”。首先,《Programming in Lua》这本书非常精彩,是我读过的最好的书之一。其次,一些“古怪的角落”来自于语言非常正交和干净的事实,从长远来看,这是一种优点,而不是缺点。我发现 JavaScript 的例子要糟糕得多。如果您阅读“Javascript the good parts”,作者会详细解释为什么该语言中的某些构造是设计错误以及为什么应该避免使用 new 运算符。 Lua 中则不然,不好的部分已被删除,例如,在 5.x 版本中,古怪的 upvalue 内容被标准语法作用域所取代。
我的观点其实Lua是一门距离很远的语言less比大多数其他语言更古怪的角落!我们在商业项目中使用它,我们对此非常满意。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)