我们所介绍的分析算法都称之为从左到右的分析算法,即总是从左到右地识别输入符号串,首先识别符号串中的最左符号,进而识别右边的一个符号。当然也可以定义从右向左的分析算法,但从左到右的分析更为自然,因为程序是从左到右地书写与阅读的。 这种分析算法又可分成两大类,即自上而下的和自下而上的。所谓自上而下分析法,是从文法的开始符号出发,反复使用各种产生式,寻找"匹配"于输入符号串的推导。自下而上的方法,则是从输入符号串开始,逐步进行"归约",直至归约到文法的开始符号。从语法树建立的方式可以很好理解这两类方法的区别。自上而下方法是从文法符号开始,将它做为语法树的根,向下逐步建立语法树,使语法树的末端结点符号串正好是输入符号串;自下而上方法则是从输入符号串开始,以它做为语法树的末端结点符号串,自底向上地构造语法树。 |