编译原理课程设计报告
《编译原理课程设计报告》由会员分享,可在线阅读,更多相关《编译原理课程设计报告(19页珍藏版)》请在毕设资料网上搜索。
1、 编译原理 课程设计报告 一完成内容 1. 扩充*=和/=语句 2. 扩充 for 语句,可双方向逼近 step 3. 增加类型: 字符类型; 实数类型。 二设计思路 1. 扩充扩充*=和和/=语句语句 1)产生式以及产生式以及语法描述图语法描述图 赋值语句:= := 赋值语句赋值语句ident:=表达式 ident*=表达式 ident/=表达式 2)写出递归下降子程序)写出递归下降子程序 T() /表示赋值语句函数 Expression()/计算表达式的值并返回 T() getsym(); if(sym=ident) getsym(); if(sym=”:=”) ident=Express
2、ion(); else if(sym=”*=”) ident=ident*=Expression(); else if(sym=”/=”) ident=ident/=Expression(); else error(); 3)举例设计语句的)举例设计语句的 pcode 代码代码 源程序: pcode 代码 4)在递归下降子程序中增加语义动作在递归下降子程序中增加语义动作 T() getsym(); if(sym=ident) getsym(); if(sym=”:=”) ident=Expression(); else if(sym=”*=”) ident=ident*=Expression(
3、); else if(sym=”/=”) ident=ident/=Expression(); else error(); 关键代码: getsymdo; if(sym=becomes) getsymdo; /num保存了值 memcpy(nxtlev,fsys,sizeof(bool)* symnum); expressiondo(nxtlev,ptx,lev); /计算表达式 if(i!=0) gendo(sto,lev-tablei.level,tablei.adr);/把栈顶的值 赋值 else if(sym=timesequal)/乘等 getsymdo; /num保存了值,值在栈顶
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 课程设计 报告
