文件名称:软件学院编译原理第二次上机求first和follow集
文件大小:7KB
文件格式:CPP
更新时间:2020-07-05 12:34:05
编译原理
第三次上机作业 1. 编写First和Follow函数,实现其求解过程。 (1)FIRST集合计算方法: ① 若Xa.., 则将终结符a加入FIRST(X)中; ② 若X,则将加入FIRST(X)中; ③ 若XY…,且Y属于非终结符,则将FIRST(Y)\{}加入到FIRST(X)中;(注:“\”表示除去元素,即FIRST(Y)中的非元素加入到FIRST(X)中。以下同理。) ④ 若XY1Y2..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)中。 ② 若有AB,则将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|ε