计算机科学与技术中编译原理简答题

什么是移进项目,什么是规约项目
请给出生成C语言语句序列的文法(假定s表示任意一个语句,它为终结符)
能用上下文无关文法生成正规集吗?为什么?
计算first集和follow集对于构造自顶向下的语法分析器有什么作用?
是否可能存在这样一个DFA,它的所有状态都是接受状态,包括其实状态,为什么?

时间有点久记得不太真切,用通俗语言说,希望题主尽量查阅书籍参考资料自行验证理解。

1、什么是移进项目,什么是规约项目

这个是自顶向下和自下向上分析时候用到的。所谓移进就是不处理,所谓规约就是处理,合并,替换。比如当前符合某个正规式左部,就用这个正规式右部替换左部,称为规约。两种操作的目的都是为了分析整体是否符合语法树。

2、请给出生成C语言语句序列的文法(假定s表示任意一个语句,它为终结符)

关于这个,我感觉你描述的不是很清楚,因为C语言文法包含的正规式还是挺多的,如果单指statement的话,
statement_listà
statement
| statement_list statement

Statementà
| compound_statement
| expression_statement
| selection_statement
| iteration_statement
| jump_statement
再配合上相应的终结符。

3、能用上下文无关文法生成正规集吗?为什么?

可以。不过无法保证不含冲突。

4、计算first集和follow集对于构造自顶向下的语法分析器有什么作用?

可以用来排除冲突。例如移进-移进冲突,移进-规约冲突。

5、是否可能存在这样一个DFA,它的所有状态都是接受状态,包括其实状态,为什么?

这个爱莫能助,据我的构想是可以的,但是这样的DFA最终都会成为单一状态DFA。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-08-25
自己看龙书,这都是基础,没人会比书讲得好。追问

书上找不到啊。。

相似回答