作业帮 > 数学 > 作业

编译原理 语法•文法G[S]:S -> a | ^ | ( T ) T -> T ,S | S•

来源:学生作业帮 编辑:拍题作业网作业帮 分类:数学作业 时间:2024/05/01 08:08:04
编译原理 语法
•文法G[S]:
S -> a | ^ | ( T ) T -> T ,S | S
•1.构造识别活前缀的自动机.
•2.证明该文法是LR(0)文法.
•3.给出输入串(a,(a,a))的分析过程.
给我个具体答案吧
编译原理不同教材用的表示不太一样,翻译也五花八门,我不是很确定你这个活前缀是什么意思.我按我知道的告诉你,我用“.”表示状态的位置,你的书上可能通常是一个黑点表示,先要建立文法的状态集合:
S1:S->.a
S2:S->a.
S3:S->.^
S4:S->^.
S5:S->.(T)
S6:S->(.T)
S7:S->(T.)
S8:S->(T).
S9:T->.T,S
S10:T->T.,S
S11:T->T,.S
S12:T->T,S.
S13:T->.S
S14:T->S.
归集状态,和状态转换关系(这应该是要画成图的,这里没法画.)用I表示
I0:S1 S3 S5 S9 S13
输入a,I0->I1
I1:S2
输入^,I0->I2
I2:S4
输入(,I0->I3
I3:S6 S9 S13 S1 S3 S5
归约S,I0->I4
I4:S14
归约T,I0->I5
I5:S10
归约T,I3->I6
I6:S7
输入),I6->I7
I7:S8
输入,I5->I8
I8:S11 S1 S3 S5
归约S,I8->I9
I9:S12
输入a,I8->I1
输入^,I8->I2
输入(,I8->I3
输入a,I3->I1
输入^,I3->I2
输入(,I3->I3
然后你要建立状态转换表,百度不能画表格.,你将就看看( $是结束符啊.还有你的文法没有开始,即S')
先把题目中的规则编个号:
(1) S->a
(2) S->^
(3) S->(T)
(4) T->T,S
(5) T->S
action goto
状态集 a ^ ( ) ,$ S T
0 s1 s2 s3 14 10
1 acc
2 acc
3 s1
因为没有S'不知道最终怎么规约