打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Lua,一种强大的轻量级脚本语言

Lua,一种强大的轻量级脚本语言

作者: Apex 发表于

Lua is a powerful light-weight programming language designed for extending applications. Lua is also frequently used as a general-purpose, stand-alone language. Lua is free software.

Lua是葡萄牙语中的“月亮”的意思,发音为:LOO-ah。

Lua是一个强大的轻量级脚本语言,主要设计来扩展应用程序功能。当然,Lua也经常被作为一个通用、独立的语言使用。Lua是免费软件,而且是开源的,目前版本为5.1。

所谓的轻量级,意思是,仅仅需要在你的程序中增加额外约50Kb的开销,就能够为你的应用程序增加脚本执行功能。

Lua的应用极为广泛,举两个例子:一是火热的网络游戏《魔兽世界》,就使用Lua作为应用界面扩展语言,很多外挂程序如“魔兽精灵”和“魔兽小强”就是用Lua来开发的。Lua是《魔兽世界》的官方扩展接口语言。另外一个比较有意思的是SONY推出的次世代掌机PSP,在固件程序被破解后可以运行自制程序,于是有人将Lua移植到PSP上(Lua Player),并扩展了Lua的接口,方便游戏程序的二次开发,于是,PSP上基于Lua的自制游戏和小软件如同雨后春笋般大量出现。

出于工作的需要,更多的是个人兴趣,我会在一段时期内学习研究Lua的应用,并会陆陆续续记录一些心得,希望能够与有共同爱好的朋友交流。

Lua的一个重要特点就是可以在其脚本程序直接调用主程序(就是嵌入了Lua解释器的应用程序)中指定的C/C++函数,访问其全局变量或者C++的成员变量;反过来,在C/C++程序中,也可以直接调用Lua脚本中的Lua函数和变量。这个闪光点是如此的明亮,以致于我立刻被其紧紧吸引。

我一直想要寻找一种解释执行的语言,能够方便的嵌入到自己的应用程序中,为应用程序增加易扩展的逻辑流程控制,而不用重新编连整个软件项目。在此之前,我也考察过很多的脚本语言,例如Basic / PHP / Perl / Python / CScript等等,这些语言各有优缺点,应用的领域也各不相同。但这些语言的最大缺点就是:解释器太庞大!(当然,你会说,这些解释器基本上都是开源的,我们可以将其解释器精简,但是,你得知道,我是一个懒人,才懒得阅读那些成千上万行的源代码 :) ) 直到我遇到了Lua,这简直是为我的需求量身定制的~~

Lua使用纯ANSI C编写,这样,它就可以在任何支持标准C的编译器中编译,可以这样说,凡是GCC的身影出没的地方,就可以编译Lua。这种跨平台的特性,对我来说也是非常重要的。

我拿Lua来有什么用?这里有一个可能的用途列表:

  • 开发一套安装程序,可以用Lua来控制安装流程,并可以由二次开发商自行定制、扩展安装功能
  • 开发一套在线更新程序,可以用Lua来控制更新行为,例如那些文件需要更新,那些注册表项需要更改等等
  • 开发一套网络防火墙,可以用Lua来控制防火墙规则,并能够智能学习,产生新的规则
  • 开发一套自动构建系统,可以用Lua来控制细部构建动作
  • 开发一套自动测试系统,将自动构建的结果进行功能性白盒测试,可以用Lua来调用动态库的各个接口进行测试,而无需编译测试程序
  • 开发一套软件保护模块,将软件的一些功能转移到Lua脚本中执行,这样,软件在运行过程中就会在主程序和Lua虚拟机之间来回跳转,配合一些花指令、迷宫代码等,绝对可以把破解者绕得晕头转向(Lua一样可以生成伪二进制码,从而避免泄漏Lua脚本源码)

还有很多很多应用,让我们慢慢来吧~~

最后要提一下Lua的授权方式,Lua没有使用开源软件常见的GPL授权方式,你可以完全免费、自由的使用Lua,即使是商业软件也可以。唯一的要求是,在你的程序或者网站的某个角落放上Lua的版权信息就可以了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在可插入脚本的应用程序中嵌入 Lua
Perl 语言的重要价值体现
脚本语言
Step By Step(Lua开篇)(转)
iOS中Lua脚本应用笔记二: 关于Lua在iOS的使用
Lua
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服