编译原理(语法分析程序设计)(共11页).doc
《编译原理(语法分析程序设计)(共11页).doc》由会员分享,可在线阅读,更多相关《编译原理(语法分析程序设计)(共11页).doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上一、实验内容和目的1. 已知待分析的C语言子集的语法,用EBNF表示如下:(1) main()(2) “” “”(3) ; ;(4) |(5) ID=(6) if(条件)(7) while()(8) (9) +|-(10) *|/ (11) ID|NUM|()(12) |=|=|!=2. 实验目的、要求实现的功能实验目的:编制一个语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析。实验要求:在上机(一)词法分析的基础上,采用递归子程序法或其他适合的语法分析方法,实现其语法分析程序。要求编译后能检查出语法错误。3. 将实验方法改写为适合预测分析法的文
2、法如下:(1) main()(2) (3) ; (3_1) (4) (5) (6) (7) ID=(8) if()(9) while()(10) (11) (11_1) +(11_2)- (11_3) (12) (12_1) * (12_2) / (12_3) (13) ID(14) NUM(15) ()(16) (17) =(18) (19) =(20) =(21) !=4. 求改写后文法的非终结符号的FIRST集和FOLLOW集:非终结符号FIRSTFOLLOWmain# ;ID if while ID if while;ID;if;while;ID NUM ()ID NUM ( = =
3、!= ) ;+ - = = != ) ;ID NUM (+ - = = != ) ;* / + - = = != ) ;ID NUM (* / = = !=ID NUM (5. 根据求得的FIRST集和FOLLOW集构造LL(1)分析表如下:表格内空白的部分表示“出错”,非空白部分表示要压入分析栈中的文法符号,是按照对应产生式的逆序存放的,即当查找分析表时,表格内的内容从左至右依次入栈。专心-专注-专业第3步中改写文法的LL(1)分析表mainifwhileIDNUM()+-*/=!=;#)(main;=ID)(if)(while+-*/IDNUM) (=!=二、所用仪器、材料(设备名称、型号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 语法分析 程序设计 11
限制150内