游戏以lua作为主要易语言lua编辑器,一般用什么编辑器跟调试器

您所在的位置: &
8月编程语言排行榜:以总统为名的语言新贵Lua(1)
8月编程语言排行榜:以总统为名的语言新贵Lua(1)
8月4日,Tiobe公布了最新的8月编程语言排行榜,和7月榜单相比,最大变动就数微软的F#了,F#首次进入TOP20。1至10名中,PHP重返第4,C#则到了第5,其他不变。本期51CTO编程语言排行榜便以Lua语言为主题,介绍这款以巴西总统的名字命名的移动开发语言新贵。
8月4日,Tiobe公布了最新的8月编程语言排行榜,和相比,最大变动就数微软的F#了,首次进入TOP20。1至10名中,PHP重返第4,C#则到了第5,其他不变。不过看看最近人气上升的F# ,就没有什么好奇怪的了。作为一种不错的程序设计语言,微软最新的Visual Studio 2010中也包含了F#。
下面是前20名的编程语言排行
2011年6月、7月的Tiobe编程语言排行榜都介绍了移动开发语言Lua,其中以年度语言预测为主题,直言Lua是2011年度唯一有机会挑战的语言。但是Lua到底是什么语言呢?本期51CTO编程语言排行榜便以为主题,介绍这款以巴西总统的名字命名的移动开发语言新贵。51CTO推荐专题:
(图)Lua语言
Lua是一个被设计成用于扩展C/C++编程的轻量级脚本语言,它的目标是成为一个很容易嵌入其它语言中使用的语言。Lua让C/C++编写的代码调用Lua脚本,同时C/C++函数也能够在Lua脚本中调用。与C/C++代码的交互性,让Lua在应用程序开发中有着广泛的应用基础。很多应用程序使用Lua作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。
Lua名字的由来
小巧的Lua语言来自于巴西里约热内卢天主教大学的实验性项目。当初巴西里约热内卢天主教大学的师生为什么要给这款语言起名为&Lua&,很大程度上是向巴西著名政治家、前任总统路易斯&伊纳西奥&卢阿&达席尔瓦致敬。卢阿总统是是巴西历史上学历最低,但是支持率最高的总统,深受人民爱戴,作为巴西国家电子领域最重要的人才培养基地的里约热内卢天主教大学计算机研究生院把他们在计算机世界中最重要成就&Lua&语言与他们总统同名,可见他们对Lua语言给予了多么大的希望。
巴西前总统卢阿
Lua语言在移动开发中的成功
2011年以前中国人对Lua语言的老家里约热内卢可以说是基本不了解,不过一部以小鸟爱情为主题的动画片《里约大冒险》让我们了解了里约热内卢的美丽风光。同样一个小鸟保卫鸟蛋的游戏《愤怒的小鸟》让Lua语言风靡开发者的世界。(51CTO扩展阅读《》、《》)
(图)里约大冒险版《愤怒的小鸟》
像前文所说Lua语法简洁优美,解释器由标准C编写。以快速小巧著称的Lua拥有在目前所有脚本引擎中最快的运行速度,这样的特性让Lua成为用作嵌入式脚本的最佳选择。但是,Lua语言被人们所熟知还要追述到1年前乔布斯的苹果将Lua语言引进iOS平台,直到现在已经有很多iPhone的应用写入到Lua中。而Lua语言凭借其代码几乎能在所有操作系统和移动终端上编译运行的这一特性,不但可以在iOS这一移动平台开发,同样也可以在Android等其他平台上开发。51CTO曾介绍过。有了以后Lua语言不但可以支持iOS,还可以支持Android平台。以上这些原因使Lua语言在Tiobe编程语言排行榜上迅速攀升,成为移动开发领域的新贵。
Lua的技术特点
目前Lua语言的最新版本是5.2 Beta,Lua也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。作为一个扩展式语言,Lua没有 &main& 程序的概念:它只能嵌入一个宿主程序中工作,这个宿主程序被称作embedding program或简称为host。宿主程序可以通过调用函数执行一小段Lua代码,可以读写Lua变量,可以注入C函数让Lua代码调用。这些扩展的C函数,可以大大的扩展了Lua可以处理事务的领域,这样就可以订制出各种语言,而它们共享一个统一的句法格式的框架。Lua的官方发布版就包含了一个叫做Lua的简单的宿主程序,它用Lua库提供了一个保证独立的Lua解释器。
写一个最最简单的程序&&Hello World。
print(&Hello&World&)&
假定你把上面这句保存在hello.lua文件中,你在命令行只需要:
prompt&lua&hello.lua&
看到结果了吗?
让我们来看一个稍微复杂点的例子:
--&defines&a&factorial&function &function&fact&(n) &&&&&if&n&==&0&then &&&&&&&&return&1 &&&&&else &&&&&&&&return&n&*&fact(n-1) &&&&&end &end && &print(&enter&a&number:&) &a&=&io.read(&*number&)&&&&&&--&read&a&number &print(fact(a))&
这个例子定义了一个函数,计算输入参数n的阶乘;本例要求用户输入一个数字n,然后打印n的阶乘。
(图)魔兽世界插件中的&Hello World&
很多网站宣传Lua语言作为脚本开发了《魔兽世界》,其实,几乎所有的《魔兽世界》插件都是使用解释性的脚本Lua编写,核心的C++代码只占全部代码中的很小一部分比重。在传统平台上Lua最流行的应用场景是在游戏中作为处理逻辑的脚本,即用来编写游戏的任务脚本,以实现游戏的可配置性和可扩展性。在游戏中Lua脚本的加载不需重启服务器,尽管脚本的运行效率低于编译好的二进制代码,但目前CPU速度已完全能够让Lua脚本迅速解释执行。这也正是包括《魔兽世界》、《战锤40K》、《仙境传说》、《博德之门》和《轩辕剑外传汉之云》在内的众多游戏选择Lua开发插件的原因。
(图)魔兽世界中游戏内插件开发的布局器
想学习Lua语言的朋友还可以到魔兽世界Lua插件的编辑器来试验一下。
内容导航&第 1 页: &第 2 页:
关于的更多文章
编程语言排行榜是51CTO开发频道根据Tiobe编程语言排行编辑整理而
移动互联网时代,许多人首要考虑的不再是Windows / Mac的安全竞争,即便Windows的安全性有所改善。当下最大的担忧是iOS和Android移动设备上的安全。再一次苹果 “围墙花园”似的系统似乎比Android在开放情况下创建安全环境更受欢迎。
在过去的近十年的时间里,面向对象编程大行其道。以至
很久很久以前,冬天爱上了夏天,可是他们始终不能相见
流火过,金秋来,在学校开学之前的最后一周,终于凉快
本书是一本知识全面、系统、专业的网络工程基础知识必备图书。全书条理清晰、逻辑性强,遵循从全局到细节,从底层基础到高层应用
51CTO旗下网站Windows10用户联盟QQ群:
Lua提供了一个调试库,它提供了所有的基本功能,创造自己的调试器。即便如此,也没有内置的Lua调试器,Lua为开发者创建很多调试器是开源。
调试Lua库中可用的功能列于下表连同它的用途。
方法及用途
进入调试,直到我们输入只在一行中,然后按回车这仍然是积极的互动模式。用户可以在使用其他功能,此模式下检查变量。
getfenv(object):&
返回对象的环境。
gethook(optional thread):&
返回该线程的当前钩设置,三个值:当前钩子函数,当前钩模,并且当前钩计数。
getinfo(optional thread, function or stack level, optional flag):&
返回有关功能的信息表。可以直接给该函数,或者可以给一个号码作为函数的值,这意味着该函数在给定线程的调用堆栈的水平仪功能运行:0级是当前功能(程序getinfo本身); 1级是所谓getInfo函数等等。如果函数比当前功能的数大一些,然后getinfo返回nil。
getlocal(optional thread, stack level, local index):&
返回名称和局部变量的索引为局部位于堆栈级函数的值。返回nil,如果有指定索引没有局部变量,并且当使用的级别超出范围称为引发错误。
getmetatable(value):&
返回给定对象或零nil元表,如果它没有一个元表。
getregistry():&
返回注册表,预先定义的表格,可用于通过任何C代码来存储任何Lua的值,它需要存储。
getupvalue(function, upvalue index):&
此函数返回名称和p值与函数func索引上升的值。该函数返回零,如果存在折射率给定upvalue的值。
setfenv(function or thread or userdata, environment table):&
设置给定对象与给定表中的环境,返回Object。
sethook(optional thread, hook function, hook mask string with &c& and/or &r& and/or &l&, optional instruction count):&
设置给定函数的挂钩。该字符串面具和数量计数描述时挂钩会被调用。在这里c, r 和l 被Lua每次调用,分别进入函数每一行代码。
setlocal(optional thread, stack level, local index, value):&
指定值以与索引本地位于堆栈级别函数的局部变量。函数返回零,如果存在与给定的索引没有局部变量,而当具有级别超出范围称为引发错误。否则,它返回局部变量的名称。
setmetatable(value, metatable):&
设置元表为给定对象与给定表(可以是零)。
setupvalue(function, upvalue index, value):&
此函数分配的值与函数func索引组成的upvalue。该函数返回零,如果存在与没有upvalue给定的折射率。否则,它返回upvalue的名字。
traceback(optional thread, optional message string, optional level argument):&
建立一个回溯扩展错误信息。
上面列表中的Lua调试功能的完整列表,我们经常使用,使用上述功能,并提供了更方便的调试库。使用这些函数和创建自己的调试器是相当复杂,不是最好的选择的。无论如何,我们将看到使用简单的调试功能的例子。
function myfunction ()
print(debug.traceback(&Stack trace&))
print(debug.getinfo(1))
print(&Stack trace end&)
myfunction ()
print(debug.getinfo(1))
当我们运行上面的程序,会得到堆栈跟踪信息,如下图所示。
Stack trace
stack traceback:
test2.lua:2: in function 'myfunction'
test2.lua:8: in main chunk
Stack trace end
在上面的示例程序中,堆栈跟踪是通过使用调试库中可用debug.trace功能打印。debug.getinfo得到函数的当前表。
另外一个例子
我们经常会需要知道一个函数的局部变量而进行调试。为此可以使用setupvalue设置并使用getupvalue获取这些局部变量、。一个简单的例子对本如下所示。
function newCounter ()
local n = 0
local k = 0
return function ()
counter = newCounter ()
print(counter())
print(counter())
local i = 1
name, val = debug.getupvalue(counter, i)
if name then
print (&index&, i, name, &=&, val)
if(name == &n&) then
debug.setupvalue (counter,2,10)
until not name
print(counter())
当我们运行上面的程序,会得到下面的输出。
index 1 k = 1
index 2 n = 2
在这个例子中,每次计数器更新当它被调用。可以使用getupvalue函数获取局部变量的当前状态。然后将局部变量的设置新值。这里,n设定为2在操作被调用之前。使用setupvalue函数更新为10,当调用计数器功能,它会返回11,而不是3。
命令行调试
图形化调试
命令行调试
命令行调试是使用命令行用命令和打印报表进行调试的调试类型。有这几个下面列出许多Lua可用的命令行调试器。
RemDebug:&RemDebug是一个远程调试器在Lua5.0和5.1。它可以远程控制另一个Lua程序执行,设置断点和检查程序的当前状态。 RemDebug也可以调试CGILua脚本。
clidebugger:&lua5.1的一个简单命令行界面调试程序用纯Lua编写。它不依赖于任何其他比标准的Lua5.1库。它是从RemDebug启发,但不具有其远端设备。
ctrace:&&一种工具,跟踪Lua的API调用。
xdbLua:&Windows平台的一个简单Lua命令行调试器。
LuaInterface - Debugger:&本项目为扩展LuaInterface调试器。它提出了建立在Lua调试接口到一个更高的水平。与调试器的交互是通过事件和方法调用完成。
Rldb:&这是通过套接字的远程LUA调试器,适用于Windows和Linux。它可以给你比任何现有的更多的功能。
ModDebug:&这使得可以远程控制其它Lua程序的执行,设置断点,并检查程序的当前状态。
图形化调试
图形化调试提供有IDE提供了各种状态,如变量值,堆栈跟踪信息和其他相关信息的可视化调试。有一种视觉表示,一步执行了断点的帮助下步控制,步入,跳过和其他按钮在IDE中。
有图形化Lua调试器的数量,它包括以下内容。
SciTE:&默认Windows IDE中的Lua提供了多种调试工具,如断点,一步,一步进入,跳过,查看变量等。
Decoda:&这是一个支持图形化调试器远程调试。
ZeroBrane Studio:&Lua的IDE集成了远程调试器,堆栈视图,表视图,远程控制台,静态分析器等。工程与LuaJIT,Love2d,Moai,和其他的Lua引擎。 在Windows,OSX和Linux并且开源。
akdebugger:&Lua的Eclipse插件-调试器和编辑器。
luaedit:&此功能远程调试,本地调试,语法高亮,自动完成建议列表,参数命题引擎,推进断点管理(包括断点空调系统和命中数),函数列表,全局变量和局部变量列表,查看,解决问题为导向的管理
标签:&&&&&&&&&&&&LuaEditor|LuaEditor编辑调试器下载_V6.30 免费版_9号软件下载}

我要回帖

更多关于 luaeditor编辑调试器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信