Lua学习系列(一)

从现在开始,打算学习一门新的脚本语言-lua.

1.什么是lua?

   a) lua1

• Lua 1.0 was implemented as a library, in less then 6000 lines of C

• “The simplest thing that could possibly work”: compiler used lex and yacc, simple stack based virtual machine, linked lists for associative arrays

• Some of the syntax still lives in the current version:

• Lua 1.1 just added a reference manual, and a cleaned-up C API

b)lua2

• From Lua 2.1 (February 1995) to Lua 2.5 (November 1996)

• Object oriented programming via delegation

• Pattern matching in the standard library

• Hooks for writing debuggers

• First users outside Tecgraf, with papers in Software: Practice and Experience and Dr. Dobb‘s Journal

• LucasArts begins using Lua in games

  c)lua3

• From Lua 3.0 (September 1997) to Lua 3.2 (September de 1999)

• Anonymous functions and a restricted form of closures give better support for functional programming, which would mature in Lua 5

• Major refactoring in the source code

• The next version brings big changes to the C API, so some applications from this time still embed this version of Lua

  d)lua4

• A single version, Lua 4.0, released on November 2000

• C API completely redone, using the stack model that we will see in this course

• An application can now have several independent instances of the Lua interpreter

• The standard library has been rewritten to use just the public C API, reinforcing the separation between the core and the standard libraries

  e)lua5

• From Lua 5.0 (April 2003) to Lua 5.2, the current version, released December 2011

• Maturity of the language, and the release of the “Programming in Lua” book

• Several big changes: metatables, true lexical scope for anynonymous functions, the module system, coroutines, lexical environments…

• Changes in the implementation: more efficient register-based virtual machine, replacing the stack-based one, an incremental garbage collector for shorter pauses

• The implementation now has around 20.000 lines of code, 3x Lua 1.0

  f)lua today

• Current license is the MIT license, free for both non-commercial and commercial use

• Open language, but closed development: new releases are still the responsibility of the three original authors

• Big community participation in the lua-l mailing list and the lua-users wiki

• A package manager, LuaRocks, and alternative Lua implementations: LuaJIT, JVM, .NET, JavaScript...

• Several frameworks for developing mobile games: Corona, Gideros, Codea, MOAI...

2.lua应用在哪里?

时间: 2024-10-11 09:08:18

Lua学习系列(一)的相关文章

lua学习--系列1

学习原因: Lua 是一个小巧的脚本语言 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.Lua由标准C编写而成, 几乎在所有操作系统和平台上都可以编译,运行.Lua并没有提供强大的库,这是由它的定位决定的. 所以Lua不适合作为开发独立应用程序的语言. Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能. 不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护. 一个完整的Lua解释器不过200k,在目前所有脚本

Lua学习系列(三)

Ubuntu14.04 上源码编译安装lua5.3 原文:http://blog.csdn.net/abclixu123/article/details/46676991

使用腾讯云 GPU 学习深度学习系列之二:Tensorflow 简明原理【转】

转自:https://www.qcloud.com/community/article/598765?fromSource=gwzcw.117333.117333.117333 这是<使用腾讯云 GPU 学习深度学习>系列文章的第二篇,主要介绍了 Tensorflow 的原理,以及如何用最简单的Python代码进行功能实现.本系列文章主要介绍如何使用 腾讯云GPU服务器 进行深度学习运算,前面主要介绍原理部分,后期则以实践为主. 往期内容: 使用腾讯云 GPU 学习深度学习系列之一:传统机器学

quick-cocos2d-x 学习系列之十四 测试用例

quick-cocos2d-x 学习系列之十四 测试用例 定义变量,创建13个场景名字 local items = { "framework.helper", "framework.native", "framework.display", "framework.crypto", "framework.network", "framework.luabinding", "fra

quick-cocos2d-x 学习系列之十六 塔防完结

quick-cocos2d-x 学习系列之十六 塔防完结 1.  math2d.lua文件 该文件实现了常用的数学函数. Dist函数实现两点的距离. radians4point求两点的夹角(弧度) pointAtCircle求圆上一个点的位置 pointAtLineToPoint求线段上与指定点距离最近的点 degrees2radians角度转换为弧度 radians2degrees弧度转换为角度 2.  utils.lua文件 2.1         drawCircle 返回newCirc

quick-cocos2d-x 学习系列之六 CoinFlip

quick-cocos2d-x 学习系列之六 CoinFlip 下面我们来看一个很完整的例子,CoinFlip,这个DEMO已经非常完整可以直接用来玩耍了. 代码路径:.. \quick\samples\coinflip 这个游戏还是很益智的. 1.  代码逻辑 开始部分基本和其他的都一致,从main.lua文件进入,到达MyApp.lua文件中.(MyApp继承于cc.mvc.AppBase) 主要函数是run,enterMenuScene,enterMoreGamesScene,enterC

quick-cocos2d-x 学习系列之十三 触摸

quick-cocos2d-x 学习系列之十三 触摸 现在智能机基本都是触摸屏,除了键盘爱好者们耍键盘.我们要通过这小小的触摸屏上完成整个游戏逻辑的控制,需要对这巴掌大地方进行详细控制了. 1.  单点触摸测试 创建精灵函数 function createTouchableSprite(p) local sprite = display.newScale9Sprite(p.image) sprite:setContentSize(p.size) local cs = sprite:getCont

quick-cocos2d-x 学习系列之十二 关于websocket

quick-cocos2d-x 学习系列之十二 关于websocket 1.  概念 百度百科:WebSocket protocol 是HTML5一种新的协议.它实现了浏览器与服务器全双工通信(full-duplex). 在浏览器中通过http仅能实现单向的通信,comet可以一定程度上模拟双向通信,但效率较低,并需要服务器有较好的支持; flash中的socket和xmlsocket可以实现真正的双向通信,通过 flex ajax bridge,可以在javascript中使用这两项功能. 可

Lua学习笔记--环境配置&amp;Hello World

最近发现要恶补的东西实在是太多了,DX还没学完,现在发现还要用Lua脚本语言,于是,我的笔记又加了一个系列,Lua学习笔记. 一.简介 Lua是一门小巧的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能.Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行.Lua并没有提供强大的库,这是由它的定位决定的.所以Lua不适合作为开发独立应用程序的语言. Lua脚本可以很容易的被C/C++ 代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序