- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理的第一次实验内容及要求
编译原理的第一次实验内容及要求
实验一 词法分析器的设计
一、实验目的和要求
加深对状态转换图的实现及词法分析器的理解。熟悉词法分析器的主要算法及实现过程。要求学生掌握词法分析器的设计过程,并实现词法分析。
二、实验基本内容
给出一个简单语言的词法规则,画出状态转换图,并依据状态转换图编制出词法分析程序,能从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示)
词法规则如下:
单词符号 种别码 内码 单词符号 种别码 内码 auto 101 long 121 break 102 new 122 case 103 operator 123 char 104 private 124 class 105 protected 125 const 106 public 126 continue 107 register 127 default 108 return 128 delete 109 short 129 do 110 sizeof 130 double 111 static 131 else 112 struct 132 enum 113 switch 133 extern 114 template 134 float 115 this 135 for 116 typedef 136 friend 117 union 137 if 118 virtual 138 inline 119 void 139 int 120 while 140 单词符号 种别码 内码 单词符号 种别码 内码 + 201 , 234 - 202 -> 235 * 203 · 236 / 204 [ 237 % 205 ] 238 ++ 206 ( 239 -- 207 ) 240 > 208 :: 241 >= 209 { 242 < 210 } 243 <= 211 # 244 == 212 ; 245 != 213 标识符 300 214 常数 400 二进制形式 || 215 ! 216 << 217 >> 218 ~ 219 | 220 ^ 221 222 = 223 += 224 -= 225 *= 226 /= 227 %= 228 >>= 229 <<= 230 = 231 ^= 232 |= 233
三、实验时间:上机三次。第一次按照自己的思路设计一个程序。第二、三次在理论课学习后修改程序,使得程序结构更加合理。
四、实验过程和指导:
(一)准备:1.阅读课本有关章节(c/c++,数据结构),花一周时间明确语言的语法,写出基本算法以及采用的数据结构和要测试的程序例。2.初步编制好程序。3.准备好多组测试数据。
(二)上课上机:将源代码拷贝到机上调试,发现错误,再修改完善。
(三)程序要求:
程序输入/输出示例:
输入如下一段:
main()
{
/*
一个简单的c++程序
*/
int a,b; //定义变量
a = 10;
b = a + 20;
}
要求输出如右图。
要求:
剔除注解符
常数为无符号整数(可增加实型数,字符型数等)
(四)练习该实验的目的和思路:
程序开始变得复杂起来,可能是大家以前编过的程序中最复杂的,但相对于以后的程序来说还是简单的。因此要认真把握这个过渡期的练习。程序规模大概为200行及以上。通过练习,掌握对字符进行灵活处理的方法。
(五)为了能设计好程序,注意以下事情:
1.模块设计:将程序分成合理的多个模块(函数/类),每个模块(类)做具体的同一事情。
2.写出(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。
3.编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。
4.程序设计语言不限,建议使用面向对象技术及可视化编程语言,如C++,VC,JAVA,VJ++等。
四、上交:
1.程序源代码及可执行文件(当堂检查/通过网络提交);
2.已经测试通过的测试数据3组(全部存在一个文本文件中,以“第一组输入/输出/第二组输入/输出/第三组输入/输出”的顺序存放);
3.实验报告按照提供的模板
您可能关注的文档
- 一元二次方程复习课学案.doc
- 编译原理期末复习.doc
- 化工工艺试验工计算.doc
- 编译原理的复习.doc
- 诗歌单元讲座育英学校杜静卉.ppt
- 化工工艺学复习题1.doc
- 一分钟能做什么教学设计.doc
- 诚毅学院计算机科学与技术专业培养方案.doc
- 一单项选择题(共题,每题分,每题的备选答案中有.doc
- 一单项选择题(第题~第题选择一个正确的答案,将相.doc
- 2025年湖南劳动人事职业学院单招职业适应性测试题库有答案.docx
- 2025年化工技能鉴定通关题库【突破训练】附答案详解.docx
- 2025年化工技能鉴定通关考试题库附答案详解(培优A卷).docx
- 2025年化工技能鉴定通关考试题库(基础题)附答案详解.docx
- 2025年化工技能鉴定通关考试题库(原创题)附答案详解.docx
- 2025年化工技能鉴定通关考试题库附答案详解(A卷).docx
- 2025年化工技能鉴定通关题库.docx
- 2025年化工技能鉴定通关题库含答案详解【巩固】.docx
- 2025年化工技能鉴定通关题库含答案详解AB卷.docx
- 2025年化工技能鉴定通关题库及答案详解.docx
文档评论(0)