词法分析(最新整理版).docVIP

  • 0
  • 0
  • 约6.27千字
  • 约 21页
  • 2024-02-22 发布于江苏
  • 举报

课程设计说明书

设计题目:词法分析程序设计

专业:计算机科学与技术班级:2011-4

设计人:

山东科技大学

2014年4月10日

课程设计任务书

学院信息科学与工程学院专业计算机科学与技术班级2011-4姓名

一、课程设计题目:词法分析程序设计

二、课程设计主要参考资料

(1)韩太鲁等,编译原理.石油大学出版社.2007.9

(2)[美]AlfredV.Aho等,编译原理,机械工业出版社.2009.01.

(3)雍俊海著,Java程序设计,清华大学出版社.2008.02

三、课程设计应解决的主要问题:

(1)识别运算符时,对于拥有相同开始字符的识别,例如:“=”和“”、“++”和“+”等;

(2)正确识别保留字、分隔符和常量

(3)识别标识符时,区别于保留字,而且对于组成标识符的不同组成结构的字母数字串进行正确的识别;

(4)对于文件输入和输出的控制;

四、课程设计相关附件(如:图纸、软件等):

(1)集成环境:JavaJDK;

(2)编辑软件:Windows记事本;

五、任务发出日期:2014-3-5课程设计完成日期:2014-5-3

指导教师签字:系主任签字:

指导教师对课程设计的评语

成绩:

指导教师签字:

年月日

实验一词法分析程序

一、设计目的

通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。

二、设计要求

编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。当遇到无法识别的单词类型时将显示“6”;

三、设计说明

a)需求分析:

输入及其范围:此词法分析程序针对的是C高级程序设计语言,从main()主函数开始到主函数结束,??别基本保留字、标识符、常数、运算符、分隔符;除此之外其他所有的单词都将视为一种错误输入;

输出形式:将识别的单词按照顺序依次输出,词法分析器的单词符号常常表示成以下的二元式(单词类别码,单词符号的属性值)。

程序功能:词法分析器的功能是输入源程序,输出单词符号。

测试数据

正确数据:main()?{

inta,b;

a=10;

b=a+20;}

错误数据:main()??{

汉字

int2a,b;

1a=1w0;

b=a+20;}

b)概要设计

数据类型的定义:

定义保留字字符串组:privatestaticString[]rmWord={if,int,for,while,do,return,break,continue}///保留字类别码1

定义运算符字符串组:privatestaticString[]culWord={++,+,--,-,*,/,==,=,=,=,,,!=};//运算符类别码4

开始

定义分隔符字符串组:privatestaticString[]divWord={,,;,{,},(,)};//分隔符类别码5

主程序流程:

打开文本编辑器

输入文本或打开文件

单击按钮“Run”开始词法分析

输出结果

结束

模块间的调用关系:

文本

编辑器

词法

分析程序

调用

c)详细设计

词法分析程序主要流程图:

当文本编辑器调用词法分析程序后,文本编辑器将文本框中的数据以字符串的形式传递给词法分析程序;

WordAnalysiswa=newWordAnalysis(text.getText());

词法分析程序获取输入的数据后,首先进行格式控制。在字符串的最后添加“#”作为字符串结束的标志;并将字符串中所有的分隔符和运

文档评论(0)

1亿VIP精品文档

相关文档