您的位置:首页 > 编程语言 > Lua

Lua语言介绍

2015-08-18 15:20 423 查看
lua简介

官方网址: http://www.lua.org/
Lua 是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。

其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。

Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。

Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。 一个完整的Lua解释器不过200k,在目前所有脚本引擎中,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常见宿主语言有:C/C++, Java, .NET, 甚至其它脚本语言如PHP, Ruby等。

Lua工作流程:

   Step 1 : 宿主语言建立Lua解释器对象。

   Step 2 : 将宿主语言实现的Lua扩展(若有),如函数等,注册到Lua解释器中,供其使用。

   Step 3 : 读入Lua source code或者预先编译后的Lua程序(可以从文件、字符串、网络等任意来源)。

   Step 4 : 执行读入的Lua程序

安装运行

lua下载页面: http://www.lua.org/download.html
1:自己编译

window环境

百度搜索 win7下和vs2010编译

Linux 环境

(1)wget http://www.lua.org/ftp/lua-5.3.0.tar.gz
(2)tar zxf lua-5.3.0.tar.gz

(3)cd lua-5.3.0

(4)make

(5)make install

2:已编译直接运行

可以下载可执行的二进制文件
http://lua-users.org/wiki/LuaBinaries
Windows下还可以百度搜索下载 lua for windows

3:在线运行测试

lua官方的测试环境: http://www.lua.org/cgi-bin/demo
4:第三方包管理

luarocks: https://luarocks.org/
版本下载:http://keplerproject.github.io/luarocks/releases/

lua编辑工具

1:LuaStudio

2:luaEditor

3:其他文本编辑器也可以,只要保存为.lua文件就可

lua相关教程
http://www.lua.org/manual lua在线手册
http://book.luaer.cn/ 中文在线手册
http://www.yiibai.com/lua/ http://developer.51cto.com/art/201312/422959.htm http://tech.it168.com/zt/lua/
使用项目

魔兽世界

nginx_lua (淘宝的Tengine) 给nginx添加了一下高级功能和特性

其他的一些游戏项目

lua相关网站
http://luaforge.net 有大量的 Lua 相关的项目可以参考。
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=lua&lang2=lua 许多高性能的 lua 代码
http://luajit.luaforge.net a Just-In-Time Compiler for Lua.
http://www.keplerproject.org 用 lua 实现的一个 web 解决方案
http://www.luaer.cn/ 国内的lua开发者社区
http://bbs.luaer.cn/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息