`
mqqqvpppm
  • 浏览: 63772 次
  • 性别: Icon_minigender_1
  • 来自: Kun Ming
社区版块
存档分类
最新评论

什么是lua

阅读更多
lua
Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。
Lua最著名的应用是在暴雪公司的网络游戏WOW中。

Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。

Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。
一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。

Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能,这将给Lua带来更加优秀的性能。请访问 http://luajit.luaforge.net/ 来了解这个项目。

和Python等脚本不同,Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。不过Lua还是具备了比如数学运算和字符串处理等基本的功能。

Lua 目前的最新版本是 5.1.

1 目标

LUA的目标是成为一个很容易嵌入其它语言中使用的语言。大多数程序员也认为它的确做到了这一点。

很多应用程序使用LUA作为自己的嵌入式脚本语言,以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门等。


2 特性

LUA有如下特性:

轻量级 LUA语言的官方版本只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从而适合嵌入在别的程序里。

可扩展 LUA并不象其它许多"大而全"的语言那样,包括很多功能,比如网络通讯、图形界面等。但是LUA可以很容易地被扩展:由宿主语言(通常是C或C++)提供这些功能,LUA可以使用它们,就像是本来就内置的功能一样。

其它特性 LUA还具有其它一些特性:同时支持面向过程编程和面向对象编程;自动内存管理;提供一系列数据结构,包括数组、链表、集合、字典、散列表等;语言内置正则表达式匹配;闭包(closure);函数也可以看做一个值;提供多线程支持;等等。


3 示例代码

是的,你猜对了:hello world...

print "Hello, world!"

一个比较复杂一点的例子,但是它展示了什么是闭包:

function create_a_counter()
    local count = 0
    return function()
        count = count + 1
        return count
    end
end

create_a_counter()返回一个记数器,每次调用这个记数器,都会得到一个比上次大1的值。

分享到:
评论

相关推荐

    Lua 解释器 中文书籍及IDE

    首先,我们要了解什么是Lua解释器。Lua解释器是用于执行Lua代码的程序,它将源代码解析并执行,使得程序员可以在各种平台上编写和运行Lua程序。官方的Lua解释器是用C语言编写的,体积小,易于嵌入到其他项目中。它...

    Lua开发包,和编译器一块使用

    首先,我们要理解什么是Lua编译器。Lua语言本身是解释执行的,但有时为了提高运行效率或者部署方便,会将其转换为字节码或直接编译为机器码。这种工具被称为Lua编译器,例如luac,它可以把Lua源代码编译成预编译的...

    kangping.luaide-0.3.7.zip

    首先,我们来了解什么是Lua。Lua是一种轻量级的脚本语言,常用于游戏开发、系统配置、嵌入式系统等领域,其简洁的语法和高效的执行性能深受开发者喜爱。而VSCode作为微软推出的跨平台源代码编辑器,凭借强大的扩展性...

    LUAC脚本解密_luac解密在线_luac4加密_luac反编译_luac4解密工具_luac解密工具

    LUAC脚本是一种基于Lua语言的编译格式,它将Lua源代码编译成字节码,以便在 Lua 解释器上高效运行。LUAC(Lua Compiler)是Lua官方提供的编译器,它将源代码转换为这种优化的字节码,以提高执行速度。在游戏开发、...

    LUAC解密工具.zip_andlua解密工具_andlua解密软件_lua 4.2解密_luac转lua_lua解密工具

    "LUAC解密工具"就是针对Lua编译后的二进制文件(.luac)进行解密的工具,目的是为了让加密过的Lua代码能够恢复成可读的源代码格式(.lua)。 LUAC是Lua的编译器,它将Lua源代码转换为字节码,这个过程通常是为了...

    LUAC反编译_LUC_lua反编译工具_luac_luac解密工具_Lua解密_

    Lua源代码是文本形式的,易于阅读和编写,但为了保护代码不被轻易篡改或盗用,开发者通常会将Lua代码编译成字节码(.lua.c文件或.luac文件)。"LUAC"就是Lua的官方编译器,它将Lua源代码转换为字节码,以提高执行...

    luaDll+ luacom+luaiconv.rar

    内含luaDll,luacom以及luaiconv源码。luaDll和luaiconv直接打开sln在Visual studio中即可进行编译。luacom可使用nmake进行编译。也可直接使用已经生成了的dll.

    所有版本LUA源码

    所有版本LUA源码 lua-5.3.5 lua-5.3.4 lua-5.3.3 lua-5.3.2 lua-5.3.1 lua-5.3.0 lua-5.2.4 lua-5.2.3 lua-5.2.2 lua-5.2.1 lua-5.2.0 lua-5.1.5 lua-5.1.4 lua-5.1.3 lua-5.1.2 lua-5.1.1 lua-5.1 lua-5.0.3 lua-...

    lua51-lua环境

    Lua 5.1.4是Lua编程语言的一个版本,它是一个轻量级的脚本语言,广泛用于游戏开发、嵌入式系统、服务器配置等多种领域。这个压缩包提供了在Windows环境下运行和开发Lua程序的基本组件。 首先,我们来了解一下Lua ...

    Lua中文编辑器luaEditor

    Lua是一种轻量级的脚本语言,常用于游戏开发、嵌入式系统和服务器配置等领域。LuaEditor是一款专为Lua编程设计的中文编辑器,它为程序员提供了方便的开发环境,提高了编写和调试Lua代码的效率。luaEditor-v4.10是该...

    lua_stm32f4.rar_lua stm32_lua移植stm32_stm32 lua_stm32f407移植lua_st

    《Lua在STM32F407上的移植与应用》 在嵌入式系统领域,为了提高代码的可读性、可维护性和灵活性,越来越多的开发者选择使用高级脚本语言,如Lua,来替代传统的C/C++编程。本文将详细探讨如何在STM32F407微控制器上...

    易语言lua的例子

    4. **Lua.dll**:这是Lua51.DLL,是Lua解释器的核心部分,包含了Lua的所有运行时功能。在易语言中,可以通过动态链接这个DLL来调用Lua的功能。 5. **测试.e**:这是一个易语言的源代码文件,很可能包含了如何在...

    lua加密成luac工具

    ios版本将lua加密成luac

    lua_test.rar_C++_c# lua_c++ lua_lua_lua调用C++

    本示例中的"lua_test.rar"文件集是一个关于C++与Lua交互的实践案例,主要探讨了如何通过Lua脚本调用C++编写的函数。下面我们将详细探讨这个主题。 首先,Lua是一种轻量级的脚本语言,它简洁、易学,常被用于游戏...

    Lua的最基本使用 C++与lua的互相调用

    使用`lua_pushnumber`、`lua_pushstring`等函数将C++数据推送到Lua栈,使用`lua_tonumber`、`lua_tostring`等函数从Lua栈获取数据。 6. 清理:调用`lua_settop(L, 0)`清空栈,防止内存泄漏。 二、Lua调用C++函数 ...

    云风-lua源码欣赏-lua-5.21

    《云风-lua源码欣赏-lua-5.21》是一本专注于解析Lua 5.2.1版本源码的书籍。作者采用非线性写作方式,将各个章节独立完成,最后进行整体整合。书中的内容涵盖了Lua的多个核心方面,包括源文件划分、代码风格、虚拟机...

    介于许多小伙伴 打开lua官网很慢,下载lua源代码很慢,传一个lua5.4.6最新版本的源代码

    Lua是一种轻量级的脚本语言,主要用于嵌入到其他应用程序中以增加其功能和定制性。它的设计目标是简洁、高效和可扩展。在本文中,我们将详细探讨Lua 5.4.6这一最新版本的源代码及其相关知识点。 首先,让我们了解...

    LuaBitOp-1.0.2 lua位操作源码

    LuaBitOp-1.0.2 是一个针对 Lua 语言的位操作库,它提供了对二进制数据进行位运算的功能。位操作是计算机科学中的基础概念,它们在底层编程、数据处理和优化中有着广泛的应用。LuaBitOp 的源码可以帮助开发者深入...

    LUA-JS.zip_js lua.js_js调用 lua_lua JavaScript_lua调用js_lua转js

    JS和LUA交互,主要是JS和LUA交互实现模版,可以作为参考

    Lua 5.2 Reference Manual(Lua 5.2引用指南)

    ### Lua 5.2 参考手册核心知识点详解 #### 一、引言与概述 **Lua** 是一种扩展编程语言,旨在支持通用的过程式编程,并具备数据描述能力。此外,Lua 还提供了面向对象编程、函数式编程以及数据驱动编程的良好支持...

Global site tag (gtag.js) - Google Analytics