研究生复试巩固编译原理
自己给自己出题目
词法分析:字母是元素,组成字符串,记号的集合,线性结构
语法分析:记号是元素,组成句子,句子的集合,树结构
语法分析器构造原理
语法分析器会构造一棵语法分析树,并把它传递给编译器的其他部分进一步处理,在构建语法分析树的过程中,就验证了这个词素序列是否符合源语言的文法
- 自顶向下分析
实质:寻找从开始符号出发到句子的推导序列 - 自底向上分析
实质:寻找从句子出发到开始符号的归约序列
推导:不断替换文法产生式左部的非终结符号,直至全部将非终结符号替换为终结符号的过程
最左推导:总是优先替换产生式左部最左侧的非终结符号
最右推导:总是优先替换产生式左部最右侧的非终结符号(在形式语言中称为规范推导)
二义文法:存在某个句子对应两棵不同的语法树的文法
短语:一个句型的语法树中任一子树叶节点所组成的符号串都是该句型的短语。
直接短语:当子树不包含其他更小的子树时,该子树叶节点所组成的字符串就是该句型的直接短语。
句柄:句柄是最左边的直接短语。
编译过程分为哪几个阶段,其中那些阶段是必不可少的
- 词法分析
- 语法分析
- 语义分析
- 中间代码生成
- 代码优化
- 目标代码生成