欢迎来到天天文库
浏览记录
ID:14881334
大小:465.00 KB
页数:47页
时间:2018-07-30
《付想-pl0编译器扩展课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、课程设计(论文)PL/0编译器扩展系别:计算机科学与技术系专业(班级):计算机科学与技术10级本科2班作者(学号):付想(51002012038)指导教师:邹青青完成日期:2013年12月23日蚌埠学院教务目录一.课程设计目的与要求21、课程设计目的22、课程设计要求2二.实验环境与工具2三.课程设计内容21.PL/0语言介绍22.扩展要求33.扩展分析3四.结构设计方案41.结构设计说明:42.各功能模块图示:43.模块结构44.各功能模块作用表:55.符号名字表结构:66.保留关键字枚举结构:67.名字表中标识符枚
2、举类型:68.虚拟机79.运行时存储组织和管理710.扩充部分语法描述图:811.扩充赋值运算:+=和-=设计:912.扩充语句(Pascal的FOR语句)1013.增加运算:++和--:13五.程序测试195.1扩充赋值运算:+=和-=195.2扩充语句(Pascal的FOR语句):195.3增加运算:++和--。21六.实验总结22参考文献23附录源代码2346一.课程设计目的与要求1、课程设计目的《编译原理》课程设计是编译原理课程必不可少的一个环节,通过课程设计,加深对编译原理的教学内容的了解,以及实现编译原理各
3、部分知识的融合。进而提高学生分析问题、解决问题,从而运用所学知识解决实际问题的能力。在分析理解一个教学型编译程序(如PL/0)的基础上,对其词法分析程序、语法分析程序和语义处理程序进行部分修改扩充。达到进一步了解程序编译过程的基本原理和基本实现方法的目的。2、课程设计要求1.明确课设任务,复习与查阅有关资料。2.按要求完成课设内容,课设报告要求文字和图工整、思路清楚、正确。3.注意增强程序界面的友好性。凡用户输入时,给出足够的提示信息使用户感到方便使用。4.注意提高程序的可读性和可理解性:程序中应有适当的注释,变量命名
4、应符合实际含义,程序结构清晰,易于阅读和理解。二.实验环境与工具1.计算机及操作系统:PC机,WindowsXP2.程序设计语言:VC++6.0,C/C++语言3.教学型编译程序:PL/0三.课程设计内容1.PL/0语言介绍PL/0程序设计语言是一个较简单的语言,它以赋值语句为基础,构造概念有顺序、条件和重复(循环)三种。PL/0有子程序概念,包括过程定义(可以嵌套)与调用且有局部变量说明。PL/0中唯一的数据类型是整型,可以用来说明该类型的常量和变量。当然PL/0也具有通常的算术运算和关系运算。462.扩展要求(1)
5、扩展一维数组var变量名[上界:下界](2)扩展IF。。。ELSE(3)扩展++,--(4)扩展+=,-=(5)扩展Repeat。。。Untill(DoWhile)3.扩展分析扩充语句的语法描述图如图3-1所示:图3-1扩充语句语法描述图A++和A—的语法描述图如图3-2所示:图3-2A++和A—的语法描述图++A和—A的语法描述图如图3-3所示:语句:图3-3++A和—A的语法描述图46四.结构设计方案1.结构设计说明:PL/0的编译程序以语法分析程序为核心,词法分析程序和代码生成程序都作为一个独立的过程,当语法分析
6、需要读单词时就用词法分析程序,而当语法分析正确需生成相应的目标代码时,则调用代码生成程序。此外,用表格管理程序建立变量,常量和过程标识符的说明与引用之间的信息联系。用出错处理程序对词法和语法分析遇到的错误给出在源程序中出错的位置和错误性质。2.各功能模块图示:各功能模块如图4-1所示:图4-1各功能模块图3.模块结构对各种类型的管理;对返回值的处理;对for语句的处理;对case语句的处理;主要模块的调用关系如下图4-2所示:46maininitclosein_setprinterrgenecodefilltables
7、et_combinationset_multipleset_substrackgetsymsenanticgetchdeal_expressiondeal_termdeal_statementdeal_conditiondeal_factordeal_constantdeal_vartestinterpret_exec图4-2模块结构图4.各功能模块作用表:各功能模块作用表如下表所示:1PL0主程序2Error出错处理,打印出错位置和错误编码3GetCh漏掉空格,读取一个字符4GetSym词法分析,读取一个单词5Gen
8、生成目标代码,并送入目标程序区6TEST测试当前单词符号是否合法7ENTER登录名字表8POSITION查找标识符在名字表中的位置9ConstDeclaration常量定义处理10VarDeclaration变量说明处理11ListCode列出目标代码清单12FACTOR因子处理13TERM项处理4614EXPRESSION表达式
此文档下载收益归作者所有