摘要:要弄清楚什么是词法分析,需要先搞清楚代码是如何执行的。高级编程语言的代码通常需要通过翻译才能被机器执行,而翻译的方式分为两种:
- 解释: 即以源程序为输入,不产生目标程序,一边解释一边执行,比如 javascript
- 编译: 即将源程序翻译为机器语言或者目标语言,再执行,比如C, C++
词法分析属于编译的一部分,也是编译的一个阶段。编译通常被分为两个部分:
1. 编译前端:对源程序进行词法分析,语法分析,语义分析,最终生成中间表现形式,常见的中间表现形式是 AST(抽象语法树)
2. 编译后端:将中间表现形式(AST)转化为目标程序,比如机器语言或者汇编语言。
阅读全文