Programming in LUA 中文版
转自 csdn 的 BLOG(译者应该是 ouyangbuxiu)
序(Preface):
当前很多程序语言致力于帮你编写成千上万行的代码,所以这种类型的语言提供包、命名空
间、复杂的类型系统、无数的结构、上千页的文档需要学习。
Lua 并不帮你编写大量的代码的程序,相反,Lua 帮你用少量的代码解决问题。为实现这个
目标,像其他语言一样 Lua 依赖于其可扩展性。然而与其他语言不同的是,不仅用 Lua 编
写的软件易于扩展,其他语言比如 c/c++编写的软件也很容易扩展。
一开始,Lua 就被设计成很容易和传统的 c/c++整合的语言。这种语言的二元性带来很大的
好处。Lua 是一个小巧简单的语言,因为 Lua 不致力于做 c 语言已经做得很好的领域,比如:
性能,底层操作以及与第三方软件的接口。Lua 依赖于 c 去做完成这些任务。Lua 所提供的
机制是 c 不善于的:高级语言、动态结构、简洁、易于测试和调试。正因为如此,Lua 具有
很好的安全保证,自动内存管理,容易处理字符串以及其他大小动态改变的数据。
Lua 不仅是一种易于扩展的语言,也是一种易整合语言(glue
language);Lua 支持基于组件的软件开发方法,我们可以将一些已经存在的高级组件整合在一
起实现一个应用。一般情况下,组件使用像 c/c++的静态的语言编写。Lua 是我们整合各个
组件的粘合剂。通常情况下,组件(或对象)表现为具体的在程序开发过程中很少变化的、占
用大量 CPU 时间的决定性的程序,比如窗口部件和数据结构。对那种在产品的生命周期内
变化很多的应用使用 Lua 可以方便的适用变化。除了作为整合语言外,Lua 自身也是一个功
能强大的语言。Lua 不仅可以整合组件,还可以编辑组件甚至完全使用 Lua 创建组件。
除了 Lua 外,还有很多类似的脚本语言,比如: Perl, Tcl, Ruby, Forth, Python;下面这些特征
是 Lua 特有的:
可扩展性:Lua 的扩展性非常卓越,以至于很多人把 Lua 当作一个搭建领域语言的工具(注:
比如游戏脚本)。Lua 被设计为易于扩展的,可以通过 Lua 代码或者 c 代码扩展,Lua 的很多
功能都是通过外部库来扩展的。Lua 很容易与 c/c++,java,fortran,Smalltalk,Ada,以及其他脚
本语言接口。
简单:简单,小巧;内容少但功能强大,这使得 Lua 易于学习,很容易实现一些小的应用。
他的完全发布版(代码、手册以及某些平台的二进制文件)一张软盘就可以装得下。
高效率:Lua 有很高的执行效率,统计表明 Lua 是目前平均效率最高的脚本语言。
平台无关:Lua 几乎可以运行在所有我们听过的系统上,NextStep, OS/2, PlayStation II (Sony),
Mac OS-9
and OS X, BeOS, MS-DOS, IBM mainframes, EPOC, PalmOS, MCF5206eLITE
Evaluation Board, RISC OS,所有的 windows 和 Unix;Lua 不是使用条件编译实现平台无关,
而是完全使用 ANSI
(ISO) C,这意味着只要你 ANSI C 编译器你就可以编译并使用 Lua。
Lua 大部分强大的功能来自于他的类库,这并非偶然。Lua 的长处之一是可以通过新类型和
函数扩展。动态类型检查最大限度允许多态,自动内存管理简化调用接口,因为这样不需要
关心谁来分配内存谁来释放内存,也不需要担心溢出。高级函数和匿名函数可以接受高级参
数,使函数更通用。
Lua 安装可以指定标准库的一个子集。当在一个限制严格的环境下安装 Lua 时,认真选择你