我正在开发一个在DSP上运行Linux的嵌入式系统。现在我们想让它的一些部分可脚本化,我们正在寻找一个很好的嵌入脚本语言。这些脚本应该很好地与我们现有的C代码库集成,小而快。
我知道Lua是这样的问题的行业选择。我们可能会和Lua一起去,因为它是试验和真实的,被证明是稳定的,等等。然而,作为一种编程语言,它有一些相当古怪的角落。
那么,嵌入式语言有什么替代方法?
编辑:
这是大约一年后。
我们实际上在我们的嵌入式系统上使用Lua,它执行得非常好。随着时间的推移,我们为项目的越来越多的部分添加了越来越多的脚本支持,这真的有助于它。
性能优秀,真的。甚至涉及通过长数组或花式字符串操作进行搜索的相当复杂的操作也表现得非常好。我们基本上从来没有遇到过Lua相关的性能问题。
与C函数的接口非常简单,工作非常好。这允许我们无痛地增长脚本系统。
最后,我们惊讶于Lua如何灵活地证明了。我们的Lua解释器必须在具有非标准内存分配器的系统上运行,并且不支持双数据类型。在一个头文件中有两个很好地记录的地方,我们必须修改它们以使Lua在该系统上工作。它真的很适合嵌入!
解决方法
因为你说“嵌入式系统”和“小而快”和“整合很好”我会说你是正确的,Lua是第一,如果不是唯一的选择。但我不再同意,编程语言有“古怪的角落”。首先,这本书在Lua的编程简直是精彩,我读过的最好的书之一。其次,一些“古怪的角落”来自语言是非常正交和干净的事实,这从长远来看是一个资产,而不是一个缺点。我发现例如JavaScript更糟糕。如果你阅读“Javascript的好零件”,作者解释了为什么在语言中的一些结构是设计错误,为什么应该避免新的运算符。不是在Lua,坏的部分已被删除,例如quirky upvalue东西被替换为5.x版本中的标准句法范围。
我的观点其实是,Lua是一种语言,远比其他语言更古怪的角落!我们在一个商业项目中使用它,我们非常高兴。