欢迎来到天天文库
浏览记录
ID:34606140
大小:228.00 KB
页数:16页
时间:2019-03-08
《编译原理实验指导书50530new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编译原理实验指导书课程名称:编译原理实验适用专业:大学二、三年级使用教材:自编《编译原理实验指导书》学时数:10编写日期:2009年10月主要教学参考书目:陈火旺等编《程序设计语言编译原理》第3版,国防工业出版社实验要求及考核方式如下:1.实验课堂要求:(1)遵守实验室上机规章(2)每次实验课进行登记(3)上课不能做与实验课程无关的内容(4)考勤与课堂考勤相同(5)实验成绩占总成绩的20%2.实验内容要求:(1)实验前:需要提前预习,结合课堂教学和实验指导书,完成相关实验程序的编写,并做静态检查,做好记录,以备检查;(2)上机实验:上机调试程序,结合程序结果进一步理解课堂内
2、容;(3)上机实验后:完成实验报告,并对本次实验进行小结。(4)实验结果(程序和文档)自己保存,统一上交3.考核依据:(1)实验过程:老师当堂检查(2)实验报告:实验报告每次上交(3)实验结果:实验编写的程序上交3次,词法分析,中间代码生成程序(包括源程序、可执行文件、使用、限制说明文档)及自选一个本学期实验中的一个1实验一:将某门语言(建议Pascal语言,可自选)的关键字按字典顺序编上类号存入一张表格中,能从键盘随意输入一个标识符,输出该标识符的类号。1、实验步骤:(1)定义关键字表定义如下格式的表格,将Pascal语言中的单词(关键字、界符、数的类型)的编码输入:单词
3、符号类号单词符号类号单词符号类号单词符号类号and0procedure12;24*36begin1program13:25/37const2read14·26=38div3real15(27<39do4then16)28>40else5type17[29<>41end6var18]30<=42function7while19··31>=43if8write20单目加32:=44integer9标识符21单目减33{45not10无符号数22+34}46or11,23-35#47(2)编写一个查找函数lookup(char*str)该函数的功能是:查找指定的字符串str(关键
4、字和界符)是否在上述表格中,若在,返回类号(token值)和该字符串本身。查找函数可以使用顺序查找,也可以使用折半查找。2、实验方式及学时分配:采用教师讲授+学生动手实验的方式,以学生实验为主总共2学时,教师讲解不超过20分钟3、教学目标及基本要求:1)要求学生掌握词法分析器的功能及接口设计;2)要求学生熟悉C语言,若为自选语言,必须在规定日期前选定;3)要求学生掌握表格的定义方式,并能编写在表格中查找单词的函数4)实验一是基本的验证性实验,要求每位学生都要以较高的质量完成且上交实验报告和电子版实验程序。4、教学的重点和难点:1)重点:表格的定义方法2)难点:判别给定单词是
5、否在表格中5、实验组织形式:主要采取教师先介绍实验的目的,实验内容和实验达到的要求,再让学生根据自己的情况完成实验,实验结束后要求学生填写实验报告册。6、实验过程中应注意的问题:主要要求学生巩固以前学习的高级语言程序设计知识,并完成一个小型编译程序的设计。若学生对高级语言不熟悉,督促学生查阅相应资料,或学习查阅帮助,熟练掌握一门高级语言。2实验二:根据书上P43的状态转换图或如下的产生式,实现一个Pascal语言单词的分类(关键字,标识符,单界符,双界符,数,其他)。单词集的定义:(1)<单词集>::=<关键字>
6、<单界符>
7、<双界符>
8、<标识符>
9、<常数>(2)<关键字>
10、::=and
11、array
12、begin
13、bool
14、call
15、case
16、case
17、char
18、const
19、do
20、else
21、end
22、false
23、for
24、if
25、input
26、integer
27、not
28、of
29、or
30、output
31、program
32、read
33、real
34、repeat
35、set
36、then
37、to
38、true
39、until
40、var
41、while
42、write(3)<单界符>::=+
43、-
44、*
45、/
46、<
47、=
48、>
49、(4)<双界符>::=/*
50、*/
51、<=
52、>=
53、<>
54、:=(5)<标识符>::=<字母>
55、<标识符><数字>
56、<标识符><字母>(6)<常数>::=<整数>
57、<布尔常数>
58、<字符常数>
59、<常数标
60、识符>
61、<实数>(7)<整数>::=<数字>
62、<整数><数字>(8)<布尔常数>::=true
63、false(9)<字符常数>::='除'以外的任意字符串'(10)<常数标识符>::=<标识符>(11)<实数>::=<整数>.<整数>1、实验步骤:1)分别编写识别关键字、单界符、双界符、标识符、常数的函数;2)对常数的识别可降低要求。2、实验方式及学时分配:采用教师讲授+学生动手实验的方式,以学生实验为主总共2学时,教师讲解不超过15分钟,先对上一次的实验进行小结,指出问题3、教学目标及基本要求:1)要求学生掌握状态
此文档下载收益归作者所有