Lua主要基于完善的编程语言思想吗?

时间:2010-01-20 11:18:10

标签: lua language-design

Lua在可以嵌入的语言空间中占有一席之地。 Lua设计的新思想背后的主要思想是实现者,还是Lua主要是一个完善的创意组合?

将Lua与其他PL的特性和特征进行比较是特别合适的。

5 个答案:

答案 0 :(得分:134)

这是一个非常有趣的问题。我的日常工作是学习编程语言,Lua将回报仔细研究。我会说很少有其他语言(也许是Icon和CLU)。请注意,它是语言的整体,而不是个别功能,这使得Lua值得学习。

  

这是实施者所拥有的有趣的新想法的结果,还是良好执行良好想法的结果?

两者。有关详细信息,请回答此问题的最佳来源是论文The Evolution of Lua,该论文出现在第三届ACM编程语言历史研讨会上。但我会补充几点意见。

  • Lua团队发明了使用Lua表作为唯一可变,非原子类型的数据。他们的灵感来自CLU的发展,我相信他们知道Awk和Icon的类似工作,但是对这个学位的完善是Lua团队的重要贡献。

    表也有一个非常有效的实现,由Lua团队发明。

  • Lua的功能特性与Scheme具有相同的语义,但Lua具有一流函数的独特实现,我认为它们应该提交给功能编程杂志 EM>

  • 多年来,嵌入API得到了极大的改进。它的主要区别特征是用户定义的抽象类型可以完全参与嵌入。例如,这是使Lua API优于Tcl API的属性。多年来,Lua API经过了大量的改进,包括自2.5版首次发布以来。 Lua设计师值得信赖。

  • 垃圾收集技术是标准的。

  • Lua coroutines 代表了一些非常古老的想法。新版本被认为值得在ACM 编程语言和系统交易中发布,所以我认为Lua团队再次获得原创性的信誉。

  • Lua metatables与Common Lisp元对象协议有关。

我认为Lua的成功源于Lua团队独特的优势组合:

  • 如果您阅读HOPL paper,您会发现Lua团队非常了解编程语言的许多发展,并且能够从最佳创意中进行选择。流行脚本语言的大多数设计师都是业余爱好者,并且几乎没有那么多的信息。

  • Lua非常精心设计,因此这些部件非常贴合,具有出色的功率重量比。这是随着时间的推移进行大量改进的结果,PUC-Rio愿意让Lua团队致力于语言设计和实施,而不是研究大量的论文。这项工作不可能在北美大学完成。

  • Lua非常精心设计。实施非常好。这是优秀工程师的部分伟大工作,部分是在15年内不断修改设计的机会。

我最后要求读者不要低估选择精炼完善的想法以形成一个连贯的整体的难度。这是非常困难的工作,很少得到应有的认可。

答案 1 :(得分:7)

Lua支持函数式编程,它基于Prototype-based编程风格,灵活且功能强大。

IMO这是一种有趣的语言。

如果你想阅读关于原型继承的一些想法,我建议你 阅读Steve Yegge的The Universal Design Pattern博文。

答案 2 :(得分:4)

Lua很小,ANSI C中的总代码只有几万行。(Python的代码行数是其十倍)。

Lua非常稳定,或者说,语言现在已修复。

Lua拥有良好的工程学。它的代码易于阅读和破解。 (也因为小)

它的许可证允许你做任何你想做的事。

在Lua中编写C扩展比其他语言更容易,比如Python。

答案 3 :(得分:2)

有一个Lambda终极故事,Small is Beautiful: the design of Lua,讨论Robert Ierusalimschy最近在斯坦福大学的同名演讲。目前的讨论集中在将表作为唯一的容器数据结构的优点;到目前为止,在谈话的另一部分,处理Lua的C接口的问题很少。

答案 4 :(得分:0)

我认为这是因为Lua相对简单实用。它并不试图成为构建下一个操作系统Crysis 3或SAP克隆的语言,但它的功能,它做得很好,即用作脚本语言。