- 4
- 0
- 约1.16万字
- 约 24页
- 2017-04-10 发布于广东
- 举报
实验一:词法分析器
一、 词法分析器程序的实验综述
1.1 开发背景
1.2 问题介绍
1.3 词汇表
二、 词法分析器程序的系统分析
2.1 词法形式化描述
2.2 单词种别定义
2.3 状态转换图
三、 词法分析器程序的系统设计
3.1 运行环境介绍
3.2 关键算法流程图及文字解释
3.3 用于处理注释的skip函数
3.4 基于trie树的保留字搜索函数
3.5 系统运行与调试
四、 系统测评
图0 系统开发流程图
词法分析器程序
一 词法分析器程序的实验综述
1.1开发背景
编译原理涉及词法分析,语法分析,语义分析及优化设计等各方面。词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用Lex等工具自动生成。从左到右逐个字符对构成源程序的字符串进行扫描,依据词法规则,识别出一个一个的标记(token),把源程序变为等价的标记串序列。执行词法分析的程序称为词法分析器,也称为扫描器。词法分析是所有分析优化的基础,涉及的知识较少,如状态转换图等,易于实现。本次实验使用java代码实现。
1.2问题介绍
对某特定语言A ,构造其词法规则。
A的内容如下:
该语言的单词符号包括
1. 保留字
2. 运算符及界符
3. 标识符(字母大小写不敏感),整型常数
1.3词汇表
对于后文正则式中可能出现的符号定义如下,以便清晰地描述A语言的正则式
符号
说明
a
字母
b
数字
c
符号(不包括字母和数字)
*
闭包运算符
|
或运算符
.
连接运算符(可省略)
ε
空
#
结束符
二 词法分析器程序的系统分析
2.1词法形式化描述
正则式
意义
举例
a(a|b)*
标识符或保留字
Lex1, program
b*
常数
12345
c
运算符或界符或非法字符
+,*,(,)等
2.2单词种别定义
program
1
not
8
常数
15
.
22
begin
2
if
9
+
16
;
23
end
3
then
10
*
17
//
24
var
4
else
11
:=
18
/*
25
int
5
while
12
(
19
*/
26
and
6
do
13
)
20
or
7
标识符
14
,
21
对于标识符或保留字的推导
对于常数的推导
对于符号的推导
2.3状态转换图
其中:
识别标识符或保留字
识别常数
识别加运算符
识别乘运算符
识别赋值运算符
识别大于等于运算符,大于运算符并加以区分
识别小于等于运算符,不等于运算符,小于运算符并加以区分
识别括号,逗号,点号,分号,等于号
其余所有无法被此状态转换图识别的符号视为非法符号。
三 词法分析器程序系统设计
3.1 运行环境介绍
词法分析器程序由一个java控制台程序实现,通过读入一个名为A.txt的文本文件中的测试代码来对其进行词法分析。
开发环境:MyEclipse 8.5,jdk1.6
系统流程图:
3.2关键算法流程图及文字解释
词法分析程序(Analysis函数)详细流程图如下:
void analysis() throws Exception
{
StringBuffer lexSegment=new StringBuffer();
StringBuffer digitSegment=new StringBuffer();
//char next;
try
{
while(true)
{
program=in.readLine();
if(program==null)
{
if(line==0)
{
System.out.println(文件为空,);
break;
}
else
{
System.out.println(文件已编译完成);
break;
}
}
else
{
line++;
column=-1;
lineLength=program.length()-1;
while(column++=lineLength-1)
{
now=program.charAt(column);
if(now== )
continue;
//System.out.println(now);
//isFi
您可能关注的文档
- bSmartpohone系统整合技术.doc
- hSHEO P-008文件控制程如序(R1.0).doc
- Javascript_DOM编程艺术中最文部分翻译版.doc
- iSCM与ERPr的区别.doc
- MPython实入门教程.doc
- PP6T经常用E的115个技巧.doc
- PpPh管道施工方案.doc
- java成实训报告(简单人事管理系统的设计与实现).doc
- PPTj演讲大赛S策划书.doc
- Java程3序员要点总结.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 职业学校学分制实施细则.docx
- AP微观经济学 2010年真题 附答案和评分标准 AP Microeconomics 2010 Real Exam with Answers and Scoring Guidelines.pdf VIP
- T_BIAS 14-2025 预制混凝土构件生产与运输标准.docx VIP
- T_ZAEPI 051-2025 再生有色金属工厂低碳运行评价指标体系.docx VIP
- 部编版五年级语文下册第一单元整体作业设计.docx
- 中国养老产业发展研究报告_1.doc VIP
- 2026年养老产业行业创新报告.docx
- C正谱怜悯我吧上帝 pieta signore.pdf VIP
- 《专业工程管理与实务》.pdf VIP
- 中国血栓性疾病防治指南(2025版).docx VIP
原创力文档

文档评论(0)