lua5.1参考手册是攻城狮们在使用lua5.1开发的时候需要查询语法函数接口等的一个chm文档,Lua 是一个扩展式程序设计语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。
它被设计成支持通用的过程式编程,并有相关数据描述的设施。 Lua 也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。 Lua 以一个用 clean C 写成的库形式提供。(所谓 Clean C ,指的 ANSI C 和 C++ 中共通的一个子集)
作为一个扩展式语言,Lua 没有 "main" 程序的概念:它只能 嵌入 一个宿主程序中工作,这个宿主程序被称作 embedding program 或简称为 host 。宿主程序可以通过调用函数执行一小段 Lua 代码,可以读写 Lua 变量,可以注入 C 函数让 Lua 代码调用。这些扩展的 C 函数,可以大大的扩展了 Lua 可以处理事务的领域,这样就可以订制出各种语言,而它们共享一个统一的句法格式的框架。 Lua 的官方发布版就包含了一个叫做 lua 的简单的宿主程序,它用 Lua 库提供了一个保证独立的 Lua 解释器。
跟其它的许多参考手册一样,这份文档有些地方比较枯燥。关于 Lua 的设计想法的探讨,可以看看 Lua 网站上提供的技术论文。有关用 Lua编程的细节介绍,可以读一下 Roberto 的书,Programming in Lua (Second Edition) 。
这一节从词法、语法、句法上描述 Lua 。换句话说,这一节描述了哪些 token (符记)是有效的,它们如何被组合起来,这些组合方式有什么含义。
关于语言的构成概念将用常见的扩展 BNF 表达式写出。也就是这个样子: {a} 意思是 0 或多个 a , [a] 意思是一个可选的 a 。非最终的符号会保留原来的样子,关键字则看起来像这样kword,其它最终的符号则写成 `=′ 。完整的 Lua 语法可以在本手册最后找到。
2.1 - 语法约定
2.2 - 值与类型
2.3 - 变量
2.4 - 语句
2.5 - 表达式
2.6 - 可视规则
2.7 - 错误处理
2.8 - 元表
2.9 - 环境
2.10 - 垃圾收集
2.11 - 协同
3 - 程序接口(API)
3.1 - The Stack
3.2 - Stack Size
3.3 - Pseudo-Indices
3.4 - C Closures
3.5 - Registry
3.6 - Error Handling in
3.7 - Functions and Type
3.8 - The Debug Interfac
4 - The Auxiliary Library
5 - Standard Libraries
6 - Lua Stand-alone
7 - Incompatibilities with t
8 - The Complete Syntax of L
Lua 5.1 是个非常经典,历史非常悠久,非常稳定的版本,已经持续了很多年,5.1 与 5.2 是完全不兼容的,相关的第三方库必须重新为 5.2 适配。所以目前继续使用 5.1 可能是更好的选择。
一个重要的参考因素是:LuaJIT 是按照 5.1 的语法设计的,并且在可以预期的将来也永远不会适配 5.2,LuaJIT 作者声称会增加 5.2 所增加的那些功能,但永远不会适配 5.2 的语法,换句话说,他的发展思路是语法与兼容性不变,仅仅在 5.1 的语法基础之上增加后续 Lua 版本的新特性,LuaJIT 在 API/ABI 方面都只兼容 Lua 5.1.4。