- 235
- 0
- 约2.28万字
- 约 27页
- 2018-08-22 发布于贵州
- 举报
系统软件开发实践实验报告(计科4徐竹)
PAGE
-
中国矿业大学计算机学院
2012 级本科生实验报告
课程名称 系统软件开发实践
报告时间 2015/5/1
学生姓名 徐竹
学 号
专 业 计算机科学与技术
任课教师 刘 晋
任课教师评语
任课教师评语(①对实验课程基础理论的掌握;②对实验课程知识应用能力的评价;③对课程报告相关实验、作品、软件等成果的评价;④实验课学习态度和上课纪律;⑤实验课程成果和报告工作量;⑥总体评价和成绩;⑦存在问题等):
成 绩: 任课教师签字:
年 月 日
《系统软件开发实践》 实验报告 第 PAGE \* MERGEFORMAT 22页
实验一(第一周) 词法分析器(flex实验)
一、实验目的
1、通过对flex基本知识的阅读,了解其工作原理和过程以及其匹配模式和规则,掌握简单的lex语法和规则;
2、在上述基础上能够自主编写出简单且可以运行的词法分析器,实现简单的词法分析功能;
3、通过实验,设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解,并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
二、实验说明
本次编制调试的词法分析器基本可以实现如下简单功能:
1、可以匹配识别关键字:else if switch for int float return void while(所有的关键字都是保留字,并且必须是小写);
2、可以匹配识别专用符号: + - * / = = == != = ; , ( ) [ ] { } /* */
3、标识符(ID) 和数字(NU )通过下列正则表达式定义:
ID = letter letter*
NUM = digit digit*
letter = a|..|z|A|..|Z
digit = 0|..|9
4、可以匹配识别空格(空格由空白、换行符和制表符组成,空格通常被忽略,,除了它必须分开ID、NUM 关键字);
5、可以识别简单的注释(/* 注释内容*/);
三、实验原理与分析
词法分析的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。
词法分析是编译程序的第一个阶段且是必要阶段;词法分析的核心任务是扫描、识别单词且对识别出的单词给出定性、定长的处理;实现词法分析程序的常用途径:自动生成,手工生成。而本次实验用的是自动生成工具flex,相对于手动生成可以极大地减少工作量。
单词的描述也就是模式(Lexical Pattern),模式一般用正规表达式进行精确描述。FLEX通过读取一个有规定格式的文本文件,输出一个如下所示的C语言源程序。
?? | 输入文件*.l ||flex工具 ||输出文件lex.yy.c |
FLEX的输入文件为LEX源文件,它内含正规表达式和对相应模式处理的C语言代码。FLEX通过对.l源文件的扫描自动生成相应的词法分析函数 int yylex(),并将之输出到lex.yy.c的文件中。该文件即为LEX的输出文件或输出的词法分析器。
LEX的源文件由三个部份组成,每个部分之间用顶行的“%%”分割,其格式如下:
定义部份
%%
规则部份
%%
用户附加C语言部份
其中,定义部分由C语言代码、模式的宏定义、条件模式的开始条件说明三部份组成。C代码部份由顶行的%{和}%引入,LEX扫描源文件时将%{和}%之间的部分原封不动的拷贝到输出文件lex.yy.c中。而模式宏定义则是一个正则表达式的定义。正则表达式的匹配如下:
第二部分规则部份是LEX源文件的核心部份,它包括一组模式和在生成分析器识别相应模式后对相应模式进行处理的C语言动作(Act
您可能关注的文档
最近下载
- 《JBT 8120.1-2011压燃式发动机 高压油管用钢管 第1部分:单壁冷拉无缝钢管技术条件》专题研究报告.pptx
- 浙江医药高等专科学校.pdf VIP
- 泸州市市属事业单位选调笔试真题2024.docx VIP
- 门诊护理管理查房ppt.pptx
- 附表一、常用食物营养成分表(每100g).pdf VIP
- 老年人血脂异常管理中国专家共识(2025版).pdf VIP
- 第9讲-预测算法线性回归.pptx VIP
- 【完整正版高清】T_CFLP 0016-2023《国有企业采购操作规范》【2023修订版】.doc VIP
- Ultimate3000型高效液相色谱仪自主操作培训教材.pdf VIP
- 手术室护理查房.ppt VIP
原创力文档

文档评论(0)