欢迎来到天天文库
浏览记录
ID:14393683
大小:185.00 KB
页数:24页
时间:2018-07-28
《编译原理_实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、编译原理实验报告《编译原理》实验教学大纲一、课程名称:编译原理(PrincipleofCompiler)二、课程编码:4111204三、课程总学时:72学时[理论:54学时;实验:18学时四、课程总学分:4学分五、适用专业和开课学期:计算机科学与技术专业,第7学期。六、实验的目的与任务:编译原理是计算机类专业特别是计算机软件专业的一门重要专业课。设置该课程的目的在于系统地向学生讲述编译系统的结构、工作流程及编译程序各组成部分的设计原理和实现技术,使学生通过学习既掌握编译理论和方法方面的基本知识,也具有设计、实现、分析和维护编译程序等方面的初步能力。编译原理是一门理论性和实践性都比较强的课程。
2、进行上机实验的目的是使学生通过完成上机实验题目加深对课堂教学内容的理解。同时培养学生实际动手能力。七、主要仪器设备及台(套)数:一人一机。八、主要实验教材(指导书)及参考用书:[1]《编译原理》,吕映芝、张素琴、蒋维杜,清华大学出版社,1998年出版[2]《编译程序设计原理》,杜书敏、王永宁,北京大学出版社,1988年出版[3]《计算机编译原理》,张幸儿,科学出版社,1999年出版[4]《编译程序原理与技术》,李赣生等,清华大学出版社,1997年10月出版。九、成绩考核方式及评分标准:由指导教师结合实验报告质量及学习态度等采用5级记分制评分。实验成绩占期终综合测评成绩的30%。十、实验开出率
3、:100%十一、实验项目与要求:序号实验项目名称学时项目要求项目性质项目类别每台(套)仪器人数目的要求1词法分析4必修设计操作微机,每人一台。1.确定编译中使用的表格、词法分析器的输出形式、标识符与关键字的区分方法。2.把词法分析器设计成一个独立的过程。2语法分析10必修设计操作微机,每人一台。1.语法分析和语义分析合在一起实现。2.把语法分析器设计成一个独立的过程。3语义分析4必修设计模拟微机,每人一台。1.确定中间代码的形式,使中间代码不依赖于任何具体的计算机,对中间代码实现四元式的转换。2.把该转换器设计成一个独立的程序。24实验一:词法分析一、实验目的给出PL/0文法规范,要求编写P
4、L/0语言的词法分析程序。二、实验准备微机CPU主频1.3G以上,128M内存,安装好C语言,PASCAL语言,或C++。三、实验时间6学时四、实验内容已给PL/0语言文法,输出单词(关键字、专用符号以及其它标记)。二.实验内容1、格式输入:源程序文件。输出:关键字、专用符号以及其它标记。2、编译对象:包含如下基本内容1)变量说其它标记:明语句2)赋值语句3)条件转移语句4)表达式(算术表达式和逻辑表达式)5)循环语句6)过程调用语句3、实现过程本次实验所用的语言为标准C,以下同。本功能实现的主函数为getToken函数。通过从文件中读取字符到缓冲区中并由C语言字符的状态转换图流程判断返回一
5、个字符(Token)。分析出来的Token主要分为关键字,专用符号,标记符号。本实验实现的C语言的基本词法如下:关键字:elsifintreturnvoidwhile专用符号:+-*/<>===!==;,()[]{}/**/其它标记:idnumID=letterletter*NUM=digitdigit*letter=a
6、b
7、...
8、z
9、A
10、B
11、...
12、Z
13、ditit=0
14、1
15、...
16、9通过在C语言中定义一个枚举类型来识别这些符号:PL/0语言的EBNF表示<常量定义>::=<标识符>=<无符号整数>;<标识符>::=<字母>={<字母>
17、<数字>};<加法运算符>::=+
18、-<乘法运算符>
19、::=*
20、/<关系运算符>::==
21、#
22、<
23、<=
24、>
25、>=<字母>::=a
26、b
27、…
28、X
29、Y
30、Z<数字>::=0
31、1
32、2
33、…
34、8
35、94、主体结构的说明在这里说明部分告诉我们使用的LETTER,DIGIT,IDENT(标识符,通常定义为字母开头的字母数字串)和STR(字符串常量,通常定义为双引号括起来的一串字符)是什么意思.这部分也可以包含一些初始化代码.例如用#include来使用标准的头文件和前向说明(forward,references).这些代码应该再标记"%{"和"%}"之间;规则部分>可以包括任何你想用来分析的代码;我们这里包括了忽略所有注释中字符的功能,传送ID名称和字符串常
36、量内容到主调函数和main函数的功能.5、实现原理程序中先判断这个句语句中每个单元为关键字、常数、运算符、界符,对与不同的单词符号给出不同编码形式的编码,用以区分之。三:设计过程241.关键字:void,main,if,then,break,int,Char,float,include,for,while,printfscanf并为小写。2."+”;”-”;”*”;”/”;”:=“;”:”;”<“;”<=“;
此文档下载收益归作者所有