《编译技术》笔记
编译概述
前端:与源语言有关而与目标机器无关的部分(分析部分),通常包括词法分析、语法分析、符号表建立、语义分析和中间代码生成
后端:与目标机器有关的部分(综合部分),一般与源语言无关,仅仅依赖于中间语言。通常包括与机器相关的代码优化、目标代码生成
文法,语言
介绍编译所涉及的形式语言理论的基本概念。
文法和语言的形式定义
- 规则:规定用”::=”表示产生式(由…组成)对(U, x), 通常写为U ::= x 或U → x
- 用规则推导句子:不断地用规则右部替代左部(最左推导从左向右替代、最右推导),直到句子只包含终结符
- 文法(描述规定语言结构):G=(Vn, Vt, P, Z)
- Vn:非终结符
- Vt:终结符
- P:规则的集合
- Z:开始符号,Z∈Vn
- 句型:通过原始Z可以推导出的序列。
- 语言:L(G)={w|w∈Vt*, Z=>w} 已知文法可以通过推导得到语言(句子的集合)
- 句型:通过画出句型的语法树,可以方便地找到句型的短语(句型的某个非终结符所能推出的符号串),简单短语,句柄(最左简单短语)
- 语法树:把一个推导用树形图展开
词法分析
程序:字符串
正则文法和状态图
语法分析
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 魔法使的后花园!