| 网站首页 | 业界动态 | 游戏教程 | 佳宾留言 | 游戏屋商城 | 供求信息 | 人力资源 | 
您现在的位置: 游戏屋 >> 游戏教程 >> 程序教程 >> 脚本语言 >> 教程正文 用户登录 新用户注册
Programming in Lua翻译--Preface            【字体:
Programming in Lua翻译--Preface
作者:佚名    教程来源:网络搜集    点击数:    更新时间:2006-5-20    

Getting started | Preface | Types and Values | Expressions | Statements | Functions


序(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时,认真选择你需要的类库是明智的。如果环境限制非常严格,可以很容易的到类库源代码目录下,修改源代码,保留你需要的函数即可。记住:Lua是很小的(即使加上全部的标准库)并且在大部分系统下你可以不用担心的使用全部的功能。
Lua的使用者:
 Lua使用者分为三大类:使用Lua嵌入到其他应用中的、独立使用Lua的、Lua和C混合使用的。
 第一:很多人使用Lua嵌入在应用中,比如CGILua (搭建动态网页) 、 LuaOrb (访问 CORBA 对象). 这些类型的应用使用Lua-API注册新函数,创建新类型,通过配置Lua就可以改变应用宿主语言的行为。通常,这种应用的使用者并不知道Lua是一种独立的语言。例如:CGILua用户一般会认为Lua是一中用于Web的语言。
 第二:作为一种独立运行的语言,Lua也是很有用的,主要用于文本处理或者只运行一次的小程序。这种应用Lua主要使用它的标准库实现,标准库提供模式匹配和其他一些字串处理的功能。我们可以这样认为:Lua是对文本处理领域的嵌入式语言。
 第三:还有一些使用者使用其他语言开发,把Lua当作库使用。这些人大多使用c语言开发,但使用Lua建立简单灵活的易于使用的接口。
 本书面向以上三类读者。书的第一部分阐述了语言的本身,展示语言的潜在功能。我们讲述了不同的语言结构,并用一些例子展示如何解决实际问题。这部分既包括基本的语言的控制结构,也包括高级的迭代子和协同。
 第二部分重点放在Lua特有的数据结构-tables,讨论了数据结构、持久性、包、面向对象编程,这里我们将看到Lua的真正强大之处。
 第三部分介绍标准库。每个标准库一章:数学库,table库,string库,I/O库,OS库,Debug库。
 最后一部分介绍了Lua和c接口的API,这部分介绍在c语言中开发应用而不是Lua中,对于那些打算将Lua嵌入到c/c++中的读者可能会对此部分更感兴趣。
其他资源:
 参考手册是必备的,如果你真得想学一门语言,本书和Lua手册互为补充,手册描述语言本身,他不会告诉你语言的数据结构也不会举例说明,但手册是Lua的权威文档,http://www.lua.org可以得到手册的内容。
 http://lua-users.org ---Lua用户社区,提供了一些第三方包和文档。
 http://www.inf.puc-rio.br/~roberto/book/ --本书的更新勘误表,代码和例子。
 另外本书针对Lua 5.0,如果你的版本不同,请查阅Lua手册或者版本间的差异。
约定:
 1.字符串使用双引号,比如"literal strings";单字符使用单引号,比如a;模式串也是用单引号,比如[%w_]*。
 2.符号 --> 表示语句的输出或者表达式的结果:
    print(10)     --> 10
    13 + 3        --> 16
 3.符号<-->表示等价,即对于Lua来说,this 写和that 写没有区别。
 this     <-->     that

关于本书:
 开始打算写这本书是1998年冬天(南半球),那时候Lua版本是3.1;2000年v4.0;2003年v5.0;Lua的变化给本书带来很大的冲击,很多章节被改写或重写,另外一些章节倍增加进来。
 本书的完成必须服从语言的变化,本书在这个时候完成的原因:1.Lua 5.0是一个成熟的版本。2.语言变得越来越大,超出了最初本书的目标。另外一个原因是我想将Lua介绍给大家让更多的人了解Lua。
感谢:
 在完成本书的过程中,很多人给了我极大的帮助,人名列表:xxxxxx
 谢谢他们所有人。 


教程录入:网友提供    责任编辑:游戏屋 
  • 上一篇教程:

  • 下一篇教程:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关教程
  • 使用Proguard混淆J2ME应用程
  • Programming in Lua翻译--Ge
  • Programming in Lua翻译--Ty
  • Programming in Lua翻译--Ex
  • Programming in Lua翻译--St
  • Programming in Lua翻译--Fu
  • Programming in Lua翻译--Mo
  • Programming in Lua翻译--7.
  • Programming in Lua翻译--8.
  • Programming in Lua翻译--9.
  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)