
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
预测分析表对于LL(1)文法来说,在使用最左推导时,非终结符号的每一步推导使用的产生式是确定的,不用进行试探和回溯。预测分析表的作用:有一个进行语法分析的输入串,开始符号经过最左推导最终与输入串匹配。在匹配过程中,非终结符号需要进行下一步推导时,会根据当前需要匹配的终结符号选择确定的一个产生式。f(需要推导的非终结符号,需要匹配的终结符号)→确定的一个产生式这样的映射关系所组成的矩阵,就是预...
FIRST集1.什么是FIRST集?一个符号的FIRST集表示这个符号可以推导出的句子的首符号的集合。举个例子:A→aa|bb|cc。a,b,c是终结符,则FIRST(A)={a,b,c}通过上面的定义解释一下,符号A可以推导出三个句子{aa,bb,cc},那么,这三个句子的首符号集合FIRST(A)={a,b,c}。2.FIRST集求法再给出最终结论之前,首先看以下的几种情况求一个...
FOLLOW集对于一个非中介符号X,FOLLOW(X)表示推导过程中紧跟在X后的非终结符号的集合,举个例子,在推导过程中如果有形如S⇒αXaβ的推导,则非终结符号a∈FOLLOW(X),因为X后面可能会有多个不同的终结符,但是在这条推导中,我们仅能分析出a∈FOLLOW(X)。1.分析根据X出现的不同位置,可以分为下面的两种情况(1)X是开始符号默认开始符号后有一个“界符”——“#或Ka...
消除左递归为什么要消除左递归?在自顶向下的分析中,如果不消除左递归,就会陷入死循环。例如,在后面要说到的递归向下的分析中,就是一个“从前有座山,山里有个庙…”这样,一直递归下去;使用非递归的时候也是一样,需要计算一个FIRST集合,这个集合本身也是一个递归的计算方式,如果有左递归,同样会无限的递归下去。消除左递归,就是为了可以进行自顶向下的语法分析1.消除直接左递归有如下文法:A→...
三种基本排序(以升序为例)1.冒泡排序思想:每次相邻两个数比较,若升序,则将大的数放到后面,一次循环过后,就会将最大的数放在最后.如图9 3 2 5 8 4 7 6是输入的待排序的数列,经过第一次排序,将最大的9放在最后,第二次排序,将剩下的2 3 5 4 7 6 8进行冒泡,将当前最大的8放在倒数第二的位置,以此类推接下来上代码#include <stdio.h&...







