lua专题提供lua的最新资讯内容,帮你更好的了解lua。
在这篇文章中,我想向大家介绍如何进行Lua程序设计。我假设大家都学过至少一门编程语言,比如Basic或C,特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。  Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。  在Lua中,一切都是变量,除了关键字。请记住这句话。I.  首先是注释  写一个程序,总是少不了注释的。  在Lua中,你可以使用单行注释和多行注释。  单行注释中,
阅读代码时,可以从singlestep开始 如果是使用GC,可以从lua_gc开始 内部机制:当前使用内存达到了垃圾回收的内存上限时,就表示需要垃圾回收了GCthreshold totalbytes; 一直奇怪局部变量怎么垃圾回收,看代码发现,原来线程本身也是对象,检查线程对象时,通过堆栈检查,遍历了所有的局部变量 疑问:每次收集的时候都不一定是全部变量都检查一遍,怎么处理收集过程中创建的对象 答
http://www.blogjava.net/killme2008/archive/2008/04/07/191324.html   三个多月前翻译的,今天又找出来看看,后面的待整理下继续发,有错误的地方请不吝赐教。 原文:http://www.tecgraf.puc-rio.br/~lhf/ftp/doc/jucs05.pdf 翻译:dennis zhuang (killme2008@gmai
    从5.0版本开始,Lua实现了“非对称协程”,也叫做“半对称协程”或者“半协程”。这些协程由Lua标准库:create、resume和yield提供支持。create函数接收一个"main"函数,并使用该函数创建一个新的协程。他返回一个类型为thread的值表示该协程。(和所有Lua的值一样,协程是一阶[first-class]的值)resume函数通过调用他的主函数来启动一个给定协程的执
虚拟机       Lua首先将程序编译成指令【操作码】,然后执行这些指令。每个函数,Lua都要为创建一个原型【prototype】,一个包含该函数操作码的数组以及一个包含该函数所使用的所有常量(字符串和数值)Lua值的数组。      十年来(从1993年,Lua首次发布),Lua在不同的实现中,使用基于栈的虚拟机。从2003年开始,随着Lua5.0发布,Lua使用基于寄存器的虚拟机。基于寄存器
综述       在这篇论文中,我们论述了Lua5.0实现中各个最具创意部分:他的基于寄存器的虚拟机,使用优化后的表作为数组的新算法,和闭包的实现。      据我们所知,Lua是头一个广泛采用基于寄存器虚拟机的语言。对表的优化,允许一个表在他被当作数组使用时,能够做为数组被分块实现(就是说,当他在1...n范围内有足够的关键字)。他对闭包的实现也是独一无二的,结合使用了一个基于数组的栈,这个栈带
 纳米机器人下载: http://www.namipan.com/d/902e81b237982bdd5596b35a55431a1ae143870e83648700
 #include <stdio.h> extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" } static void stackDump(lua_State *L) { int i; int top=lua_gettop(L); for(i=1;i<=top;
在lua脚本调用中,如果我们碰到一种不好的脚本,例如:   while 1 do      do end   那我们的程序主线程也会被阻塞住。那我们如何防止这种问题呢?下面就给出一个解决的办法。   首先为了不阻塞主线程,那我们就要开一个线程,把处理脚本的操作都放在这个新开的工作线程里。(要详细了解工作线程和界面线程的区别和管理,请参看本人的另一篇文章BLOG下Windows编程里的《Window
前段日子研究了一下python,被她的简洁高效深深吸引。今天在看云风的《游戏之旅-我的编程感悟》时,见他很推崇提到Lua,晚上把它弄下来玩玩——BTW,给游对戏开发有兴趣的朋友,推荐云风的《那些日子》——废话少说,进入正题... 1.下载源代码,http://www.lua.org/ftp/lua-5.1.4.tar.gz 2.编译Lua 源码 先将lua-5.1.4.tar.gz 解压到一个目录
Lua的编译参考 Lua 学习,第一次亲密接触 ;俗话说“工欲善其事,必先利其器”,我们今天来讨论一下如何打造Lua开发的利器。 1. 使用editplus打造Lua的简易IDE 1.1 配置解释器 打开VS2005 , 工具-配置用户工具;详细配置如图所示: 菜单文本:lua 命令:F:/Program/Dev/lua/lua5_1_4/src/lua.exe (lua.exe文件的路径,编译过
以代码为主,辅助注释   --1.无状态迭代器 --[[ for <var-list> in <exp-list> do --staff end 其中,<exp-list>应该返回3个值:迭代器函数,恒定状态,控制变量 ]] local function getnext(list, node) if not node then return list el
lua中的协同程序类似于多线程,但是与多线程还是有点区别的,区别在于协同程序必须必须合作,且同一时刻只有运行一个协同程序。   function p() print("Hello World") end   这是一个简单的示例函数,下面看看协同程序的调用 co = coroutine.create(p) print(co) --> thread: 003FBBF0 print(co
metatable是元表的意思,在python中,有meta class,即元类,不管是元表还是元类,都是功能强大的,简单的来说,元类就是类的类,元表就是table的table。 下面看看元表的强大,利用table模拟list的加法操作:   定义列表table list = {} list.mt = {}    其中list.mt是用来准备定义list的元表的   定义初始化函数 funct
  贴一个Lua入门的ppt,[走进Lua],作者: 边缘独行者 csdn 不支持 google doc 的嵌入,在线观看请移步: http://hicoder.blogspot.com/2009/05/lua3lua.html google DOC 在线观看:  http://docs.google.com/Presentation?id=dc74jq2m_129d7j55nhg 下载: 猛
lua也面相对象?不错,是的。它有面向对象的操作。看看简单示例: CTest = { cnt = 0 } function CTest:new(o) o = o or {} setmetatable(o, self) self.__index = self return o end function CTest.add(self, v) self.cnt = se
http://www.cppblog.com/flashboy/archive/2009/01/04/71167.html     http://www.cppblog.com/lxyfirst/archive/2008/10/29/65447.html   http://www.cppblog.com/flashboy/archive/2008/09/12/61701.html
1. lua 关键字 : and , break , do , else , elseif , end , false , for , function , if , in , local , nil , not , or , repeat , return , then , true , until , when 2. 删除变量: = nil ; 3. 变量类型: nil (not define
1. LUA 函数特征:    a. 第一类值    b. 词法域(内函数可以访问外函数的局部变量) 2. 尾调用消除(不再返回调用原函数)    return <func>(<args>) 3. colsure 迭代    function values(t)               local i=0             return function() i=i+1; return
1. 压入元素:   void lua_pushnil ( lua_State *L ); void lua_pushboolean ( lua_State *L, int bool ); void lua_pushnumber ( lua_State *L, lua_Number n ); void lua_pushinteger ( lua_State *L, lua_Integer ); v