- 272
- 0
- 约1.35万字
- 约 21页
- 2019-02-19 发布于湖北
- 举报
PAGE
PAGE 21
编译原理实验报告
姓名:
学号:
班级:
学院:
南昌大学信息工程学院计算机系
2014年6月
目录
实验一………………………………………………………3
实验二………………………………………………………8
实验三………………………………………………………15
实验1 词法分析程序的设计
学生姓名: 学 号: 专业班级:
实验类型:□ 验证 □ 综合 □ 设计 □ 创新 实验日期: 实验成绩:
一、实验目的
掌握计算机语言的词法分析程序的开发方法。
二、实验内容
编制一个能够分析三种整数、标识符、主要运算符和主要关键字的词法分析程序。
三、实验要求
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)*
运算符和界符 + - * / = = = ( ) ; { }
关键字 main if then else while do int (可根据需要添加)
2、根据状态图,设计词法分析函数int scan( ),完成以下功能:
1) 从文本文件中读入测试源代码,根据状态转换图,分析出一个单词,
2) 以二元式形式输出单词单词种类,单词属性
其中单词种类用整数表示:
0:标识符
1:十进制整数
2:八进制整数
3:十六进制整数
运算符和界符,关键字采用一字一符,不编码
其中单词属性表示如下:
标识符,整数由于采用一类一符,属性用单词表示
运算符和界符,关键字采用一字一符,属性为空
3、编写测试程序,反复调用函数scan( ),输出单词种别和属性。
四、实验环境
PC微机
DOS操作系统或 Windows 操作系统
Turbo C 程序集成环境或 Visual C++ 程序集成环境
五、实验步骤
1.根据正规式,画出状态转换图;
2. 根据状态图,设计词法分析算法;
3. 采用C语言,设计函数scan( ),实现该算法;
4. 编制测试程序(主函数main);
代码如下:
#includestdio.h
#includestdlib.h
#includestring.h
#define SYMBOL_CODE 0
// 标识符编码 0
#define NUM_CODE 1
// 数字编码 1
// 可识别的关键字
char keywordstab[8][30]=
{{main},{if},{then},{else},{int},{return},{void},{while}};
char ch; //接受字符
char name[30]={};
FILE *sourceFile; //源文件
FILE *outputFile; //输出文件
void isNumber();
void isOthers();
void isKeyword();
void output_keyword()
{
printf(关键字:%s,%s\n,name,-);
}
void output_symbol()
{
printf(标识符:%s,%s\n,0,name);
}
void output_number()
{
printf(数字:%s,%s\n,1,name);
}
void output_others()
{
printf(其他:%s,%s\n,name,-);
}
//================================void scan()
{
sourceFile = fopen(program.txt,r); // 以读取方式打开源文件
if( sourceFile == NULL)
{
printf(file open error\n);
exit(0);
}
outputFile = fopen(output.txt,w); // 以写方式打开输出文件
if(outputFile==NULL)
{
printf(file open error\n);
exit(0
您可能关注的文档
最近下载
- 038 为什么说《大观茶论》是宋代茶书的代表之一?公开课教案教学设计课件资料.doc VIP
- 幼儿园玩教具制作与环境创设 第三单元 泥工玩教具制作与环境创设.ppt VIP
- 2025入团考试题库(含答案).pdf VIP
- GS 十五张图表回顾中国的2025年.pdf VIP
- 2025年贵州省中考语文试卷(含答案与解析).pdf VIP
- 基于多维度激励理论的FY勘察测绘公司员工激励机制优化研究.docx VIP
- 2025年广东省教师招聘考试(通用能力测试·教育类)历年参考题库含答案详解.docx VIP
- 2025年江苏省南京市中考数学试卷含解析答案.pptx VIP
- 质量协会质量专业能力考试(QC小组活动专业能力)中级题库及答案(2025年贵州).docx
- 2025年无锡科技职业学院单招笔试英语试题库含答案解析.docx VIP
原创力文档

文档评论(0)