编译原理follow集怎么求?例:s->xSNy|Nx;N->zN|空 答案:follow(S)={y,z,#},fol
来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/06 20:45:12
编译原理follow集怎么求?例:s->xSNy|Nx;N->zN|空 答案:follow(S)={y,z,#},follw(N)={x,y}什么时候有#
非S得其他非终结符什么时候有#什么时候没有#?
非S得其他非终结符什么时候有#什么时候没有#?
/>求某一非终结符的follow集,主要看产生式右端(含有该非终结符的右端).
因为S是该文法的开始符,所以#在follow(S)中.在产生式S->xSNy的右端,S的后跟符号是first(Ny),即z和y.这样follow(S)={y,z,#}
求follw(N)时,看产生式S->xSNy和S->Nx,在它们的右端都含有N,根据S->xSNy可知,y在follw(N)中;根据S->Nx可知,x在follw(N)中;这样follw(N)={x,y}
虽然产生式N->zN的右端也含有N,但根据follow集合的定义,将follw(N)加入follw(N)中没有意义,所以不用计算.
对于不是开始符的其他非终结符,其follow集合有没有#,要看产生式的结构(产生式右端).
再问: 这个不是LL(1)文法吧?
再答: 不是。 因为select(S->xSNy)={x} select(S->Nx)={x,z} 两个集合的交集不为空,所以不是LL(1)文法
因为S是该文法的开始符,所以#在follow(S)中.在产生式S->xSNy的右端,S的后跟符号是first(Ny),即z和y.这样follow(S)={y,z,#}
求follw(N)时,看产生式S->xSNy和S->Nx,在它们的右端都含有N,根据S->xSNy可知,y在follw(N)中;根据S->Nx可知,x在follw(N)中;这样follw(N)={x,y}
虽然产生式N->zN的右端也含有N,但根据follow集合的定义,将follw(N)加入follw(N)中没有意义,所以不用计算.
对于不是开始符的其他非终结符,其follow集合有没有#,要看产生式的结构(产生式右端).
再问: 这个不是LL(1)文法吧?
再答: 不是。 因为select(S->xSNy)={x} select(S->Nx)={x,z} 两个集合的交集不为空,所以不是LL(1)文法
编译原理follow集怎么求?例:s->xSNy|Nx;N->zN|空 答案:follow(S)={y,z,#},fol
编译原理 怎么求FOLLOW啊.
怎么求编译原理的FOLLOW集合?
编译原理计算first 集和follow集的简单方法?S->bBS' S'->aAS'|ε A->aB|c B->dB'
follow one's advice.
follow your heart's
follow one's directions
求问短语follow sb's
编译原理语法分析中,求first,follow集合时,要消除左递归吗
帮忙做一下编译原理课程设计(关于FIRST和FOLLOW集合的)
编译原理 设有文法G(S)
Let's follow him.(改为否定句) ____ follow him