资源描述:
《《编译原理》实验指导书2010》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《编译原理》实验指导书编译原理实验指导书上海大学计算机学院《编译原理》课程组2010年10月《编译原理》实验指导书目录一、课程简介2二、实验目的2三、实验环境2四、实验任务2五、PL0语言简介21.PL/0语言文法的EBNF32.PL/0语言的词汇表4六、实验项目5实验一.词法分析5实验二.语法分析8实验三.词法、语法分析10实验四.语义分析11实验五.中间代码生成12七、考核方式13八、参考文献14九、附录——PL0语言编译源程序清单15上海大学计算机学院《编译原理》课程组36of37《编译原理》实验指导书编译原理实验指导一、课程简介1.课程名称:编译原理(Principleo
2、fCompiler)2.课程编码:083050133.课程总学时:60学时[理论:40学时;实验:20学时4.课程总学分:5学分二、实验目的编译原理是计算机类专业特别是计算机软件专业的一门重要专业课。设置该课程的目的在于系统地向学生讲述编译系统的结构、工作流程及编译程序各组成部分的设计原理和实现技术,使学生通过学习既掌握编译理论和方法方面的基本知识,也具有设计、实现、分析和维护编译程序等方面的初步能力。编译原理是一门理论性和实践性都比较强的课程。进行上机实验的目的是使学生通过完成上机实验题目加深对课堂教学内容的理解。同时培养学生实际动手能力。三、实验环境微机CPUP4以上,256
3、M以上内存,安装好C语言,或C++,或VisualC++开发环境。四、实验任务用C/C++/VisualC++语言编写PL0语言的词法分析程序、语法分析程序、语义分析程序、中间代码生成程序。五、PL0语言简介上海大学计算机学院《编译原理》课程组36of37《编译原理》实验指导书PL0语言功能简单、结构清晰、可读性强,而又具备了一般高级程序设计语言的必须部分,因而PL0语言的编译程序能充分体现一个高级语言编译程序实现的基本方法和技术。1.PL/0语言文法的EBNF<程序>::=<分程序>.<分程序>::=[<常量说明>][<变量说明>][<过程说明>]<语句><常量说明>::=CO
4、NST<常量定义>{,<常量定义>};<常量定义>::=<标识符>=<无符号整数><无符号整数>::=<数字>{<数字>}<变量说明>::=VAR<标识符>{,<标识符>};<标识符>::=<字母>{<字母>
5、<数字>}<过程说明>::=<过程首部><分程序>{;<过程说明>};<过程首部>::=PROCEDURE<标识符>;<语句>::=<赋值语句>
6、<条件语句>
7、<当循环语句>
8、<过程调用语句>
9、<复合语句>
10、<读语句><写语句>
11、<空><赋值语句>::=<标识符>:=<表达式><复合语句>::=BEGIN<语句>{;<语句>}END<条件语句>::=<表达式><关系运算符>
12、<表达式>
13、ODD<表达式><表达式>::=[+
14、-]<项>{<加法运算符><项>}<项>::=<因子>{<乘法运算符><因子>}<因子>::=<标识符>
15、<无符号整数>
16、‘(’<表达式>‘)’<加法运算符>::=+
17、-<乘法运算符>::=*
18、/<关系运算符>::==
19、#
20、<
21、<=
22、>
23、>=上海大学计算机学院《编译原理》课程组36of37《编译原理》实验指导书<条件语句>::=IF<条件>THEN<语句><过程调用语句>::=CALL标识符<当循环语句>::=WHILE<条件>DO<语句><读语句>::=READ‘(’<标识符>{,<标识符>}‘)’<写语句>::=WRITE‘(
24、’<表达式>{,<表达式>}‘)’<字母>::=a
25、b
26、…
27、X
28、Y
29、Z<数字>::=0
30、1
31、…
32、8
33、92.PL/0语言的词汇表序号类别单词编码1基本字begin,call,const,do,endif,odd,procedure,readthen,var,while,writebeginsym,callsym,constsymdosym,endsym,ifsym,oddsymproceduresym,readsym,thensymvarsym,whilesym,writesym2标识符ident3常数number4运算符+,-,*,/,odd=,<>,<,<=,>,>=,:=pl
34、us,minus,times,slash,oddsymeql,neq,lss,leq,gtr,geq,becomes5界符(),;.Lparen,rparen,comma,semicolonperiod上海大学计算机学院《编译原理》课程组36of37《编译原理》实验指导书六、实验项目实验一.词法分析1.实验目的l根据PL/0语言的文法规范,编写PL/0语言的词法分析程序。l通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解;提高词法分析方法的实践能力