2022年北邮计算机科学与技术编译原理语义分析 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年北邮计算机科学与技术编译原理语义分析 .pdf》由会员分享,可在线阅读,更多相关《2022年北邮计算机科学与技术编译原理语义分析 .pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 语义分析程序实验报告 班级: 2010211302 学号: 10211180 姓名:魏乐业 班内序号: 21 一、实验原理与算法分析: (1). 词法分析过程: 将字符流转换为记号流。有效字符为: digit : 0-9 ID symbol : _, a-z, A-Z operator : +, - , *, / , ( , ) 正则表达式: 数字: digit* 标识符: letter(letter|digit)* (2). 语法分析过程: 1. 将文法改写为拓广文法: 1. E - E 2. E - E + T 3. E - E - T 4. E - T 5. T - T * F 6.
2、T - T / F 7. T - F 8. F - id 9. F - ( E ) 10. F - num 在该文法中 , 非终结符号有: E,E,T,F 终结符号有: id,num,+,-,*,/,(,) 2. 求该文法非终结符的FIRST集与 FOLLOW 集: FIRST set: FIRST (E): id num ( FIRST (E): id num ( FIRST (T): id num ( FIRST (F): id num ( FOLLOW set: FOLLOW (E): $ FOLLOW (E): + - ) $ FOLLOW (T): + - * / ) $ FOLLO
3、W (F): + - * / ) $ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 3. 求该文法的LR(0)项目集规范族: CLOUSURE I0 E - .E E - .E+T E - .E-T E - .T T - .T*F T - .T/F T - .F F - .id F - .(E) F - .num CLOUSURE I1 E - E. E - E.+T E - E.-T CLOUSURE I2 E - T.
4、T - T.*F T - T./F CLOUSURE I3 T - F. CLOUSURE I4 F - id. CLOUSURE I5 F - num. CLOUSURE I6 F - (.E) E - .E+T E - .E-T E - .T T - .T*F T - .T/F T - .F F - .id F - .(E) F - .num CLOUSURE I7 E - E+.T T - .T*F T - .T/F T - .F F - .id F - .(E) F - .num CLOUSURE I8 E - E-.T T - .T*F T - .T/F T - .F F - .id
5、 F - .(E) F - .num CLOUSURE I9 T - T*.F F - .id F - .(E) F - .num CLOUSURE I10 T - T/.F F - .id F - .(E) F - .num CLOUSURE I11 F - (E.) E - E.+T E - E.-T CLOUSURE I12 E - E+T. T - T.*F T - T./F CLOUSURE I13 E - E-T. T - T.*F T - T./F CLOUSURE I14 T - T*F. CLOUSURE I15 T - T/F. CLOUSURE I16 F - (E).
6、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 4. 利用识别该文法的所有活前缀的DFA ,构造 ACTION表与 GOTO 表: ACTOIN表: id num + - * / ( ) $ 0 s4 s5 s6 1 s7 s8 acc 2 r3 r3 s9 s10 r3 r3 3 r6 r6 r6 r6 r6 r6 4 r7 r7 r7 r7 r7 r7 5 r9 r9 r9 r9 r9 r9 6 s4 s5 s6 7 s4
7、 s5 s6 8 s4 s5 s6 9 s4 s5 s6 10 s4 s5 s6 11 s7 s8 s16 12 r1 r1 s9 s10 r1 r1 13 r2 r2 s9 s10 r2 r2 14 r4 r4 r4 r4 r4 r4 15 r5 r5 r5 r5 r5 r5 16 r8 r8 r8 r8 r8 r8 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - GOTO 表: E T F 0 1 2 3 1 2 3 4
8、5 6 11 2 3 7 12 3 8 13 3 9 14 10 15 11 12 13 14 15 16 (3). 语义分析过程: 算数表达式求值的语法制导定义: 产生式 语义规则 代码段 E - E return E.val answer=valtop; E - E + T E.val=E.val+T.val valntop=valtop-2+valtop; E - E - T E.val=E.val-T.val valntop=valtop-2-valtop; E - T E.val=T.val T - T * F T.val=T.val*F.val valntop=valtop-2*v
9、altop; T - T / F T.val=T.val/F.val valntop=valtop-2/valtop; T - F T.val=F.val F - id F.val=id.val F - ( E ) F.val=E.val valntop=valtop-1; F - digit F.val=digit.lexval 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 二、程序运行效果: (1) 测试 1: 名师资料
10、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - (2) 测试 2: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 14 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
11、- 第 7 页,共 14 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 14 页 - - - - - - - - - 三、实验程序源代码: #include #include #include #include #define NN 20 #define MAXN 1000 #define INF 9999999 #define ERROR -1 using namespace std; char *token_str=,ID,d
12、igit,+,-,*,/,(,),$; const char *ori_grammer=E - E, E - E + T, E - E - T, E - T, T - T * F, T - T / F, T - F, F - id, F - ( E ), F - digit; enumE_=MAXN+1,E,T,F; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 14 页 - - - - - - - - - enumNUL=0,ID,NUM,ADD,SUB,MUL,DI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年北邮计算机科学与技术编译原理语义分析 2022 年北邮 计算机科学 技术 编译 原理 语义 分析
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内