文法:E->TE' E'->+TE'|ε T->FT' T'->*FT'|ε F->(E)|i 构造上述LL(1)文法的递归下降分析程序
2019-12-21 19:50:31 2KB 自动匹配,follow集
1
第三次上机作业 1. 编写First和Follow函数,实现其求解过程。 (1)FIRST集合计算方法: ① 若Xa.., 则将终结符a加入FIRST(X)中; ② 若X,则将加入FIRST(X)中; ③ 若XY…,且Y属于非终结符,则将FIRST(Y)\{}加入到FIRST(X)中;(注:“\”表示除去元素,即FIRST(Y)中的非元素加入到FIRST(X)中。以下同理。) ④ 若XY1Y2..YK,且Y1,Y2,..Yi-1都是非终结符,且Y1,Y2,..Yi-1的FIRST集合中均包含,则将FIRST(Yj)的所有非元素加入到FIRST(X)中,(j=1,2,..i).特别地,若Y1~YK均有产生式,则将加到FIRST(X)中。 (2)FOLLOW集合计算方法: ① 对文法开始符号S,置$于FOLLOW(S)中。 ② 若有AB,则将FIRST()\{} 加入FOLLOW(B)中。 (此处 可以为空) ③ 若A B 或A B ,且  * (即 属于FIRST()),则将 FOLLOW(A)加入FOLLOW(B)中(此处 可以为空)。 2. 测试文法: A->BCDE B->aBA|ε C->F|ε D->b|c|ε E->e|ε F->d|ε
2019-12-21 19:37:55 7KB 编译原理
1
编译原理课程设计First集和Follow集生成算法模拟 【问题描述】 设计一个由正规文法生成First集和Follow集并进行简化的算法动态模拟 【基本要求】 动态模拟算法的基本功能是: (1) 输入一个文法G; (2) 输出由文法G构造FIRST集的算法; (3) 输出First集; (4) 输出由文法G构造FOLLOW集的算法; (5) 输出FOLLOW集。 【测试数据】 输入文法: E->TE’ E’->+TE’|ε T->FT’ T’->*FT’|εF->(E)|i 含有文件的读取
1
输入任意的上下文无关文法,输出所输入的上下文无关文法一切非终结符的first集合和follow集
2019-12-21 19:27:44 5KB 编译原理 first follow
1