河南工业大学-计科1505-编译原理实验一.docVIP

  • 12
  • 0
  • 约6.03千字
  • 约 7页
  • 2022-04-15 发布于广西
  • 举报

河南工业大学-计科1505-编译原理实验一.doc

河南工业大学实验报告 课程名称 编译原理 实验项目 实验一 词法分析 院 系 信息科学与工程学院 专业班级 计科F1505班 姓 名 李 杰 学 号 201516010118 指导老师 阎 娟 日 期 2018.4.16 批改日期 成 绩 实验目的 深入理解有限自动机及其应用 掌握根据语言的词法规则构造识别其单词的有限自动机的方法 3.基本掌握词法分析程序的开发。 实验内容及要求 编制一个能够分析三种整数、标识符和主要关键字的词法分析器。 实验要求 1根据以下的正规式,编制正规文法,画出状态图 标识符 字母(字母|数字字符)* 十进制整数 0 | (1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)* 八进制整数 0(1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)* 十六进制整数 0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)* 关键字 if then else while do 2根据状态图,设计词法分析函数int scan( ),完成以下功能: 1) 从键盘读入数据,分析出一个单词。 2) 返回单词种别(用整数表示), 3) 返回单词属性(不同的属性可以放在不同的全局变量中)。 3编写测试程序,反复调用函数scan( ),输出单词种别和属性。 实验过程 eq \o\ac(○,1)词法的正规式描述 标识符 字母(字母|数字字符)*(ε|_|.)(字母|数字字符)* 十进制整数 (0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)*(ε|.)(0|1|2|3|4|5|6|7|8|9)(0|1|2|3|4|5|6|7|8|9)* 八进制整数 0(1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)* (ε|.)(0|1|2|3|4|5|6|7)(0|1|2|3|4|5|6|7)* 十六进制整数 0x(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)* (ε|.) (0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)(0|1|2|3|4|5|6|7|8|9|a|b|c|d|e|f)* 运算符和分隔符 + - * / = ( ) ; 关键字 if then else while d eq \o\ac(○,2)变换后的正规文法 (1)标识符 设字母的表示符为A(alpha),数字字符的表示符为N(num),则标识符的正规文法可以表示为: id→AI I→ε| AI | NI J→ε|.I (2)十进制数 S→0 | 1A | 2A | 3A | 4A | 5A | 6A | 7A| 8A | 9A A→ε| 1AB | 2AB | 3AB | 4AB | 5AB | 6AB | 7AB | 8AB | 9AB B→ε|.S (3)八进制数 S→0A A→ 0B |1B | 2B | 3B | 4B | 5B | 6B | 7B B→ε| 0BC |1BC | 2BC | 3BC | 4BC | 5BC | 6BC | 7BC C→ε|.A (4)十六进制数 S→0xM | 0XN N→0M|1M |2M |3M |4M |5M |6M |7M |8M |9M |aM |bM |cM |dM |eM |fM |AM|BM|CM|DM|EM|FM| M→ε|0M|R1MR |2MR |3MR |4MR |5MR |6MR |7MR |8MR |9MR |aMR |bMR |cMR |dMR |eMR |fMR |AMR|BMR|CMR|DMR|EMR|FMR| R→ε|.N (5)运算符和分隔符 S→+ | - | * | / | | | = | ( | ) | := | # | ; (6)关键字 S→ if | then | else | while | do | switch | case | for eq \o\ac(○,3)状态图 eq \o\ac(○,4)函数设计 int Iskey(string c){

文档评论(0)

1亿VIP精品文档

相关文档