- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
该设计论文已经通过各大高校老师审核认可并通过答辩,准确完整无误。欢迎大家下载学习交流。如有疑问可随时联系店主,竭诚为您解答!!
目录 一、 总体设计思想 4 1. 词法分析器 4 2. 语法分析器 4 3. 语义分析及中间代码生成 5 二、 详细算法设计(包括分析表设计) 5 1. 变量定义 5 2. DFA图 7 三、 流程框图 9 1. 词法分析器流程框图 9 2. 语法分析器流程框图 10 四、 函数相关说明 11 1. 词法分析器函数 11 2. 语法分析器及语义分析函数 12 3. 语义分析函数 12 五、 输入与输出(包括出错处理) 13 1. 输入与输出 13 2. 出错处理 13 六、 程序运行结果(屏幕截图) 14 七、 编译器使用说明 16 八、 心得与体会 16 总体设计思想 词法分析器 程序分解为输入 程序中需要用到的主要变量为单词种别码 输入以’#’结尾的不超过300 输出二元组(syn,token或sum)构成的序列。 出错处理对错误进行简单的指示并返回错误值中止程序 主程序示意图如下 语法分析器 递归下降分析法是确定的自下而上分析法这种分析法要求文法是LL 构造递归下降分析程序的具体方法 当遇到终结符a时则编写语句 if 当遇到非终结符A时则编写语句调用A 当遇到A if(当前读来的输入符号?FOLLOW(A))error() 当某个非终结符的规则有多个候选式时按LL 语义分析及中间代码生成 递归下降分析制导翻译法的特点是将语义子程序嵌入到每个递归过程中通过递归子程序内部的局部变量和参数传递语义信息 详细算法设计(包括分析表设计) 变量定义 结构体Lexical携带 typedef struct { int p; int syn; double sum; }Lexical; 整变量p作为输入串的指针指向当前处理字符的下一个字符 整变量syn记录单词种别码 整型变量sum,用来存放数值型数据的值。初值为0。 结构体Grammar typedef struct { int syn; string word; double value; }Grammar; //语法输入结构体 结构体 typedef struct { string res; string arg1; string op; string arg2; }D_quad; //四元式 结构体 typedef struct{ int tr; int fa; //chain int q; }varibal; //语义变量 字符型数组prog[300],作为词法分析器 自定义结构体类GString[500],作为法分析器 自定义D结构体类型数组 字符型数组token20],用来存放构成的单词符号的字符串 指针数组char * rwtab[9],用来存放指向保留字的指针 char * rwtab[9] = { main, int, float, double, char, if, else, do, while }; 整变量作为语法输入串的指针指向当前处理字符的下一个字符 整变量pQuad作为四元式数组的指针指向当前处理的下一个 常数整型变量END,作为默认的四元式结束地址,在具体输出时输出为字符串“END”。 DFA图 词法分析器流程框图 语法分析器流程框图 语法分析通用流程框图 词法分析器函数 typedef struct { int p; int syn; double sum; }Lexical; 定义携带返回值的返回体p为输入串指针syn为单词种别sum为输出数字值 int read(char prog[]); int Lexical_analysis(char prog[]); 总控程序(主程序),调用scanner函数进行字符判断。prog为主程序传入的输入字符串地址 Lexical scanner(char prog[], char token[],Lexical local); 识别函数,reserve等函数进行字符判断prog为总控程序传入的输入字符串地址,token为输出传地址,local为单词种别,输入串指针。返回local结构体 int letter(char ch); 字符识别函数传入的待识别字符当ch为a-z或A-Z的字符时返回当ch不为这样的字符时返回 int digit(char ch); 数字识别函数ch为传入的待识别字符当ch为数字字符时返回 Lexical num(char prog[], Lexical local); 数字串处理函数prog为输入字符串地址 int pretreatment(char prog[],int p); 输入预处理函数 int reserve(char token[]); 保留字判断函数int,float,double,char,if,else,do,while这
您可能关注的文档
- 毕业设计(论文)-蛇行多级小车控制系统设计.doc
- 毕业设计(论文)-设计熔模铸造生产用螺旋搅蜡机.doc
- 毕业设计(论文)-社会各界人士对大学生兼职的看法.doc
- 毕业设计(论文)-生产与计划控制系统页面设计与实现.doc
- 毕业设计(论文)-声光控台灯电路设计.doc
- 毕业设计(论文)-声光控制楼道照明灯的设计与制作.doc
- 毕业设计(论文)-湿法烟气脱硫.doc
- 毕业设计(论文)-世博会对上海经济的影响与对策.doc
- 毕业设计(论文)-试论电子商务的竞争优势与要求.doc
- 毕业设计(论文)-试论人力资源成本与控制策略.doc
- 编译原理课程设计-WHILE循环语句的翻译程序设计(LR方法、输出四元式).doc
- 编译原理课程设计-小型程序设计语言编译器的设计与实现.doc
- 变频器课程设计造纸机同步控制系统设计.doc
- 采矿工程毕业设计(论文)-安太堡煤矿6.0MTa矿井设计.doc
- 采矿工程毕业设计(论文)-邢台矿2.4MTa新井设计.doc
- 操作系统课程设计报告-磁盘调度算法的模拟实现.doc
- 操作系统课程设计报告-类Unix文件系统的设计与实现.doc
- 操作系统课程设计报告-线程安全型双向链表的实现.doc
- 操作系统课程设计报告-用高级语言Java设计辅助教学软件(模拟银行家算法).doc
- 操作系统课程设计-页面置换算法程序设计.doc
最近下载
- 安徽蓝盾 YDZX-01型烟气系统操作手册.pdf VIP
- 宠物除臭剂项目立项报告.pptx VIP
- 2024年履行合同催告函(6篇).pdf VIP
- CFD软件:Star-CCM+ 二次开发_(9).Star-CCM+后处理与可视化二次开发.docx VIP
- CFD软件:Star-CCM+ 二次开发_(8).Star-CCM+物理模型与求解器二次开发.docx VIP
- CFD软件:Star-CCM+ 二次开发_(7).Star-CCM+网格生成与优化二次开发.docx VIP
- CFD软件:Star-CCM+ 二次开发_(6).Star-CCM+二次开发API基础.docx VIP
- CFD软件:Star-CCM+ 二次开发_(5).Star-CCM+脚本编写与调试.docx VIP
- CFD软件:Star-CCM+ 二次开发_(4).Star-CCM+二次开发环境搭建.docx VIP
- CFD软件:Star-CCM+ 二次开发_(3).Star-CCM+数据结构与对象模型.docx VIP
文档评论(0)