Lua 是怎样一门语言?

 我来答
奥村燐858865
2013-11-03 · TA获得超过126个赞
知道答主
回答量:125
采纳率:66%
帮助的人:67.9万
展开全部
目前我见到的对 Lua 的最简洁准确的描述来自一段转述 [1] [2]:
Lua is an elegant, easy-to-learn language with a mostly procedural syntax, featuring automatic memory management, full lexical scoping, closures, iterators, coroutines, proper tail calls, and extremely practical data-handling using associative arrays.但这段描述「忽略」了 Lua 最重要的两个因素:Extensible 和 Embed-able。不过这里的忽略是加引号的。因为:第一、这两个因素如此明显,以至于 Hirschi 为了简洁的介绍语言本身的特性而认为根本不必提。第二、如果你是给像 Adobe Lightroom 那样选择架构,那么 Lua 的这两个特性当然是要铭记于心。如果你是给 WOW 或者 Nginx+Lua 做开发,那么 Lua 语言本身的特性更适合上面这句描述。
所以,暂且不谈 Lua 著名的 Extensibility/Embed-ability,只说语言本身。我认为 Lua 达到了高级动态语言的最佳平衡。
在另一篇答案中 [3] 我回答了高级动态语言的度量。目前来看,Lisp 可以被认为是高级动态语言功能的「全集」,其它语言都或多或少有所裁减。Lua 只裁减了两个功能:宏和 Full-continuation。另一方面,Lua 提供了非常强也非常快的 load,也不能说没有 code-as-data。Lua 没有 full-continuation,不过实现了 coroutine 可以认为是 one-shot semi-continuation。注意不是所有的号称 coroutine 的机制都能叫做 one-shot semi-continuation。Lua 实现的是 full asymmetric coroutine。其能力参见 [6]。最近分析了 Lua 的 coroutine 实现 [4] [5],我认为对 extensible/embedded 语言的 continuation 的把握,即使是提供号称 full-continuation 的各种 Lisp 实现也未必能及。
秒懂百科
2021-04-03 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.2亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式