Lua
是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放。官网
设计目的
Lua
的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
特性
轻量级
它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
可扩展
Lua
提供了非常易于使用的扩展接口机制:由宿主语言(通常是 C
或 C++
)提供这些功能, Lua
可以使用它们,就像是本来就内置的功能一样。
可移植
Lua
语言可以运行在我们所听说过的几乎所有的平台上,包括所有的 类UNIX
操作系统( Linux
、 FreeBSD
等)、 Windows
、 Android
、 IOS
、 OS X
、 IBM
大型机、游戏终端( PlayStation
、 Xbox
、 Wii
等)、微处理器(如 Arduino
)等。针对所有这些平台的源码本质上是一样的, Lua
语言遵循 ANSI(ISO)C
标准,并未使用条件编译来对不同平台进行代码的适配。因此,当需要适配新平台时,只要使用相应平台下的 ISO C
编译器重新编译 Lua
语言的源码就可以了。
其它特性
- 支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
- 自动内存管理;只提供了一种通用类型的表(
table
),用它可以实现数组,哈希表,集合,对象; - 语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
- 通过闭包和
table
可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。
应用场景
- 游戏开发
- 独立应用脚本
Web
应用脚本- 扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
- 安全系统,如入侵检测系统