欢迎大家赞助一杯啤酒🍺 我们准备了下酒菜:Formal mathematics/Isabelle/ML, Formal verification/Coq/ACL2, C++/F#/Lisp
Lua
小 (→项目) |
|||
(未显示1个用户的24个中间版本) | |||
第1行: | 第1行: | ||
{{SeeWikipedia|Lua (programming language)}} | {{SeeWikipedia|Lua (programming language)}} | ||
− | |||
− | |||
[[Image:Lua-90x90.gif|right]] | [[Image:Lua-90x90.gif|right]] | ||
− | Lua | + | Lua |
− | + | ||
− | + | ||
+ | ==简介== | ||
Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 | Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。 | ||
第20行: | 第17行: | ||
和Python等脚本不同,Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。不过Lua还是具备了比如数学运算和字符串处理等基本的功能。 | 和Python等脚本不同,Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。不过Lua还是具备了比如数学运算和字符串处理等基本的功能。 | ||
+ | |||
+ | ==新闻== | ||
+ | <rss>http://www.lua.org/news.rss|short|date|max=10</rss> | ||
==目标== | ==目标== | ||
第36行: | 第36行: | ||
*提供多线程支持。 | *提供多线程支持。 | ||
− | ==示例代码== | + | ==指南== |
+ | OS X | ||
+ | brew install lua | ||
+ | Other | ||
+ | curl -R -O http://www.lua.org/ftp/lua-5.3.2.tar.gz | ||
+ | tar zxf lua-5.3.2.tar.gz | ||
+ | cd lua-5.3.2 | ||
+ | make macosx test or | ||
+ | make linux test | ||
+ | make install | ||
+ | lua -v | ||
+ | Lua 5.3.2 Copyright (C) 1994-2015 Lua.org, PUC-Rio | ||
+ | |||
+ | ===示例代码=== | ||
print "Hello, world!" | print "Hello, world!" | ||
一个比较复杂一点的例子,但是它展示了什么是闭包: | 一个比较复杂一点的例子,但是它展示了什么是闭包: | ||
第51行: | 第64行: | ||
来源: http://baike.baidu.com/view/416116.htm | 来源: http://baike.baidu.com/view/416116.htm | ||
− | == | + | ==项目== |
− | * | + | *[https://github.com/LewisJEllis/awesome-lua Awesome Lua] [[image:awesome.png]] |
− | * | + | *[https://github.com/neolithos/neolua NeoLua] A Lua implementation for the Dynamic Language Runtime (DLR). |
− | *http:// | + | *[https://github.com/immerrr/lua-mode lua-mode] |
+ | *[https://wiki.eclipse.org/LDT Lua Development Tools] | ||
+ | [https://wiki.eclipse.org/LDT/User_Area/updatesites Update sites]: http://download.eclipse.org/ldt/releases/stable | ||
+ | *[https://github.com/unknownworlds/decoda Decoda Lua IDE and debugger] 基于 [[wxWidgets]]、[[scintilla]] 和 [[C++]] 构建,目前只支持Windows平台。 | ||
− | + | ==文档== | |
+ | *[http://docs.huihoo.com/lua/Lua-as-a-common-language-for-the-IoT.pdf Lua as a common language for the IoT] | ||
+ | |||
+ | ==图集== | ||
+ | |||
+ | ==链接== | ||
+ | *http://www.lua.org/ | ||
+ | *[http://docs.huihoo.com/lua/manual/ Lua 参考手册] | ||
+ | *[http://lua-users.org/wiki/LuaEditorSupport Lua Editor Support] | ||
+ | *[http://download.huihoo.com/lua/ Lua下载] | ||
+ | *[http://blog.codingnow.com/2013/01/binding_c_object_for_lua.html 为 Lua 绑定 C/C++ 对象] | ||
− | [[ | + | [[category:programming language]] |
− | [[ | + | [[category:lua]] |
+ | [[category:game]] |
2022年2月26日 (六) 02:05的最后版本
您可以在Wikipedia上了解到此条目的英文信息 Lua Thanks, Wikipedia. |
Lua
目录 |
[编辑] 简介
Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
Lua最著名的应用是在暴雪公司的网络游戏WOW中。
Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。
Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。 一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。
Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能,这将给Lua带来更加优秀的性能。请访问 http://luajit.luaforge.net/ 来了解这个项目。
和Python等脚本不同,Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。不过Lua还是具备了比如数学运算和字符串处理等基本的功能。
[编辑] 新闻
自http://www.lua.org/news.rss加载RSS失败或RSS源被墙
[编辑] 目标
LUA的目标是成为一个很容易嵌入其它语言中使用的语言。大多数程序员也认为它的确做到了这一点。
很多应用程序使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门等。
[编辑] 特性
- 轻量级 LUA语言的官方版本只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从而适合嵌入在别的程序里;
- 可扩展 LUA并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是LUA可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,LUA可以使用它们,就像是本来就内置的功能一样;
- 同时支持面向过程编程和面向对象编程;
- 自动内存管理;
- 提供一系列数据结构,包括数组、链表、集合、字典、散列表等;语言内置正则表达式匹配;
- 闭包(closure);
- 函数也可以看做一个值;
- 提供多线程支持。
[编辑] 指南
OS X
brew install lua
Other
curl -R -O http://www.lua.org/ftp/lua-5.3.2.tar.gz tar zxf lua-5.3.2.tar.gz cd lua-5.3.2 make macosx test or make linux test make install lua -v Lua 5.3.2 Copyright (C) 1994-2015 Lua.org, PUC-Rio
[编辑] 示例代码
print "Hello, world!"
一个比较复杂一点的例子,但是它展示了什么是闭包:
function create_a_counter() local count = 0 return function() count = count + 1 return count end end
create_a_counter()返回一个记数器,每次调用这个记数器,都会得到一个比上次大1的值。
来源: http://baike.baidu.com/view/416116.htm
[编辑] 项目
- Awesome Lua
- NeoLua A Lua implementation for the Dynamic Language Runtime (DLR).
- lua-mode
- Lua Development Tools
Update sites: http://download.eclipse.org/ldt/releases/stable
- Decoda Lua IDE and debugger 基于 wxWidgets、scintilla 和 C++ 构建,目前只支持Windows平台。