Idea 搭建Lua开发环境

1.Lua是什么

1993年在巴西里约热内卢天主教大学诞生了一门编程语言,发明者是该校的三名研究人员,他们给这门语言取了一个浪漫的名字——Lua,在葡萄牙语里代表美丽的月亮。Lua语言正如它的名字所预示的那样成长为一门简洁、优雅且富有乐趣的语言。

Lua从一开始就是作为一门方便嵌入其他应用程序并可扩展的轻量级脚本语言来设计的,因为一直遵从简单、小巧、可移植、快速的原则,官方实现完全采用ANSI C编写,能以C程序库的形式嵌入到宿主程序中。Lua语言在游戏开发、机器人控制、分布式应用、图像处理、生物信息学等各种各样的领域中得到了越来越广泛地应用。

2.LuaJIT是什么

Lua非常高效,它运行的比许多其他脚本如Perl、Python、Ruby都快。LuaJIT就是一个为了再榨出一些速度的尝试,它利用了即时编译(just-in-time)技术把Lua代码编译成本地机器码之后交由CPU直接执行。LuaJIT2的测评报告表明,在数值运算、循环与函数调用、协程切换、字符串操作等许多方面它的加速效果都很明显。

自从OpenResty 1.5.8.1版本之后,默认捆绑的Lua解释器就被替换成了LuaJIT,而不再是标准Lua。LuaJIT的运行环境包括一个用手写汇编实现的Lua解释器和一个可以直接生成机器代码的JIT编译器。

一开始的时候,Lua 字节码总是被 LuaJIT 的解释器解释执行。 LuaJIT 的解释器会在执行字节码时同时记录一些运行时的统计信息, 比如每个 Lua 函数调用入口的实际运行次数, 还有每个 Lua 循环的实际执行次数。 当这些次数超过某个预设的阈值时, 便认为对应的 Lua 函数入口或者对应的 Lua 循环足够的“热”, 这时便会触发 JIT 编译器开始工作。JIT 编译器会从热函数的入口或者热循环的某个位置开始尝试编译对应的 Lua 代码路径。编译的过程是把 LuaJIT 字节码先转换成 LuaJIT 自己定义的中间码( IR),然后再生成针对目标体系结构的机器码( 比如 x86_64 指令组成的机器码)。

LuaJIT的JIT 编译器的实现目前还不完整, 有一些基本原语它还无法编译,比如 pairs() 函数、unpack() 函数、string.match() 函数、基于 lua_CFunction 实现的Lua C模块、FNEW字节码等等。所以当 JIT 编译器在当前代码路径上遇到了它不支持的操作,便会立即终止当前的 trace 编译过程(这被称为trace abort),而重新退回到解释器模式。

LuaJIT和标砖Lua解释器的一大区别是,LuaJIT的执行速度要比标准Lua解释器快很多,可以说是一个高效的Lua实现。另一个区别是,LuaJIT支持比标准Lua语言更多的基本原语和特性,因此功能上也要更加强大。

3.Lua 环境搭建

我们以Windows为例,使用Idea搭建Lua开发环境。

1.首先下载Lua for Windows,下载地址https://lua-for-windows.updatestar.com/

2.下载完成之后安装Lua for Windows,我的安装目录为:F:\Lua5.1

3.idea 安装Lua开发插件。

Idea Lua插件既可以使用Lua也可以使用EmmyLua,我们选择EmmyLua,安装完成后重启IDEA。

4.新建lua项目lua-test

新建完成后,新建Lua文件test.lua:

运行输出Hello World~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章