编译实验.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译实验

SAMPLE语言定义 字符集定义 字符集 → 字母│数字│单界符 字母 → A│B│…│Z│a│b│…│z 数字 → 0│1│2│…│9 单界符 → +│-│*│/│=│││(│)│[│]│:│. │; │, │ 单词集定义 5.单词集 → 保留字│双界符│标识符│常数│单界符 6.保留字 → and│array│begin│bool│call│case│char│constant│dim│do│else│end│false│for│if│input│integer│not│of│or│output│procedure│program│read│real│repeat│set│stop│then│to│true│until│var│while│write 7.双界符 → │=│=│:= │/*│*/│.. 8.标识符 → 字母│标识符 数字│标识符 字母 9.常数 → 整数│布尔常数│字符常数 10.整数 → 数字│整数 数字 11.布尔常数 → true│false 12.字符常数 → 除 {} 外的任意字符串 数据类型定义 13.类型 → integer│bool│char 表达式定义 14.表达式 → 算术表达式│布尔表达式│字符表达式 15.算术表达式 → 算术表达式 + 项│算术表达式 - 项│项 16.项 → 项 * 因子│项 / 因子│因子 17.因子 → 算术量│- 因子 18.算术量 → 整数│标识符│( 算术表达式 ) 19.布尔表达式 → 布尔表达式 or 布尔项│布尔项 20.布尔项 → 布尔项 and 布因子│布因子 21.布因子 → 布尔量│not 布因子 22.布尔量 → 布尔常量│标识符│( 布尔表达式 )│ 标识符 关系符 标识符│算术表达式 关系符 算术表达式 23.关系符 → ││=│=││= 24.字符表达式 → 字符常数│标识符 语句定义 25.语句 → 赋值句│if句│while句│repeat句│复合句 26.赋值句 → 标识符 := 算术表达式 27.if句→ if 布尔表达式 then 语句│if 布尔表达式 then 语句 else 语句 28.while句 → while 布尔表达式 do 语句 29.repeat句 → repeat 语句 until 布尔表达式 30.复合句 → begin 语句表 end 31.语句表 → 语句 ;语句表│语句 程序定义 32.程序 → program 标识符 ;变量说明 复合语句 . 33.变量说明 → var 变量定义│ε 34.变量定义 → 标识符表 :类型 ;变量定义│标识符表 :类型 ; 35.标识符表 → 标识符 ,标识符表│标识符 SIMPLE语言单词编码 单 词 种别码 单 词 种别码 单 词 种别码 and 1 output 21 * 41 array 2 procedure 22 */ 42 begin 3 program 23 + 43 bool 4 read 24 , 44 call 5 real 25 - 45 case 6 repeat 26 . 46 char 7 set 27 .. 47 constant 8 stop 28 / 48 dim 9 then 29 /* 49 do 10 to 30 : 50 else 11 true 31 := 51 end 12 until 32 ; 52 false 13 var 33 53 for 14 while 34 = 54 if 15 write 35 55 input 16 标识符 36 = 56 integer 17 整数 37 57 not 18 字符常数 38 = 58 of 19 ( 39 [ 59 or 20 ) 40 ] 60 实验一:设计SAMPLE语言的词法分析器 检查要求: 启动程序后,先输出作者姓名、班级、学号(可用汉语、英语或拼音); 请求输入测试程序名,键入程序名后自动开始词法分析并输出结果; 输出结果为单词的二元式序列(样式见样板输出1和2); 要求能发现下列词法错误和指出错误性质和位置: 非法字符,即不是SAMPLE字符集的符号; 字符常数缺右边的单引号(字符常数要求左、右边用单引号界定,不能跨行); 注释部分缺右边的界符*/(注释要求左右边分别用/*和*/界定,不能跨行)。 实验一测试程序与样板输出 测试程序1: 程序名TEST1 and array begin bool call case char constant dim do else end false

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档