计算机学院 编译原理 实验报告
年级 2008级 学号 姓名 成绩
专业 实验地点 指导教师
实验项目 C_minus语言词法分析器的设计 实验日期
实验报告要求:
一、实验目的
设计编写并调试一个词法分析程序,能够完成读入源程序,输出单词符号的功能。加深对词法分析原理的理解,并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。编写一个读单词的过程,从输入的源程序中识别出各个具有独立意义的单词,即关键字、标识符、常数、运算符和界符五大类单词,并依次输出各个单词的内部编码及单词符号自身的值。
二、实验原理
词法分析是编译的第一个阶段,他的主要任务是从左至右逐个字符地对源程序进行扫描,产生一个个单词序列用以语法分析,执行词法分析的程序即为词法分析程序,在程序中先判断这个语句中的每个单元为关键字、常数、运算符、界符,对不同的单词符号给出不同编码形式的编码用以区分之,识别出源程序中的单词并以二元式的形式输出。
三、实验要求
1、该个词法分析器要求至少能够识别以下几类单词:
a. 关键字:else if int return void while共6个,所有的关键字都是保留字,并且必须是小写;
b. 标识符:识别与C语言词法规定相一致的标识符,通过下列正则表达式定义:ID = letter (letter | digit)*;
c. 常数:NUM = digit digit*(.digit digit* |ε)(e(+ | - |ε) digit digit* |ε),letter = a|..|z|A|..|Z|,digit = 0|..|9,包括整数,如123等。
d. 专用符号:+ - * / < <= > >= == != = ; , ( ) [ ] { } /* */;
2、分析器的输入为由上述几类单词构成的程序,输出为该段程序的机内表示形式,即关键字、运算符、界限符变为其对应的机内符,常数使用二进制形式,标识符使用相应的标识符表指针表示。
本文来源:https://www.2haoxitong.net/k/doc/158bd68e49d7c1c708a1284ac850ad02df800786.html
文档为doc格式