文档章节

Lua开篇

大道至簡
 大道至簡
发布于 2014/05/30 16:54
字数 1330
阅读 241
收藏 16

一、简介:

  Lua作为目前最为流行的、免费轻量级嵌入式脚本语言,在很多工业级的应用程序中被广泛应用,如Adobe's Photoshop,甚至是在一些著名的游戏程序中也被大量使用,如星际。不仅如此,由于Lua具备很多特殊的优点,如语法简单(基于过程)、高效稳定(基于字节码)、可以处理复杂的数据结构、动态类型、以及自动内存管理(基于垃圾收集)等,因此在很多嵌入式设备和智能移动设备中,为了提高程序的灵活性、扩展性和高可配置性,一般都会选择Lua作为它们的脚本引擎,以应对各种因设备不同而带来的差异。

二、主要优势:

  1. 高效性:
  作为一种脚本语言,Lua的高效是众所周知的,因此在实际应用中,很多大型程序都会考虑将代码中易变的部分用Lua来编写。这不但没有明显降低系统的运行效率,反而使程序的稳定性和可扩展性得到了显著的提升。

  2. 可移植性:
  在官方网站中提供了基于多种平台的发布包,如Linux/Unix、Windows、Symbian和Pocket PC等。
    
  3. 可嵌入性:
  在语言设计之初,Lua就被准确的定位为嵌入式脚本语言,因此Lua的设计者们为Lua提供了与其他编程语言之间的良好交互体验,这特别体现在和C/C++之间的交互上。对于其他语言,如Java和C#,也可以将Lua作为其嵌入式脚本引擎,并在代码中进行直接的交互。
    
  4. 简单强大:
  尽管是过程化脚本语言,但由于Lua的设计者们为Lua提供了meta-mechanisms机制,这不仅使Lua具备了一些基本的面向对象特征,如对象和继承,而且仍然保持了过程化语言所具有的语法简单的特征。
    
  5. 小巧轻便:
  在最新版本(5.2.0)的Lua中,仅仅包含了大约20000行的C语言代码,编译后的库文件大小约为240K左右,因此这对于很多资源有限的平台有着极强的吸引力。
    
  6. 免费开源:
  MIT Licence可以让Lua被免费的用于各种商业程序中。
    
三、应用场景:

  1. 在很多时候,我们可以将Lua直接嵌入到我们的应用程序中,如游戏、监控服务器等。这样的应用方式对于程序的最终用户而言是完全透明的,但是对于程序本身,其扩展性将会得到极大的增强。
    
  2. 将Lua视为一种独立的脚本语言,通过它来帮助我们完成一些软件产品的辅助性工具的开发。比如在我们之前的数据分析产品中,我们通过编写Lua脚本,将每个用户不同格式的数据重新格式化为我们的软件平台能够读取的格式,之后再将格式化的后的数据加载到数据库中,或者是写入我们的分析引擎可以识别的数据分析文件中。这其中Lua仅仅用于文件格式的规格化过程,至于此后的操作,都是通过Lua调用我们的C语言导出函数来完成的。
    
  3. 将Lua应用于应用程序的动态配置部分。比如移动智能设备或嵌入式设备,它们的显示分辨率在很多情况下都是非标准的,如果我们为每一款设备都维护一套相关的配置信息,这无疑会加大我们程序的维护开销,如果我们将这段动态配置逻辑交由Lua脚本完成,那么这对于程序配置的灵活性而言,将会得到很大的提高。甚至可以是这样,运行在移动终端设备上的应用程序,在启动主窗体之前先和服务器建立连接,在服务器确认设备的各种参数后,再将和该设备显示相关的Lua脚本发送给设备客户端,这样客户端在得到Lua脚本之后,就可以立刻执行它以得到最新的动态配置信息。

  最后需要特别指出的是,学习Lua对于我们知识的系统性和完整性而言将是非常重要的一环,特别是对那些致力于软件架构设计和软件解决方案分析的高级软件专业人员而言就更是如此。因为在很多时候,如果我们能够很充分的理解和驾驭Lua,它不仅可以为我们的软件产品增色很多,而且也可以为我们技术人员带来一些意想不到的收获。
  这是Lua系列的第一篇博客,此后还会有十几篇相关的博客陆续发布,请有兴趣的网友持续保持关注。如有问题,欢迎及时指正。好了,那就让我们一起开始Lua的学习之旅吧。:)

