编译原理基础 - 用Rust实现Lua解释器

698 人参与 | 时间:2024年04月30日 14:59:56
点击跳转 wubingzheng.github.io
内容

Lua属于解释型语言,我们的目标也是要实现Lua解释器,所以下面只介绍这个类型。在此之前先明确几个名词的含义:


编译(compile),这个名词的含义有点乱。广义上可以指任何将程序从一种计算机程序语言转换到另一种语言计算机语言的过程,比如“编译原理”这个词中的编译,再比如把Lua的源码转换为字节码的过程也可以认为是编译。狭义上特指上述的第一种类型,跟“解释型”相对。再狭义些,特指上述编译型过程的某个阶段,跟预处理、链接等过程并列。本文后续尽量避免使用这个名词。
解释(interpret),特指上述的第二种编译类型,跟“编译型”相对。
解析,是个笼统的概念,而非编译原理的专有名词。可指任何形式的转换,比如理解源码的语义,再比如把字符串解析为数字等。
翻译,对应编译的最广义的概念。
分析,这个词本身是个笼统的概念,但“词法分析”和“语法分析”是编译原理中的专有名词。