第一版是为 Lua 5.0 编写的。虽然在很大程度上仍然适用于更高版本,但有一些差异。
第四版针对 Lua 5.3,可在 亚马逊 和其他书店购买。
购买本书,您还可以帮助 支持 Lua 项目。
用 Lua 编程 | ||
序言 |
目前,许多编程语言都关注如何帮助您编写包含数十万行的程序。为此,它们为您提供包、命名空间、复杂类型系统、无数结构和数千页文档供您学习。
Lua 并不试图帮助您编写包含数十万行的程序。相反,Lua 试图帮助您仅用数百行甚至更少的行解决您的问题。为了实现这一目标,Lua 依赖于可扩展性,就像许多其他语言一样。然而,与大多数其他语言不同,Lua 不仅可以轻松地使用 Lua 本身编写的软件进行扩展,还可以使用其他语言(如 C 和 C++)编写的软件进行扩展。
Lua 从一开始就设计为与用 C 和其他传统语言编写的软件集成。这种语言的二元性带来了许多好处。Lua 是一种微小而简单的语言,部分原因是它不尝试做 C 已经擅长的工作,例如纯粹的性能、低级操作或与第三方软件的接口。Lua 依赖 C 来完成这些任务。Lua 提供的是 C 不擅长的东西:与硬件有良好的距离、动态结构、无冗余、易于测试和调试。为此,Lua 具有安全的环境、自动内存管理以及处理字符串和其他类型动态大小数据的强大功能。
Lua 不仅是一种可扩展语言,还是一种胶水语言。Lua 支持面向组件的软件开发方法,我们通过将现有的高级组件粘合在一起来创建应用程序。通常,这些组件是用编译的、静态类型化的语言(如 C 或 C++)编写的;Lua 是我们用来组合和连接这些组件的胶水。通常,组件(或对象)表示更具体、更低级的概念(如小部件和数据结构),在程序开发过程中不会发生太多变化,并且占据最终程序的大部分 CPU 时间。Lua 提供了应用程序的最终形状,在产品的生命周期中可能会发生很大变化。然而,与其他胶水技术不同,Lua 也是一门成熟的语言。因此,我们不仅可以使用 Lua 来粘合组件,还可以使用它来调整和重塑它们,甚至创建全新的组件。
当然,Lua 并不是唯一存在的脚本语言。还有其他语言可以用于大致相同目的,例如 Perl、Tcl、Ruby、Forth 和 Python。以下特性将 Lua 与这些语言区分开来;虽然其他语言与 Lua 共享其中一些特性,但没有其他语言提供类似的特性
Lua 的强大功能很大程度上来自于其库。这不是偶然的。Lua 的主要优势之一是它可以通过新类型和函数进行扩展。许多功能促成了这种优势。动态类型允许高度多态性。自动内存管理简化了接口,因为无需决定谁负责分配和释放内存,或如何处理溢出。高阶函数和匿名函数允许高度参数化,使函数更通用。
Lua 附带一组标准库。在严格受限的环境中(例如嵌入式处理器)安装 Lua 时,明智的做法是仔细选择您需要的库。此外,如果限制很严格,可以轻松进入库的源代码并逐一选择应保留哪些函数。但是,请记住,Lua 非常小(即使包含所有标准库),并且在大多数系统中,您都可以毫无顾虑地使用整个包。
版权所有 © 2003–2004 Roberto Ierusalimschy。保留所有权利。 |