前言
- 课本: 编译原理(第三版)[王生原、董渊…等编著]
- 习题: 主要习题内容是第一章到第八章,具体内容如下表
章节 | 内容 | 链接 |
---|---|---|
第一章 | 课后部分选择题 | https://blog.csdn.net/Zchengjisihan/article/details/136243955 |
第二章 | 课后部分选择题 | https://blog.csdn.net/Zchengjisihan/article/details/136243955 |
第三章 | 课后习题1(4)、5、9 | https://blog.csdn.net/Zchengjisihan/article/details/136264182 |
第四章 | 课后习题1、2、3 | https://blog.csdn.net/Zchengjisihan/article/details/136264485 |
第五章 | 课后习题1、4 | https://blog.csdn.net/Zchengjisihan/article/details/136264816 |
第六章 | 课后习题11、15 | https://blog.csdn.net/Zchengjisihan/article/details/136276626 |
第七章 | 课后习题2 | https://blog.csdn.net/Zchengjisihan/article/details/136277222 |
第八章 | 课后习题1 | https://blog.csdn.net/Zchengjisihan/article/details/136277222 |
7.2 给定文法G[S]
S → ( L ) ∣ a S\to (L)|a S→(L)∣a
L → L , S ∣ S L\to L,S|S L→L,S∣S
如下是相应于G[S]的一个属性文法(或翻译模式):
S → ( L ) ∣ a S\to (L)|a S→(L)∣a { S . s u m : = L . n u m + 1 ; } \space\space\{S.sum:=L.num +1;\} {S.sum:=L.num+1;}
S → a S\to a S→a { S . s u m : = 0 ; } \space\space\space\space\space\space\space\space\space\{S.sum:=0;\} {S.sum:=0;}
L → L 1 , S L\to L_1,S L→L1,S { L . n u m : = L 1 . n u m + S . n u m ; } \space\space\{L.num:=L_1.num+S.num;\} {L.num:=L1.num+S.num;}
L → S L\to S L→S { L . n u m : = S . n u m ; } \space\space\space\space\space\space\space\space\{L.num:=S.num;\} {L.num:=S.num;}
图7.19分别是输入串 ( a , ( a ) ) (a,(a)) (a,(a))的语法分析树和对应的带标注语法树,但后者的属性值没有标出,试将器标出
8.1 PL/0编译器的符号表采用一个全局的单符号表栈结构。对于下列的PL/0程序片段,当PL/0编译器在处理到第一个call p语句(第7行)以及第二个call p语句(第t行,即过程q的第4行)时,试分别列出每个开作用域中的符号。
结束语
如果有疑问欢迎大家留言讨论,你如果觉得这篇文章对你有帮助可以给我一个免费的赞吗?我们之间的交流是我最大的动力!