编译原理实验最新.pdfVIP

  • 4
  • 0
  • 约3.49万字
  • 约 32页
  • 2020-09-25 发布于安徽
  • 举报
编译原理实验报告 实验一 词法分析 一、 实验目的 编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词, 即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内 部编码及单词符号自身值。 二、 实验题目 如源程序为C 语言。输入如下一段: main() { int a=-5,b=4,j; if(a=b) j=a-b; else j=b-a; } 要求输出如下: (2,”main” ) (5,” (” ) (5,” )” ) (5,”{” ) (1,”int” ) (2,”a” ) (4,”=” ) (3 ,”-5” ) (5,”,” ) (2,”b” ) (4,”=” ) (3 ,”4” ) (5,”,” ) (2,”j” ) (5,”;” ) (1,”if” ) (5,” (” ) (2,”a” ) (4,”=” ) (2,”b” ) (5,” )” ) (2,”j” ) (4,”=” ) (2,”a” ) (4,”-” ) (2,”b” ) (5,”;” ) (1,”else” ) (2,”j” ) (4,”=” ) (2,”b” ) (4,”-” ) (2,”a” ) (5,”;” ) (5,”}” ) 三、 实验理论依据 (一)识别各种单词符号 程序语言的单词符号一般分为五种: 第 1 页 共 30 页 编译原理实验报告 关键字(保留字/ 基本字)if 、while 、begin… 标识符:常量名、变量名… 常数:34 、56.78 、true 、‘a’ 、… 运算符:+ 、- 、* 、/ 、〈、and 、or 、…. 界限符:, ; ( ) { } /*… 识别单词:掌握单词的构成规则很重要 标识符的识别:字母| 下划线+( 字母/ 数字/ 下划线) 关键字的识别:与标识符相同,最后查表 常数的识别 界符和算符的识别 大多数程序设计语言的单词符号都可以用转换图来识别,如图1-1 图1-1 词法分析器输出的单词符号常常表示为二元式:(单词种别,单词符号的属性 值) 第 2 页 共 30 页 编译原理实验报告 单词种别通常用整数编码,如1 代表关键字,2 代表标识符等 关键字可视其全体为一种,也可以一字一种。采用一字一种得分法实际处理起 来较为方便。 标识符一般统归为一种 常数按类型(整、实、布尔等)分种 运算符可采用一符一种的方法。 界符一般一符一种的分法。 (二)超前搜索方法 词法分析时,常常会用到超前搜索方法。 如当前待分析字符串为“a+” ,当前字符为“” ,此时,分析器倒底是将其分 析为大于关系运算符还是大于等于关系运算符呢? 显然,只有知道下一个字符是什么才能下结论。于是分析器读入下一个字符’ +’ ,这时可

文档评论(0)

1亿VIP精品文档

相关文档