本文主要是介绍编译原理:代替LR分析法的MP分析法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
LR分析法由Knuth先生于1965年开发。LR分析法存在一个问题:当文法产生式变多,分析表变大之后,占用很多内存。为了接近自然语言编程,需要大量的文法产生式,有可能分析表过大,内存里放不下。
MP分析法,是multi-pass(多遍分析法)。
词法分析和语法分析仍然是分开的,语法分析按照“先乘除后加减”,分成多遍,即MP。
词法分析返回的不是经典《编译原理》中所说的符号串,而是简单的树。所以,词法分析也可以看作是一遍,和语法分析的“多遍”没有本质区别。
文法要怎么写?
level1:词法分析
level2:括号配对
level3:先乘除,E->E*E
level4:后加减,E->E+E
其中,括号配对用数数的方式完成,这需要编写专门的函数。而文法产生式,可以看作是格式化的函数。
编写函数操作树,完成分析。
这篇关于编译原理:代替LR分析法的MP分析法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!