Lua4.0 正式开始

原创
2015/08/09 13:32
阅读数 368

自己挖的坑,含泪也要填上。

自已做的计划,无论多么艰难,都要付诸实施的。

上一次写博客中断到现在又过去了几个月。

但是,不管怎么样,总算是开始了。


这个版本的编译器和解释器是分开的。

读代码的时候先编译器再解释器,解释器中包含了编译这一步。


先看一下编译大概是个什么过程。

编译把源代码转化为字节码(以及程序中的数据信息),字节码可由虚拟机执行。


字节码可以保存为文件,保存的二进制文件可以直接交给解释器执行。

这样可以省去运行前的编译步骤,以提速,或者做代码保护。

比如,在发布的时候,可以把脚本编译为二进制格式,只发布这个二进制格式的文件。

用户可以自制定二进制格式的文件,以防止反编译。

不过同时要制定二进制格式的读取,以适配自己的自定制格式。

这个步骤就是代码混淆。


编译时,把源代码从文件里读取出来,词法分析,语法分析进而转化为相应的字节码。这个一般学校的编译原理课上都有介绍,不再细说。感兴趣的同学可以自行在网上查找资源,有很多编译器高手在网上相关博文。Lua 的语法分析是个递归下降语法分析器,因为其语法设计的正交性,这也是很多人喜欢 Lua 的一个原因。


代码阅读的顺序是按程序执行的顺序,程序运行到哪儿,代码就看到哪儿。如果有必要,就先分析程序执行所需要的预备代码。遇到不是必需的,就提个问题,挖个坑在放着,到后面再慢慢的填坑。


说了这么多,先挖第一个坑,代码呢?


----------------------------------------

到目前为止的问题:

> 代码呢?

----------------------------------------


展开阅读全文
打赏
0
3 收藏
分享
加载中
晓寒博主

引用来自“陌寻”的评论

无上下文,不知所云
所以呢? 不知道您所指的上下文指的是? 这些算不算呢?http://my.oschina.net/xhan?catalog=51533
2015/08/10 12:42
回复
举报
无上下文,不知所云
2015/08/09 14:24
回复
举报
更多评论
打赏
2 评论
3 收藏
0
分享
在线直播报名
返回顶部
顶部