Lua语言介绍

来源:互联网 发布:js获取时间控件的值 编辑:程序博客网 时间:2024/05/18 21:47
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/
0 0
原创粉丝点击