“Lua基础”的版本间的差异

来自linux中国网wiki
跳到导航 跳到搜索
docker>Evan
 
 
(未显示同一用户的18个中间版本)
第1行: 第1行:
 +
 +
=book =
 +
 +
有电子书
 +
 +
[https://zhuanlan.zhihu.com/p/158817577 【Lua篇】《Lua程序设计》全书内容总结]
 +
 +
[https://item.jd.com/13807126.html?bbtf=1  Lua解释器构建:从虚拟机到编译器 ]
 +
 +
=install=
 
<pre>
 
<pre>
  
第4行: 第14行:
 
sudo apt install  lua5.1
 
sudo apt install  lua5.1
 
</pre>
 
</pre>
 +
 +
on freebsd12
 +
 +
=运行=
 +
<pre>evan@bsd-latop:~ % lua52
 +
Lua 5.2.4  Copyright (C) 1994-2015 Lua.org, PUC-Rio
 +
> print("hello,world")
 +
hello,world
 +
 +
 +
把脚本存成一个文件
 +
 +
evan@bsd-latop:~/test % cat hello.lua
 +
#!/usr/local/bin/lua52
 +
print("Hello, World")
 +
evan@bsd-latop:~/test % chmod +x hello.lua
 +
evan@bsd-latop:~/test % ./hello.lua
 +
Hello, World
 +
</pre>
 +
=控制语句=
 +
<pre>
 +
./h.lua
 +
sum = 5050
 +
 +
evan@bsd-latop:~/test % cat h.lua
 +
#!/usr/local/bin/lua52
 +
sum = 0
 +
num = 1
 +
while num <= 100 do
 +
    sum = sum + num
 +
    num = num + 1
 +
end
 +
print("sum =",sum)
 +
 +
 +
if-else分支 </pre>
 +
 +
=函数=
 +
 +
 +
函数前面加上local就是局部函数
 +
=Table=
 +
 +
 +
Lua的下标不是从0开始的,是从1开始的
 +
 +
 +
 +
 +
=优点=
 +
<pre>
 +
除了游戏外,也适用于app api。
 +
ngx+lua+redis 架构模式在高并发的情况下完胜 ngx+php-fpm+php。
 +
再加上有ngx lua模块,ngx天然为Lua提供了web容器的接口,可以做更多容器的事情,例如:
 +
防刷,身份验证等等 </pre>
 +
=进阶 lua源码学习=
 +
 +
[https://zhuanlan.zhihu.com/p/61888678 Lua设计与实现--虚拟机篇]
 +
阅读源代码的次序
 +
 +
    首先、阅读外围的库是如何实现功能扩展的,然后、阅读 Lua 的具体实现。之后、可以开始了解 Lua VM 的实现。接下来就是分别理解函数调用、返回,string,metatable,table实现debug模块是一个额外的设施、最后是parse 等等编译相关的部分。垃圾收集将是最难的部分,可能会花掉最多的时间去理解细节
 +
 +
https://github.com/lichuang/Lua-5.1.4-codedump/tree/master
 +
 +
[https://zhuanlan.zhihu.com/p/295069323 【Lua源码赏析】第一章 阅读源码准备]
 +
 +
 +
 +
[https://www.cnblogs.com/nazhizq/p/6516561.html lua源码学习篇二:语法分析]
 +
 +
 +
[https://blog.csdn.net/initphp/article/details/82703846  Lua源码分析 - 基础篇 - Lua源码的结构和架构图(01)]
 +
 +
[https://blog.csdn.net/maijian/article/details/24355727  详解关于Lua源码分析学习教程]
 +
 +
[https://manistein.github.io/blog/post/program/build-a-lua-interpreter/%E6%9E%84%E5%BB%BAlua%E8%A7%A3%E9%87%8A%E5%99%A8part1/ 构建Lua解释器Part1:虚拟机的基础--Lua基本数据结构、栈和基于栈的C函数调用的设计与实现]
 +
 +
[https://www.zhihu.com/question/20617406 如何学习 Lua VM 的源码]
 +
 +
[https://blog.csdn.net/ayang1986/article/details/8544910 lua源码学习笔记<nowiki>]</nowiki>词法语法分析]
 +
[https://blog.csdn.net/feixiaoxing/article/details/79329913 随想录(lua源码学习)]
 +
 +
[https://blog.csdn.net/tgyd2014/article/details/52083152  lua源码的研究入门之makefile]
 +
[https://www.cnblogs.com/woshizhizhong-tech/p/8397396.html 自己编译lua源码]
 +
 +
[https://www.cnblogs.com/nazhizq/p/6516469.html  lua源码学习篇一:环境部署 ]
 +
 +
https://www.codedump.info/
 +
 +
=see also=
 +
 +
[https://coolshell.cn/articles/10739.html LUA简明教程]
 +
 +
 +
 +
 +
 +
 +
  
  
 
[[category:ops]] [[category:lua]]
 
[[category:ops]] [[category:lua]]

2023年6月12日 (一) 08:35的最新版本

book

有电子书

【Lua篇】《Lua程序设计》全书内容总结

Lua解释器构建:从虚拟机到编译器

install


#os kali 2017
sudo apt install   lua5.1

on freebsd12

运行

evan@bsd-latop:~ % lua52
Lua 5.2.4  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> print("hello,world")
hello,world


把脚本存成一个文件

evan@bsd-latop:~/test % cat hello.lua
#!/usr/local/bin/lua52
print("Hello, World")
evan@bsd-latop:~/test % chmod +x hello.lua
evan@bsd-latop:~/test % ./hello.lua
Hello, World

控制语句

 ./h.lua
sum =	5050

evan@bsd-latop:~/test % cat h.lua
#!/usr/local/bin/lua52
sum = 0
num = 1
while num <= 100 do
    sum = sum + num
    num = num + 1
end
print("sum =",sum)


if-else分支 

函数

函数前面加上local就是局部函数

Table

Lua的下标不是从0开始的,是从1开始的



优点

除了游戏外,也适用于app api。
ngx+lua+redis 架构模式在高并发的情况下完胜 ngx+php-fpm+php。
再加上有ngx lua模块,ngx天然为Lua提供了web容器的接口,可以做更多容器的事情,例如:
防刷,身份验证等等 

进阶 lua源码学习

Lua设计与实现--虚拟机篇

阅读源代码的次序
   首先、阅读外围的库是如何实现功能扩展的,然后、阅读 Lua 的具体实现。之后、可以开始了解 Lua VM 的实现。接下来就是分别理解函数调用、返回,string,metatable,table实现debug模块是一个额外的设施、最后是parse 等等编译相关的部分。垃圾收集将是最难的部分,可能会花掉最多的时间去理解细节

https://github.com/lichuang/Lua-5.1.4-codedump/tree/master

【Lua源码赏析】第一章 阅读源码准备


lua源码学习篇二:语法分析


Lua源码分析 - 基础篇 - Lua源码的结构和架构图(01)

详解关于Lua源码分析学习教程

构建Lua解释器Part1:虚拟机的基础--Lua基本数据结构、栈和基于栈的C函数调用的设计与实现

如何学习 Lua VM 的源码

lua源码学习笔记]词法语法分析 随想录(lua源码学习)

lua源码的研究入门之makefile 自己编译lua源码

lua源码学习篇一:环境部署

https://www.codedump.info/

see also

LUA简明教程