编译原理面试题
1、什么是语法分析?
识别由词法分析给出的单词符号串是否是给定文法的正确句子(程序)
2、什么是自顶向下分析法?
- 面向目标的分析方法
- 也就是从文法的开始符号企图推导出与输入的单词符号串完全相匹配的句子,若是输入串是给定文法的句子,则必能推导出,反之则必然出错。
3、在自顶向下的分析过程中,存在的问题是什么?
需对文法有一定限制
4、什么是确定的自顶向下分析法?
- 定义: 确定的自顶向下分析方法,是从文法的开始符号出发,考虑如何根据当前的输入符号 (单词符号)唯一地确定选用哪个产生式替换相应非终结符以往下推导,或如何构造一棵相 应的语法树。
- 特点:实现方法简单、直观,便于手工构造或自动生成语法分析器,是最常用的语法分析方法之一
- 区别:自顶向下的不确定分析方法是带回溯的分析方法
5、存在的问题
当一个非终结符号对应若干个规则时,选择哪个规则的右部对该非终结符号进行展开呢?
例如:如果要被代换的最左非终结符号是U,且有n条规则:U::=A1|A2|…|An,那么如何确定用哪个规则的右部去替代U?