欢迎来到天天文库
浏览记录
ID:61499181
大小:85.00 KB
页数:6页
时间:2021-02-07
《《编译原理》课程实验报告(词法分析).doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、信息科学与工程学院__《编译原理》_实验报告系别计算机科学与工程专业计算机科学与应用班级_____计122_______学号__________姓名_____陈柏君_________指导教师金登男2014学年第二学期实验题目:词法分析1.实验日期:2015.4.9-2015.4.162.实验环境(操作系统,开发语言)操作系统:Windows开发语言:C3.实验要求3.1.用C语言开发词法分析程序PL0Compiler。3.2.修改PL/0词法,将其定义为一种新的语言,例如称其为PL/1语言,并完成PL/1
2、语言的词法分析程序。4.实验步骤4.1.用PL/0语言编写PL/0测试用例源程序,将其命名为Test0.pl。4.2.用C语言开发PL/0词法分析程序PL0Compiler。PL0Compiler读入Test0.pl,识别出一个个单词,并将这些单词流依序同时输出到屏幕和文件中。被输出的每个单词应包括(1)单词序号(2)单词字符串(3)单词类型(4)单词值(如果是标识符,其值是字符串;如果是数,其值是数值;如果是符号,其值是ASCII代码…)在程序开发过程中,应设立断点,单步运行词法分析程序,依次输出一个个
3、单词。分析和理解词法分析程序,解释词法分析程序中的数据和变量变化的原因和输出结果。4.3.研究其他程序设计语言,找出与PL/0词法不同的构词法则(例如C语言的标识符的组成规则与PL/0标识符的组成规则有所不同)。据此修改PL/0的某些词法(例如,将PL/0标识符组成规则修改为C语言的标识符的组成规则),将其定义为一种新的语言,例如称其为PL/1语言。4.4.用PL/1语言编写PL/1测试用例源程序,将其命名为Test1.pl。4.5.开发PL/1词法分析程序PL1Compiler。(可通过修改原PL0Co
4、mpiler,实现PL/1语言的词法分析功能)。4.6.PL1Compiler读入Test1.pl,识别出一个个单词,并将这些单词流依序同时输出到屏幕和文件中。5.实验结果(Test1.pl内容,PL1Compiler词法分析程序输出的第1张截图)Test1.pl内容:const_c1=2,A_2=4.56.00;VARx,num,sum;procedurefunc1;vary;y:=c1;beginsum:=8.32;read(x);num:=10-x/c2;ifnum<-2thenx:=-c1;ifn
5、um>2+2*c2thenx:=8-c2;whilex='a'&&cACharacter<='z'
6、
7、
8、cACharacter>='A'&&cACharacter<='Z'
9、
10、cACharacter=='_'){nAWordIndex=0;do{if(nAWordIndex='a'&&cACharacter<='z'
11、
12、cACharacter>='0'&&cACharacter<='
13、9'
14、
15、cACharacter>='A'&&cACharacter<='Z'
16、
17、cACharacter=='_')&&cACharacter!=EOF);功能:标识符可以以大写,小写,下划线的混合形式出现。intk=0;for(intj=0;j1)g_Words[g_nWordsIndex].eType=ERRO
18、R_num;if(k==0)g_Words[g_nWordsIndex].eType=NUMBER_INT;功能:此部分代码可以对数进行识别,根据小数点的个数,如果没有小数点那么是INT型,有一个小数点是DOUBLE型,有多于两个小数点那么就会报错for(intj=1;j
此文档下载收益归作者所有