自定向下的递归下降法背景
自定向下的语法分析方法,LL(1)是一种非常直观的方法,它的分析过程是按照句子的定义来进行的,也就是说从开始符出发对要分析的串进行推导,如果推导成功就证明这个被分析的串是一个合法的句子,否则的话就有语法错误,但是在推导过程中,对文法进行了一些限定,保证推导过程是唯一的 。
总体上说,LL(1)就是在选择规则的时候加入了约束条件,考虑到输入流中的第一个符号,以及推导过程中的非终极符的规则选择,只有当头符属于当前Vn为左部的某条规则的Predict 集的时候,才使用该规则进行推导,否则即错。对规则的限定就是说规则要唯一,所以P集交集为空。
构造语法分析器的方法也很简单,分成输入流、分析栈、LL(1)分析表、驱动程序四个部分,构造表的目的是提高分析器的效率,驱动程序中的动作无非4个——替换、查找、成功、失败。这样就把结构用程序描述出来了,得到语法分析器。
能够解决的问题
数据的定义是按递归定义的。如Fibonacci函数。
问题解法按递归算法实现。如Hanoi问题。
数据的结构形式是按递归定义的。如二叉树、广义表等。
上一篇:主线程和子线程是什么意思?主线程是当一个程序启动时的程序吗?
下一篇:最后一页