资料介绍
编译原理实验指导
《编译原理》实验教学大纲
一、课程名称:编译原理(Principle of Compiler)
二、课程编码:4111204
三、课程总学时: 72 学时[理论: 54 学时;实验: 18 学时
四、课程总学分: 4 学分
五、适用专业和开课学期:计算机科学与技术专业,第7学期。
六、实验的目的与任务:
编译原理是计算机类专业特别是计算机软件专业的一门重要专业课。设置该课程的目的在于系统地向学生讲述编译系统的结构、工作流程及编译程序各组成部分的设计原理和实现技术,使学生通过学习既掌握编译理论和方法方面的基本知识,也具有设计、实现、分析和维护编译程序等方面的初步能力。编译原理是一门理论性和实践性都比较强的课程。进行上机实验的目的是使学生通过完成上机实验题目加深对课堂教学内容的理解。同时培养学生实际动手能力。
七、主要仪器设备及台(套)数:一人一机。
八、主要实验教材(指导书)及参考用书:
[1]《编译原理》,吕映芝、张素琴、蒋维杜,清华大学出版社,1998年出版
[2] 《编译程序设计原理》,杜书敏、王永宁,北京大学出版社,1988年出版
[3] 《计算机编译原理》,张幸儿,科学出版社,1999年出版
[4]《编译程序原理与技术》,李赣生等,清华大学出版社,1997年10月出版。
九、成绩考核方式及评分标准:
由指导教师结合实验报告质量及学习态度等采用5级记分制评分。实验成绩占期终综合测评成绩的30%。
十、实验开出率:100%
十一、实验项目与要求:
序
号 实验项目名称 学时 项目要求 项目性质 项目类别 每台(套)仪器人数 目的要求
1 词法分析 4 必修 设计 操作 微机,每人一台。 1.确定编译中使用的表格、词法分析器的输出形式、标识符与关键字的区分方法。
2.把词法分析器设计成一个独立的过程。
2 语法分析 10 必修 设计 操作 微机,每人一台。 1.语法分析和语义分析合在一起实现。
2.把语法分析器设计成一个独立的过程。
3 语义分析 4 必修 设计 模拟 微机,每人一台。 1.确定中间代码的形式,使中间代码不依赖于任何具体的计算机,对中间代码实现四元式的转换。
2.把该转换器设计成一个独立的程序。
实验一:词法分析
一、实验目的
给出PL/0文法规范,要求编写PL/0语言的词法分析程序。
二、实验准备
微机CPU主频1.3G以上,128M内存,安装好C语言,PASCAL语言,或C++。
三、实验时间
6学时
四、实验内容
已给PL/0语言文法,输出单词(关键字、专用符号以及其它标记)。
二.实验内容
1、格式
输入:源程序文件。 输出:关键字、专用符号以及其它标记。
2、编译对象:
包含如下基本内容 1) 变量说其它标记: 明语句 2) 赋值语句 3) 条件转移语句 4) 表达式(算术表达式和逻辑表达式) 5) 循环语句 6) 过程调用语句
3、 实现过程
本次实验所用的语言为标准C,以下同。本功能实现的主函数为getToken函数。通过从文件中读取字符到缓冲区中并由C语言字符的状态转换图流程判断返回一个字符(Token)。分析出来的Token主要分为关键字,专用符号,标记符号。
本实验实现的C语言的基本词法如下:
关键字: els if int return void while
专用符号: + - * / < >= == != = ; , ( ) [ ] { } /* */
其它标记: id num
ID = letter letter*
NUM = digit digit*
letter = a|b|...|z|A|B|...|Z|
ditit= 0|1|...|9
通过在C语言中定义一个枚举类型来识别这些符号:
PL/0语言的EBNF表示
<常量定义>::=<标识符>=<无符号整数>;
<标识符>::=<字母>={<字母>|<数字>};
<加法运算符>::=+|-
<乘法运算符>::=*|/
<关系运算符>::==|#|<|<=|>|>=
<字母>::=a|b|…|X|Y|Z
<数字>::=0|1|2|…|8|9
4、主体结构的说明
在这里说明部分告诉我们使用的LETTER,DIGIT, IDENT(标识符,通常定义为字母开头的字母数字串)和STR(字符串常量,通常定义为双引号括起来的一串字符)是什么意思.这部分也可以包含一些初始化代码.例如用#include来使用标准的头文件和前向说明(forward ,references).这些代码应该再标记"%{"和"%}"之间;规则部分>可以包括任何你想用来分析的代码;我们这里包括了忽略所有注释中字符的功能,传送ID名称和字符串常量内容到主调函数和main函数的功能.
5、实现原理
程序中先判断这个句语句中每个单元为关键字、常数、运算符、界符,对与不同的单词符号给出不同编码形式的编码,用以区分之。
三:设计过程
1. 关键字:void,main,if,then,break,int,Char,float,include,for,while,printfscanf 并为小写。
2."+”;”-”;”*”;”/”;”:=“;”:”;”<“;”<=“;”>“;”>=“;”<>“;”=“;”(“;”)”;”;”;”#”为运算符。
3. 其他标记 如字符串,表示以字母开头的标识符。
4. 空格符跳过。
5. 各符号对应种别码
关键字分别对应1-13
运算符分别对应401-418,501-513。
字符串对应100
常量对应200
结束符#
- Proteus 8086/8051实验指导书电子版 0次下载
- 《信号与系统》实验指导书下载 54次下载
- 数据库原理实验指导书之SQL_Server_2005 0次下载
- 《智能仪器设计实验指导书》电子书籍.pdf 0次下载
- Tiva实验指导书 10次下载
- 通讯原理实验指导书 5次下载
- EDA实验指导书(2015) 0次下载
- 汇编实验指导书-基本实验 0次下载
- MATLAB基础实验指导书 0次下载
- PLD实验指导书 1次下载
- 微机原理实验指导书 51次下载
- 网络基础实验指导书 20次下载
- 化工原理实验实验指导书 32次下载
- 课程实验指导书格式,具体项目指导书格式与基本内容要求 0次下载
- 电工基础实验指导书 0次下载
- Android编译优化之混淆配置 339次阅读
- C程序的完整编译过程 457次阅读
- Linux 下GCC的编译 1001次阅读
- VCS编译选项:-y及+libext+ 6974次阅读
- 深入浅出编译优化选项(下) 732次阅读
- 深入浅出编译优化选项(上) 1378次阅读
- 交叉编译器安装教程 2471次阅读
- CubeMX版本编译代码的教程 3873次阅读
- 利用AT89S52单片机和现场总线技术实现电工实验指导系统的设计 1437次阅读
- 海天雄电子:生物医疗电子实验分析 2232次阅读
- 讲述增量编译方法,提高Vivado编译效率 9326次阅读
- verilog编译指令_verilog编译器指示语句(数字IC) 1.3w次阅读
- lcr测试仪使用方法图解_lcr测试仪使用指导书 4.2w次阅读
- 编译器是如何工作的_编译器的工作过程详解 1.5w次阅读
- 谁能缩短大容量FPGA的编译时间?增量式编译QIC! 4440次阅读
下载排行
本周
- 1电子电路原理第七版PDF电子教材免费下载
- 0.00 MB | 1491次下载 | 免费
- 2单片机典型实例介绍
- 18.19 MB | 93次下载 | 1 积分
- 3S7-200PLC编程实例详细资料
- 1.17 MB | 27次下载 | 1 积分
- 4笔记本电脑主板的元件识别和讲解说明
- 4.28 MB | 18次下载 | 4 积分
- 5开关电源原理及各功能电路详解
- 0.38 MB | 11次下载 | 免费
- 6100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 7基于AT89C2051/4051单片机编程器的实验
- 0.11 MB | 4次下载 | 免费
- 8基于单片机的红外风扇遥控
- 0.23 MB | 3次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 2PADS 9.0 2009最新版 -下载
- 0.00 MB | 66304次下载 | 免费
- 3protel99下载protel99软件下载(中文版)
- 0.00 MB | 51209次下载 | 免费
- 4LabView 8.0 专业版下载 (3CD完整版)
- 0.00 MB | 51043次下载 | 免费
- 5555集成电路应用800例(新编版)
- 0.00 MB | 33562次下载 | 免费
- 6接口电路图大全
- 未知 | 30320次下载 | 免费
- 7Multisim 10下载Multisim 10 中文版
- 0.00 MB | 28588次下载 | 免费
- 8开关电源设计实例指南
- 未知 | 21539次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935053次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537791次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234313次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191183次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183277次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138039次下载 | 免费
评论
查看更多