- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理实验报告 NUMPAGES 11 语法分析 实验题目 编写程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析。 实验内容和要求 1. 要求程序至少能分析的语言的内容有: 变量说明语句 赋值语句 条件转移语句 表达式(算术表达式和逻辑表达式) 循环语句 过程调用语句 2. 此外要处理:包括依据文法对句子进行分析;出错处理;输出结果的构造。 3. 输入输出的格式: 输入:单词文件(词法分析的结果) 输出:语法成分列表或语法树(都用文件表示),错误文件(对于不合文法的句子)。 实现方法:可以采用递归下降分析法,LL(1)分析法,算符优先法或LR分析法的任何一种,也可以针对不同的句子采用不同的分析方法。 实验分析与设计过程 待分析的C语言子集的语法: 该语法为一个缩减了的C语言文法,估计是整个C语言所有文法的60%(各种关键字的定义都和词法分析中的一样),具体的文法如下: 语法: 100: program - declaration_list 101: declaration_list - declaration_list declaration | declaration 102: declaration - var_declaration|fun_declaration 103: var_declaration - type_specifier ID;|type_specifier ID[NUM]; 104: type_specifier - int|void|float|char|long|double| 105: fun_declaration - type_specifier ID (params)|compound_stmt 106: params - params_list|void 107: param_list -param_list,param|param 108: param - type-spectifier ID|type_specifier ID[] 109: compound_stmt - {local_declarations statement_list} 110: local_declarations - local_declarations var_declaration|empty 111: statement_list - statement_list statement|empty 112: statement - epresion_stmt|compound_stmt |selection_stmt|iteration_stmt|return_stmt 113: expression_stmt - expression;|; 114: selection_stmt - if{expression)statement |if(expression)statement else statement 115: iteration_stmt - while{expression)statement 116: return_stmt - return;|return expression; 117: expression - var = expression|simple-expression 118: var - ID |ID[expression] 119: simple_expression - additive_expression relop additive_expression|additive_expression 120: relop - =|||=|= =|!= 121: additive_expression - additive_expression addop term | term 122: addop - + | - 123: term - term mulop factor | factor 124: mulop - *|/ 125: factor - (expression)|var|call|NUM 126: call - ID(args) 127: args - arg_list|empty 128: arg_list - arg_list,expression|expression 该文法满足了实验的要求,而且多了很多的内容,相当于一个小型的文法 说明:把文法标号从100到128是为了程序中便于找到原来的文法。 实现方法的选择: 因为时间的问题,我选择了递归下降的方法进行开发。 消除左递归 因为递归下降要求文法中不能出现有左递归的产生式,因此必须把待分析的C语言子集的语法中带有左递归的都消除左递归。其中产生式10
有哪些信誉好的足球投注网站
文档评论(0)