其他分享
首页 > 其他分享> > 编译原理: FIRST(x) FOLLOW(x) SELECT(x)的计算

编译原理: FIRST(x) FOLLOW(x) SELECT(x)的计算

作者:互联网

目录

FIRST的计算

first表示的是串首终结符
计算方法比较简单:

例子:

表达式 FIRST集合
E->TE' ( 、id
E'->+TE'|ε +、 ε
T->FT' ( 、id,
T'->*FT'|ε * 、ε
F->(E)|id ( 、id

演算步骤:

结束了

FOLLOW的计算

FOLLOW比较复杂:

表达式 FIRST集合 FOLLOW集合
E->TE' ( 、id $ 、)
E'->+TE'|ε +、 ε $ 、)
T->FT' ( 、id, +、$ 、)
T'->*FT'|ε * 、ε +、$ 、)
F->(E)|id ( 、id *、+、$ 、)

运算过程

SELECT的计算

SELECT的计算更为简单:


刚才计算的结果如下:

表达式 FIRST集合 FOLLOW集合
E ( 、id $ 、)
E' +、 ε $ 、)
T ( 、id, +、$ 、)
T' * 、ε +、$ 、)
F ( 、id *、+、$ 、)

可以按照上面的方法很容易得到SELECT集

表达式 SELECT集合
E->TE' ( 、id
E'->+TE' +
E'->ε $ 、)
T->FT' ( 、id
T'->*FT' *
T'->ε +、$ 、)
F->(E) (
F->id id

记住,写的时候需要全都拆开

标签:终结符,FT,集合,FOLLOW,TE,id,SELECT,FIRST
来源: https://www.cnblogs.com/Zeker62/p/15350306.html