已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
报告成绩实 验 报 告项目名称 PL/0语言的扩充 学 院 计算机学院 专业班级 09软件工程1班 学 号 3109006291 姓 名 姚振威 指导教师 李小妹 程序功能完成情况测试用例全面程度学生对所编程序熟悉程度报告格式是否与要求相符报告内容是否准确、全面2011 年 12 月 28 日实验一:增加单词 一、 实验目的与要求在分析理解一个教学型编译程序(如PL/0)的基础上,对其词法分析程序。二、 实验内容增加单词:保留字 ELSE,FOR,TO,DOWNTO,RETURN运算符 +=,-=,+,-,&,|,!实验平台(1)计算机及操作系统:PC机,Windows7(2)程序设计语言:C+Builder(3)集成环境:C+Builder (4)教学型编译程序:PL/0三、 设计方法首先要扩展SYMBOL,在此基础上再进行其它细节的修改。要添加的SYMBOL为:typedef enum NUL, IDENT, NUMBER, PLUS, MINUS, TIMES, SLASH, ODDSYM, EQL, NEQ, LSS, LEQ, GTR, GEQ, LPAREN, RPAREN, COMMA, SEMICOLON, PERIOD, BECOMES, BEGINSYM, ENDSYM, IFSYM, THENSYM, WHILESYM, WRITESYM, READSYM, DOSYM, CALLSYM, CONSTSYM, VARSYM, PROCSYM, PROGSYM, , ELSESYM,FORSYM, TOSYM, DOWNTOSYM, RETURNSYM, PLUSBECOMES,MINUSBECOMES, DPLUS, DMINUS,AND,OR,NOT SYMBOL;char *SYMOUT = NUL, IDENT, NUMBER, PLUS, MINUS, TIMES, SLASH, ODDSYM, EQL, NEQ, LSS, LEQ, GTR, GEQ, LPAREN, RPAREN, COMMA, SEMICOLON, PERIOD, BECOMES, BEGINSYM, ENDSYM, IFSYM, THENSYM, WHILESYM, WRITESYM, READSYM, DOSYM, CALLSYM, CONSTSYM, VARSYM, PROCSYM, PROGSYM, ELSESYM,FORSYM, TOSYM, DOWNTOSYM, RETURNSYM, PLUSBECOMES,MINUSBECOMES, DPLUS, DMINUS ,AND,OR,NOT ;其中红斜体为新加入的SYMBOL。再将ELSESYM,FORSYM, TOSYM, DOWNTOSYM, RETURNSYM, PLUSBECOMES,MINUSBECOMES, DPLUS, DMINUS关键字加到KWORD和将相应的SYM加到WSYM,按字母顺序排列。以及修改NEQ 后如下for (CH= ; CH=; CH+) SSYMCH=NUL; strcpy(KWORD 1,BEGIN); strcpy(KWORD 2,CALL); strcpy(KWORD 3,CONST); strcpy(KWORD 4,DO); strcpy(KWORD 5,DOWNTO);strcpy(KWORD 6,ELSE); strcpy(KWORD 7,END); strcpy(KWORD 8,FOR); strcpy(KWORD 9,IF);strcpy(KWORD10,ODD); strcpy(KWORD11,PROCEDURE);strcpy(KWORD12,PROGRAM); strcpy(KWORD13,READ);strcpy(KWORD14,RETURN); strcpy(KWORD15,THEN); strcpy(KWORD16,TO); strcpy(KWORD17,VAR);strcpy(KWORD18,WHILE); strcpy(KWORD19,WRITE); WSYM 1=BEGINSYM; WSYM 2=CALLSYM; WSYM 3=CONSTSYM; WSYM 4=DOSYM; WSYM 5=DOWNTOSYM; WSYM 6=ELSESYM; WSYM 7=ENDSYM; WSYM 8=FORSYM; WSYM 9=IFSYM; WSYM10=ODDSYM; WSYM11=PROCSYM; WSYM12=PROGSYM; WSYM13=READSYM; WSYM14=RETURNSYM; WSYM15=THENSYM; WSYM16=TOSYM; WSYM17=VARSYM; WSYM18=WHILESYM; WSYM19=WRITESYM; SSYM+=PLUS; SSYM-=MINUS;/用于SYM=SSYMCH; SSYM*=TIMES; SSYM/=SLASH; SSYM(=LPAREN; SSYM)=RPAREN; SSYM=EQL; SSYM,=COMMA; SSYM.=PERIOD; / SSYM#=NEQ;/不等号#改为,#用不上删除 SSYM;=SEMICOLON;SSYM&=AND; SSYM|=OR; SSYM!=NOT; strcpy(MNEMONICLIT,LIT); strcpy(MNEMONICOPR,OPR); strcpy(MNEMONICLOD,LOD); strcpy(MNEMONICSTO,STO); strcpy(MNEMONICCAL,CAL); strcpy(MNEMONICINI,INI); strcpy(MNEMONICJMP,JMP); strcpy(MNEMONICJPC,JPC);因为保留字增加了5个,所以令const NORW = 19;SYMBOL由原来的33个值扩展为目前的42个值,SYMOUT也由原来的33个元素扩展为目前的42个元素.我用个SYMMAX来记录SYMBOL值的个数, 所以,在与单词个数有关的函数中,用“SYMMAX”替代“33”,即除了Error函数中可能出现的作为参数的“33”不被替换为“42”外,其余的“33”均用“SYMMAX”来替换。如:S=(SYMSET)malloc(sizeof(int)*SYMMAX);for (i=0; iSYMMAX; i+) Si=0;SYMBOL扩展完毕。对运算符 +=,- =,+,-词法分析增添:if(CH=+) GetCh(); if(CH=) SYM=PLUSEQ; GetCh(); else if(CH=+) SYM=PLUSSF; GetCh(); else SYM=PLUS; else if(CH=-) GetCh(); if(CH=) SYM=MINUSEQ; GetCh(); else if(CH=-) SYM=MINUSSF; GetCh(); else SYM=MINUS; 四、 心得体会熟悉了PL0的词法分析,即Getch()修改和添加。设计前感觉很简单,但当自己动手去做后才发现挺多要注意的细节的东西。实验二:修改单词 一、 实验目的与要求在分析理解一个教学型编译程序(如PL/0)的基础上,进一步对词法分析程序理解,扩充。二、 实验内容修改单词:不等号# 改为 (NEQ)实验平台(1)计算机及操作系统:PC机,Windows7(2)程序设计语言:C+Builder(3)集成环境:C+Builder (4)教学型编译程序:PL/0三、 设计方法只要修改GetSym()函数。当编译器检测到当前字符为“”时,接着检测下一个字符,如果是“”,则使SYM=NEQ。代码修改如下:if (CH=) SYM=NEQ; GetCh(); else SYM=LSS;同时SSYM#=NEQ;用不上可删除。四、 测试五、 心得体会有实验一的基础,本实验相对来说很简单,只要像实验一一样在Getsym()里面修改一下就可以了。实验三::增加条件语句的ELSE子句 一、 实验目的与要求在前两个实验的基础上,实现ELSE语句的语法语义扩充。二、 实验内容增加条件语句的ELSE子句,要求:写出相关文法,语法图,语义规则。实验平台(1)计算机及操作系统:PC机,Windows7(2)程序设计语言:C+Builder(3)集成环境:C+Builder (4)教学型编译程序:PL/0三、 设计方法该条件语法描述图如下:只要在STATEMENT修改如下代码:case IFSYM:GetSym();CONDITION(SymSetUnion(SymSetNew(THENSYM,DOSYM),FSYS),LEV,TX);if (SYM=THENSYM) GetSym();else Error(16);CX1=CX; GEN(JPC,0,0);STATEMENT(SymSetUnion(SymSetNew(ELSESYM,DOSYM),FSYS),LEV,TX); CODECX1.A=CX; /没有ELSE时候CX1的回填 if (SYM=ELSESYM) GetSym(); CX2=CX; GEN(JMP,0,0);/执
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年武汉市黄陂区事业单位人员招聘笔试备考试题及答案详解
- 2026年连云港市连云区公务员人员招聘考试模拟试题及答案详解
- 2026年山东省泰安市公务员人员招聘笔试参考题库及答案详解
- 2025-2026学年光荣的少年说课稿
- 2026年渝中区公务员人员招聘考试备考题库及答案详解
- 2026金湖县临时性公益性岗位招聘20人笔试备考试题及答案解析
- 2026年南昌市青云谱区公务员人员招聘考试参考题库及答案详解
- 2025-2026学年初中英语全英文说课稿模板
- 高中生物学人教版(2019)选择性必修三 3.3 基因工程的应用 同步检测(含答案)
- 2026年兰州市城关区公务员人员招聘笔试模拟试题及答案详解
- 2026年迪庆州德钦县国投(集团)公司及下属二级公司工作人员招聘(25人)笔试备考题库及答案详解
- 2026年人教版新教材数学五年级上册全套单元、期中、期末测试题及答案(共10套题)
- 2026年广东省中考语文现代文《我心中的刘禹锡》批注式阅读
- 2026年(完整版)计算机控制技术试卷及答案
- 2025宁波慈溪观海卫镇人民政府公开招聘编外工作人员10人备考题库含答案详解(突破训练)
- 建筑垃圾及废弃物破碎项目环境影响报告表
- 感染科医院感染防控管理方案
- 建筑安装工程工期定额
- DB6107T 11.9-2019 天麻标准综合体 第9部分:天麻产地初加工技术规程
- 初中身体素质训练教案
- 4输变电工程施工质量验收统一表式(电缆工程电气专业)-2024年版
评论
0/150
提交评论