本文转载自:http://www.cnblogs.com/stephen-liu74/archive/2012/06/11/2403210.html

共有 人打赏支持
大道至簡

大道至簡

粉丝 45
博文 91
码字总数 24369
作品 0
广州
技术主管
私信 提问
加载中

评论(2)

嗨酷网
嗨酷网
不错 以前检点写过wow小插件
大白0-0
大白0-0
加油,写的不错
Lua5.0 第零篇

Lua5.0 版本从这里下载: www.lua.org/ftp/lua-5.0.tar.gz 它的在线文档在这里: http://www.lua.org/manual/5.0/ 很好,终于进入版本五时代了。 打开下载下来的压缩包,好多的目录和文件。不...

晓寒
2015/08/29
186
0
Cocos2d-Lua手游开发基础篇-何韬-专题视频课程

Cocos2d-Lua手游开发基础篇—62875人已学习 课程介绍 Cocos2d-Lua是一个开源的移动游戏框架,可以轻松运行在iOS、Android、Blackberry等操作系统中,使得开发低成本、高效率;一次制作,多终...

pkutao
2015/02/26
0
0
Cocos2d-Lua进阶篇(quick)-何韬-专题视频课程

Cocos2d-Lua进阶篇(quick)—21078人已学习 课程介绍 使用Cocos2d-Lua迅捷开发手机游戏和应用。本课程介绍了使用Lua开发各类UI,事件,动画,发布等重要知识点,让学习者能够迅速掌握Lua开发...

pkutao
2015/03/20
0
0
极路由安全设计分析姐妹篇

开篇想说两件事情: 一、非常感谢Freebuf大牛们,在其提供的网站上找到了HiWiFi固件、其中9003版本squashfs文件系统上的lua代码没有经过预编译处理,这对我们基于源码分析极路由提供了可能。...

广岛秋泽
2015/08/26
0
0
Openresty 执行阶段与api之间的关系(一)

Openresty与nginx的 执行阶段 常见的七个阶段的顺序: 每个阶段的作用: 知道这几个阶段之后,如何利用Nginx的函数变量去构建自己想要的系统,了解nginx变量和函数的作用域也是十分关键。 ng...

年少爱追梦
2016/10/24
180
0

没有更多内容

加载失败,请刷新页面

加载更多

KaliLinuxNetHunter教程下载相关资源

KaliLinuxNetHunter教程下载相关资源 当用户将刷机工具准备完后,则需要下载ROM包。ROM是ROM image(只读内存镜像)的简称,常用于手机定制系统。一般手机刷机的过程,就是将只读内存镜像(R...

大学霸
34分钟前
1
0
C# 字符串插值

字符串插值 据说是 C# 6.0 中引入的新特性. 字符串插值允许您以更简洁易读的方式将字符串拼凑在一起. 如果在字符串的左引号前添加$,则可以在字符串中的大括号里包含字符串值,如变量等. 一些示...

taadis
58分钟前
2
0
Navicat使用教程:接收MySQL/MariaDB问题通知

下载Navicat Monitor最新版本 Navicat Monitor 是一套安全、简单而且无代理的远程服务器监控工具。它具有强大的功能使你的监控发挥最大效用。受监控的服务器包括 MySQL、MariaDB 和 Percona ...

电池盒
59分钟前
3
0
我是怎样和Linux系统结缘并通过红帽RHCE认证的

我高考完当时就是选择的计算机科学与技术专业,上大学以后联想到的和计算机相关的就只有写代码,开发,网站,网页设计,就没有其他的了,当时学习写代码也都是在Windows上,什么C#、C++之类的...

Linux就该这么学
今天
5
0
hbase的web页面访问

hbase1.1版本web页面默认不开放 在hbase-site.xml中加入一下内容即可 <!-- 新增的配置 --><property><name>hbase.master.info.port</name><value>60010</value></property> 借鉴htt......

你为什么不吃药
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部