编译原理-实验报告

上传人:大米 文档编号:497395185 上传时间:2023-02-17 格式:DOC 页数:24 大小:112.52KB
返回 下载 相关 举报
编译原理-实验报告_第1页
第1页 / 共24页
编译原理-实验报告_第2页
第2页 / 共24页
编译原理-实验报告_第3页
第3页 / 共24页
编译原理-实验报告_第4页
第4页 / 共24页
编译原理-实验报告_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《编译原理-实验报告》由会员分享,可在线阅读,更多相关《编译原理-实验报告(24页珍藏版)》请在金锄头文库上搜索。

1、编译原理实验报告编译原理实验教学大纲一、课程名称:编译原理(Principle of Compiler)二、课程编码:4111204三、课程总学时: 72 学时理论: 54 学时;实验: 18 学时四、课程总学分: 4 学分五、适用专业和开课学期:计算机科学与技术专业,第7学期。六、实验的目的与任务:编译原理是计算机类专业特别是计算机软件专业的一门重要专业课。设置该课程的目的在于系统地向学生讲述编译系统的结构、工作流程及编译程序各组成部分的设计原理和实现技术,使学生通过学习既掌握编译理论和方法方面的基本知识,也具有设计、实现、分析和维护编译程序等方面的初步能力。编译原理是一门理论性和实践性都比

2、较强的课程。进行上机实验的目的是使学生通过完成上机实验题目加深对课堂教学内容的理解。同时培养学生实际动手能力。七、主要仪器设备及台(套)数:一人一机。八、主要实验教材(指导书)及参考用书:1编译原理,吕映芝、张素琴、蒋维杜,清华大学出版社,1998年出版2 编译程序设计原理,杜书敏、王永宁,北京大学出版社,1988年出版3 计算机编译原理,张幸儿,科学出版社,1999年出版4编译程序原理与技术,李赣生等,清华大学出版社,1997年10月出版。九、成绩考核方式及评分标准:由指导教师结合实验报告质量及学习态度等采用5级记分制评分。实验成绩占期终综合测评成绩的30%。十、实验开出率:100% 十一、

3、实验项目与要求:序号实验项目名称学时项目要求项目性质项目类别每台(套)仪器人数目的要求1词法分析4必修设计操作微机,每人一台。1确定编译中使用的表格、词法分析器的输出形式、标识符与关键字的区分方法。2把词法分析器设计成一个独立的过程。2语法分析10必修设计操作微机,每人一台。1语法分析和语义分析合在一起实现。2把语法分析器设计成一个独立的过程。3语义分析4必修设计模拟微机,每人一台。1确定中间代码的形式,使中间代码不依赖于任何具体的计算机,对中间代码实现四元式的转换。2把该转换器设计成一个独立的程序。实验一:词法分析一、实验目的给出PL/0文法规范,要求编写PL/0语言的词法分析程序。二、实验

4、准备微机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语言的基本词法如下:关键字: 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|94、主体结构

6、的说明在这里说明部分告诉我们使用的LETTER,DIGIT, IDENT(标识符,通常定义为字母开头的字母数字串)和STR(字符串常量,通常定义为双引号括起来的一串字符)是什么意思.这部分也可以包含一些初始化代码.例如用#include来使用标准的头文件和前向说明(forward ,references).这些代码应该再标记%和%之间;规则部分>可以包括任何你想用来分析的代码;我们这里包括了忽略所有注释中字符的功能,传送ID名称和字符串常量内容到主调函数和main函数的功能.5、实现原理程序中先判断这个句语句中每个单元为关键字、常数、运算符、界符,对与不同的单词符号给出不同编码形式的编码

7、,用以区分之。三:设计过程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结束符#四:举例说明目标:实现对常量的判别代码:digit 0-9letter A-Za-zothe

8、r_char !-id (letter|_)(letter|digit|_)*string (letter|digit|other_char)+int_num digit+% |t|n+auto|double|int|struct|break|else|long|switch|case|enum|register|typedef|char|extern|return|union|const|float|short|unsigned|continue|for|signed|void|default|goto|sizeof|do|if|static|while|main Upper(yytext,

9、yyleng);printf(%s,NULLn,yytext);(!-)* printf(CONST_string,%sn,yytext);-?int_num.int_num?(E+|-?int_num)? printf(CONST_real,%sn,yytext);0x?int_num printf(CONST_int,%sn,yytext);,|;|(|)|-|.|!|+|-|*|&|sizeof|/|%|+|-|=|=|=|&=|=|=|= printf(%s,NULLn,yytext);id printf(ID,%sn,yytext);digit(letter)+ printf(err

10、or1:%sn,yytext);%#include Upper(char *s,int l) int i; for(i=0;il;i+) si=toupper(si); yywrap() return 1;五:源程序:#include#include#include #includeint i,j,k,flag,number,status;/*status which is use to judge the string is keywords or not!*/char ch;char words10 = ;char program500;int Scan(char program) cha

11、r *keywords13 = void,main,if,then,break,int, char, float, include,for,while,printf, scanf;number = 0; status = 0;j = 0;ch = programi+; /* To handle the lettle space ands tab*/*handle letters*/if (ch = a) & (ch = a) & (ch = z )wordsj+=ch;ch=programi+; i-; wordsj+ = 0; for (k = 0; k 13; k+) if (strcmp

12、 (words,keywordsk) = 0)switch(k)case 0: flag = 1; status = 1; break;case 1: flag = 2; status = 1; break;case 2: flag = 3; status = 1; break;case 3: flag = 4; status = 1; break;case 4: flag = 5; status = 1; break;case 5: flag = 6; status = 1; break; case 6: flag = 7; status = 1; break; case 7: flag = 8; status = 1; break; case 8: flag = 9; status = 1; break; case 9: flag = 10; status = 1; break; case 10: flag = 11; sta

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号