各种logo 设计说明:编译的词法分析中,ε有何用,仅仅是为了画NFA图方便吗?为什么DFA图中没有ε?

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 06:11:35
近期在看人民邮电出版社的《现代编译原理C语言描述》,其中第二章第17页讲词法分析时,在NFA图中有ε,而DFA图却没有。我想问一下ε是否只出现在NFA图中,作用如何,是否仅仅是为了画图方便直观,便于理解?
以上问题请高人指点!

ε只能出现在NFA中,当然不是为了方便直观,而是连通NFA和DFA的桥梁。编译原理讲授的不是如何绘制NFA或者DFA,二是告诉读者怎样能够自动实现NFA或DFA的构造。在实际应用中ε可以帮助计算机转换NFA为DFA,而在属性文法和语法制导阶段,它也是沟通综合属性与继承属性、执行语义动作不可或缺的一部分。另外ε的使用可以大大简化文法产生式的构造难度。我记得最初使用ε是为了使得文法体系(字母表)更加完善,但是在实际应用中却变得应用广泛(此观点不一定正确)。
最后想说的是,在编译中,ε也带来了不小的麻烦,否则也就不会有诸如“去空产生式”这样的算法了:)