




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选学习资料 - - - 欢迎下载c 语言小型分析器试验报告一.试验内容与要求内容:挑选部分 c 语言的语法成分,设计其词法分析程序.语法语义分析程序;要求:1.挑选部分 c 语言的语法成分,设计其词法分析程序.语法语义分析程序;2.设计并实现含多条简洁赋值语句的语法分析程序,要求有肯定的出错提示与复原功能; 3.设计并实现将简洁赋值语句翻译成四元式的语法语义分析程序,要求有肯定的出错提示和复原功能;二.设计方案1. 待分析的简化c 语言的词法说明:词法分析程序所输出的单词符号通常表示成如下的二元式:(单词种别,单词自身的值)1. 单词种别单词种别表示单词的种类,它为语法分析需要的信息,一个语
2、言的单词符号如何划分种类,分成几个种类,怎样编码,它主要取决于处理上的便利,通常的方法为让每种单词 对应一个整数码,其目的为最大限度地把各个单词区分开来;基本字可将其全体视为一种,也可以一字一种;采纳一字一种的分法处理起来较为便利;标识符一般统归为一种;常数 可统归为一种,也可以按类型(整型.实型.布尔型等)分种;运算符和界符可采纳一符 一种的分法,也可以统一为一种;2. 单词自身的值单词自身的值为编译中其他阶段所需要的信息;可以采纳以下两种方法来确定它的值;假如一个种别码对应一个单词符号,就种别码可以代表单词自身;假如一个种别码对应多个单词符号,就单词自身值为单词符号的机内码;2.单词符号的
3、种别编码方案:精品学习资料精选学习资料 - - - 欢迎下载表 1 单词种别码单词符号种别码单词符号种别码单词符号种别码main1-23;34int2*24>35char3/25<36if426>=37else527<=38for628=39while729.=40letterletter|digit*10300 1000digitdigit*2031error-1=21、32+22:333.待分析的简化c语言的语法规章说明:程序main 语句块语句块 语句串 语句串语句 ;语句语句赋值语句| 条件语句 | 循环语句赋值语句id=表达式条件语句if 条件语句块循环语句w
4、hile 条件语句块条件(表达式关系符表达式)表达式项 + 项 |- 项项因子 * 因子 |/ 因子因子id | num |(表达式)关系符| | | | | 4.所采纳的语法分析方法的算法思想和主要步骤:精品学习资料精选学习资料 - - - 欢迎下载算法思想:语法分析程序为在词法分析的基础上,依据语法规章,从单词符号串中识别出各种语法成分,同时进行语法检查,检查各种语法成分在语法结构上的正确性;递归下降分析法为确定的自上而下分析法,这种分析法要求文法为1 文法;它的基本思想为,对文法中的每个非终结符编写一个函数(或子程序),每个函数(或子程序)的功能为识别由该非终结符所表示的语法成分;由于描
5、述语言的文法经常为递归定义的,因此相应的这组函数(或子程序)必定以相互递归的方式进行调用,所以将此种分析法称为递归下降分析法;主要步骤:这次的综合试验用的为自上向下分析方法中的递归下降分析法,步骤如下:构造递归下降分析程序时,每个函数名为相应的非终结符,函数体就为依据规章右部符号串的结构编写;(1) 当遇到终结符a 时,就编写语句if (当前读来的输入符号a)读下一个输入符号;(2) 当遇到非终结符a 时,就编写语句调用a();(3) 当遇到 a 规章时,就编写语句if (当前读来的输入符号followa)eror;(4) 当某个非终结符的规章有多个侯选式时,按ll1 文法的条件能唯独地挑选一
6、个侯选式进行推导;5.完成语法制导翻译所用的翻译模式:本程序采纳递归下降语法制导的翻译模式;6.程序的主要算法思想和主要函数的算法思想及流程:词法分析程序的主要算法思想算法的基本任务为从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想为依据扫描到的单词符号的第一个字符的种类,拼出相应的单词符号;精品学习资料精选学习资料 - - - 欢迎下载置初值调用扫描子程序输出单词二元组否输入串终止为终止精品学习资料精选学习资料 - - - 欢迎下载扫描子程序的算法思想图 1词法分析主程序示意图精品学习资料精选学习资料 - - - 欢迎下载变量初始化忽视空格精品学习资料精选学习资料 - - -
7、欢迎下载为否文件终止为返回精品学习资料精选学习资料 - - - 欢迎下载否精品学习资料精选学习资料 - - - 欢迎下载字母数字拼字符串拼数运算符 、界符等符号其他符号精品学习资料精选学习资料 - - - 欢迎下载精品学习资料精选学习资料 - - - 欢迎下载否为否关键字为对不同符号给出相应的 syn 值精品学习资料精选学习资料 - - - 欢迎下载syn=10syn 为对应关键字的单词种别码syn=11报错返回精品学习资料精选学习资料 - - - 欢迎下载图 2词法分析程序流程语法分析程序的算法思想主程序示意图如图3 所示;置初值调用 scaner读下一个单词符号调用 lrparser终止图
8、 3语法分析主程序示意图递归下降分析程序示意图如图4 所示;lrparser否为否单词串main为调用 scaner调用语句块分析函数出错处理否源程序为否终止为打印分析胜利图 4 递归下降分析程序示意图语句块分析过程示意图如图5 所示;否为否 为调用 scaner调用语句串分析过程出错处理否为否 精品学习资料精选学习资料 - - - 欢迎下载图 5 语句块分析示意图语句串分析过程示意图如图6 所示;调用 statement 函数否否为否;为调用 scaner调用 statement 函数出错处理图 6 语句串分析示意图statement 语句 函数流程如图7 所示; expression(表达
9、式)分析过程如图8 所示; term (项)分析过程如图9 所示;condition(条件)分析过程如图10 所示;factor(因子)分析过程如图11 所示;精品学习资料精选学习资料 - - - 欢迎下载精品学习资料精选学习资料 - - - 欢迎下载为否标识符否为否 if否否为否 while精品学习资料精选学习资料 - - - 欢迎下载为为为否 识 符精品学习资料精选学习资料 - - - 欢迎下载调用 scaner否为否 =为调用 scaner调用 expression调用否 s识c符 aner标识符调用 condition调用语句块出错处理调用 scaner调用 condition调用语句
10、块精品学习资料精选学习资料 - - - 欢迎下载图 7 statement函数流程精品学习资料精选学习资料 - - - 欢迎下载调用 term否为否 +.-为调用 factor否为否 * ./为精品学习资料精选学习资料 - - - 欢迎下载精品学习资料精选学习资料 - - - 欢迎下载调用 scaner调用 term出错处理调用 scaner调用 factor出错处理精品学习资料精选学习资料 - - - 欢迎下载图 8 expression分析过程示意图图 9 term分析过程示意图调用 expression否为否规律运算符为精品学习资料精选学习资料 - - - 欢迎下载调用 scaner调用
11、 expression出错处理图 10condition 分析过程示意图精品学习资料精选学习资料 - - - 欢迎下载为为否标识符否为为否数字否为否(否为调用 scaner调用 expression调用 scaner否为否)为精品学习资料精选学习资料 - - - 欢迎下载出错处理调用 scaner精品学习资料精选学习资料 - - - 欢迎下载精品学习资料精选学习资料 - - - 欢迎下载语义分析算法思想设置语义过程int genop、arg1、arg2、result图 11 factor 分析过程示意图精品学习资料精选学习资料 - - - 欢迎下载该函数为将四元式op、arg1、arg2、re
12、sult送到四元式表中;char *newtemp 该函数回送一个新的暂时变量名,暂时变量名产生的次序为t1、t2、. int mergp1、p2该函数将以p1 和 p2 为头指针的两条链合并为一,合并后的链首为返回值;int bpp、t该函数的功能为把p 所链接的每个四元式的第四区段都填为t ;置初值调用 scaner调用 lrparser打印四元式列表终止精品学习资料精选学习资料 - - - 欢迎下载图 12 语义分析主程序示意图三.测试实例1. 测试实例:mainx=12; y=4;z=x+y*3/x;2.测试结果:1、main26、27、30、10、x21、=20、1234、;10、y21、=20、434、;10、z21、=26、10、x22、+10、y27、24、*20、325、/10、x精品学习资料精选学习资料 - - - 欢迎下载34、;31、1000、输入程序的四元组如下所示:1:=、12、x2:=、4、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水阁杨梅山施工方案
- 广告门头施工方案
- 石材粘接施工方案
- 火烧板台阶施工方案
- 桥梁亮化工程施工方案
- 室外管道安装施工方案
- TSJNX 002-2024 西安市水平衡测试报告编制规范
- 二零二五年度物流信息承运合同模板
- 二零二五年度承揽合同中增值税税率变动应对策略
- 二零二五年度交通事故人伤赔偿公益援助协议
- 【特级教师上优课】《黄河颂》名师课件
- 铝合金门窗安装施工工艺详解
- 《包装设计》课件-包装设计发展的历史
- 全国保密宣传教育月课件
- 医疗器械经营企业GSP培训
- 手术出血量的评估
- 语言艺术训练智慧树知到期末考试答案2024年
- 报价单(产品报价单)
- 内镜逆行阑尾炎治疗术
- JJG 633-2024 气体容积式流量计
- 2024年国家社会科学基金年度项目申请书;2024年国家社会科学基金重大项目投标书
评论
0/150
提交评论