- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理语法分析实验报告详解
编译原理实验报告实验名称:编写语法分析程序实验类型:设计性实验指导教师:蒋勇专业班级:软件工程1401姓名:****学号:**********实验地点:东六E座301实验成绩:_________________日期: 2016年5月17日实验一编写词法分析程序实验目的:设计、编写、调试一个递归下降分析程序,实现对词法分析程序提供的单词序列进行语法检查和结构分析。掌握递归下降语法分析方法。巩固理论知识。实验设计:设计原理:对于文法的每一个非终结符U的文法规则是一个识别U的过程定义,为每一个非终结符构造子程序。如果U的右部符号串只有一个候选式则从左到右依次构造U的识别代码。如果U的右部符号串有终结符号,则判断输入的符号是否匹配终结符号,如果相等,则读入下一个符号;如果不相等,则有语法错误,应当报错。如果是非终结符号,则调用非终结符号的子程序即可。如果U的右部有多个候选式,应该根据每个候选式的第一个符号来确定该分支。对于含有ε表达式的文法规则需要判断输入的符号是否在U的FOLLOW集里面。设计方法:文法改造,消除二义性;对含有左递归或者左公因子的文法消除左递归,提取左公因子;求每一个右部符号串的FIRST集合,如果右部含有ε,则需要求出其产生式左部非终结符的FOLLOW集。判断文法是否是LL(1)文法,若不是LL(1)文法,说明文法的复杂性超过自顶向下方法的分析能力。根据改写后的文法设计程序,依据设计原理构造每一个非终结符的子程序。设计过程:改写文法、消除左递归(将左递归改为右递归)、提取左公因子;求出相应的First集和Follow集;设计程序流程图,设计程序;编写程序;框架思路,错误信息输出:对每一个非终结符构造其子程序,设定一个返回值。如果语法分析有错则返回1,没有错误就返回0;对于错误,在程序的相应行数报错。各个非终结符之间依据文法规则调用。每次遇到终结符函数都判断是否匹配当前终结符号,如果不匹配则报错,返回1。如果匹配,则读入下一个符号。实验过程本次实验的TEST语言语法规则:1)program→{declaration_liststatement_list}2)declaration_list→declaration_listdeclaration_stat | ε3)declaration_stat→int ID;4)statement_list→statement_liststatement| ε5)statement→ if_stat|while_stat|for_stat|read_stat |write_stat|compound_stat |expression_stat6)if_stat→ if (expr) statement | if (expr) statement else statement 7)while_stat→ while (expression) statement 8)for_stat→for (expression;expression;expression)statement9)write_stat→write expression;10)read_stat→read ID;11)compound_stat→{statement_list}12)expression_stat→ expression ;|;13) expression → ID=bool_expr|bool_expr14)bool_expr→additive_expr | additive_expr (||=|=|==|!=) additive_expr 15) additive_expr→ additive_expr+term| additive_expr-term| term 16) term → term *factor| term /factor| factor 17) factor →( expression )|ID|NUM将左递归改为右递归:2)declaration_list→declaration_listdeclaration_stat | ε改写后:declaration_list::=declaration_list1declaration_list1:=declaration_statdeclaration_list1|ε4)statement_list→statement_liststatement| ε改写后:statement_list::=statement_list1statement_list1::=statementstatement_list1|ε15) additive_expr→ additive_expr+term| additive_expr-term|
您可能关注的文档
- 绿色环保祝福贺卡详解.ppt
- 绿色施工5.17详解.ppt
- 绿色溶剂介绍详解.ppt
- 缅甸尼姑红粉外衣背后不为人知的故事详解.doc
- 绿藻门、轮藻门和水生维管束植物习见种类鉴别课程详解.ppt
- 绿化施工规范详解.ppt
- 缓控释制剂详解.ppt
- 缓释与控释制剂详解.ppt
- 编写字符界面应用(下)详解.ppt
- 编写证书报告详解.doc
- 2024-2025学年人教版小学数学四年级下册教学计划及进度表.docx
- 2024-2025学年北师大版小学数学二年级下册教学计划及进度表.docx
- 2024-2025学年人教版小学数学五年级下册教学计划及进度表.docx
- 2024-2025学年人教大同版(2024)小学英语三年级下册教学计划.docx
- 2024-2025学年人教精通版(三起)(2024)小学英语三年级下册教学计划.docx
- 2024-2025学年统编版初中道德与法治八年级下册教学计划及进度表.docx
- 2024-2025学年统编版(2024)初中道德与法治七年级下册教学计划及进度表.docx
- 2023-2024学年上海黄埔区中考二模综合测试(物理部分)试卷及答案.pdf
- 2024-2025学年外研版(三起)(2024)小学英语三年级下册教学计划及进度表.docx
- 2025届北京市北京第四中学高三冲刺模拟数学试卷含解析.doc
文档评论(0)