游戏开发工具

Lua 语言简介

12 篇文章53 次收藏
上一节:下一节:Lua 的使用场景

目前很多程序语言都专注于帮你编写成千上万行的代码,所以此类型的语言所提供的包、命名空间、复杂的类型系统及无数的结构,有上千页的文档需要操作者学习。


而Lua并不帮你编写大量的代码的程序,相反的,Lua仅让你用少量的代码解决关键问题。为实现这个目标,像其他语言一样,Lua依赖于其可扩展性。但是与其他语言不同的是,不仅用 Lua 编写的软件易于扩展,而且用其他语言比如 C/C++编写的软件也很容易使用 Lua 扩展其功能。


一开始,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 特有的:

1、可扩展性,Lua 的扩展性非常卓越,以至于很多人把 Lua 用作搭建领域语言的工具(注:比如游戏脚本)。Lua 被设计为易于扩展的,可以通过 Lua 代码或者 C 代码扩展,Lua 的很多功能都是通过外部库来扩展的。Lua 很容易与 C/C++、java、fortran、Smalltalk、Ada, 以及其他语言接口。

2、简单,Lua本身简单,小巧;内容少但功能强大,这使得 Lua 易于学习,很容易实现一些小

的应用。他的完全发布版(代码、手册以及某些平台的二进制文件)仅用一张软盘就可以装得下。

3、高效率,Lua有很高的执行效率,统计表明 Lua 是目前平均效率最高的脚本语言。

4、与平台无关,Lua 几乎可以运行在所有我们听说过的系统上,如 NextStep、OS/2、PlayStation II (Sony)、Mac OS-9、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,如嵌入式系统,我们可以有选择地安装这些类库。若运行环境十分严格,我们甚至可以直接修改类库源代码,仅保留需要的函数。


记住:Lua 是很小的(即使加上全部的标准库)并且在大部分系统下你仍可以不用担心的使用全部的功能。


上一节:下一节:Lua 的使用场景