编译原理实验教学大纲

发布 2021-05-13 16:41:28 阅读 8150

课程编号:090069sy课程名称:编译原理实验。

英文名称:experiments for principles of compilers学分:0.5学时:17学时。

适用年级专业(学科类):计算机科学与技术,三年级(电器信息类)编写人:李凯审稿人:田学东。

一、课程概述。

一)课程性质。

编译原理实验》是配合计算机专业的主干课程《编译原理》开设的实验课程。要求学生在理解编译原理理论及方法的基础上,应具有设计、实现、分析和维护编译程序等方面的能力,其中包括词法分析程序、语法分析程序、语义处理程序和中间**生成等。通过本实验课程的训练,使学生加深对课堂教学内容与程序设计语言原理的理解,同时培养学生实际的动手能力。

二)教学目标与要求。

通过上机实验,加深对编译原理课程中讲授内容的理解,掌握编译程序的基本构造,进一步掌握编译程序诸环节的常用实现方法和技术,并初步具有研究、设计、编制和调试编译系统的能力。

三)重点和难点。

重点:掌握词法分析、语法分析、语义分析和中间**生成等方面的相关原理和方法。难点:语法分析中的lr分析法、语法制导翻译方法等。(四)与其他课程的关系。

先导课程是高级语言程序设计、离散数学、数据结构、计算机组成原理、汇编语言程序设计等,与操作系统、数据库系统原理、计算机系统结构等课程关系密切。

五)教材及教学参考书。

1、《编译原理(第2版)》,张素琴,吕映芝,蒋维杜编著,清华大学出版社,2005;2、《编译原理与实践》,金成植编著,高等教育出版社,1989;3、《编译原理》,何炎祥编著,华中理工大学出版社, 2000;4、《编译原理》,alfred v. aho编著,机械工业出版社, 2003;

5、《编译原理及实践》,kenneth c. louden编著,机械工业出版社, 1999;二、学时分配。

实验12实验题目。

c_minus语言词法分析器的设计扫描程序生成器lex学时66

递归下降分析器的设计算符优先分析法分析器的设计lr分析器的设计。

分析程序生成器yacc的使用中间**生成器的设计。

注:实验和4必做;其他实验根据实验学时灵活掌握。三、课程内容。

实验一c_minus语言词法分析器的设计实验目的和要求:

设计一个简单的词法分析器,从而进一步加深对词法分析器工作原理的理解。重点和难点:本实验的重点是理解词法分析器的输入与输出;难点是常数的识别。实验内容:

1、该词法分析器要求至少能够识别以下几类单词:

1)关键字:else if int return void while共6个,所有的关键字都是保留字,并且必须是小写;

2)标识符:识别与c语言词法规定相一致的标识符,通过下列正则表达式定义:id = letter (letter | digit)*;

3)常数:numdigit digit*(.digit digit* |edigit digit* |letter = a|..

z|a|..z|,digit =0|..9,包括整数,如123, -123, +123等;小数,如123.

45, +123.45, -123.45;科学计数法表示的常数,如+1.

23e3,-2.3e-9;

4)专用符号:+

2、分析器的输入为由上述几类单词构成的程序,输出为该段程序的机内表示形式,即关键字、运算符、界限符变为其对应的机内符,常数使用二进制形式,标识符使用相应的标识符表指针表示。

3、词法分析器应当能够指出源程序中的词法错误,如不可识别的符号、错误的词法等。主要教学环节的组织:主要通过课堂讲授、学生上机实验及教师辅导达到教学目的。思考题:

1、词法分析器的输入与输出是什么?2、实现词法分析的流程是什么?实验二扫描程序生成器lex实验目的和要求:

了解扫描程序生成器lex的功能和使用方法,学会使用lex构造词法分析程序,使用lex完成实验一所要求的内容。

重点和难点:本实验的重点是掌握用lex工具生成词法分析程序的工作原理及使用lex语言编写词法分析程序;难点是正则表达式的描述及识别正则表达式后的处理过程。实验内容:

熟悉实验环境和工具flex,然后使用flex,即gnu版的lex,实现词法分析器的自动构造。注意:flex需要和c语言编译器配合使用,方可实现扫描程序的生成。

扫描程序生成器:使用flex,即gnu版的lex(语言编译器:gcc(

实验环境:若使用linux操作系统,大部分发行版已包含上述工具,无需另行安装;如使用windows平台,可使用djgpp软件包(或cygwin软件包(主要教学环节的组织:

主要通过课堂讲授、学生上机实验及教师辅导达到教学目的。思考题:无。

实验三递归下降分析器的设计实验目的和要求:

使用递归子程序法设计一个语法分析程序,理解自顶向下分析方法的原理,掌握手工编写语法分析程序的方法。重点和难点:本实验的重点是理解自顶向下分析方法的原理;难点是如何把文法改写成ebnf形式。

实验内容:

1、使用递归下降分析算法分析表达式文法:exp ::exp addop term | termaddop

term ::term mulop factor | factormulop

factor ::exp) |number

其中number可以是多位的十进制数字串(整数即可),因此这里还需要一个小的词法分析器来得到number的值。2、该词法分析器以子程序形式出现,当需要进行词法分析时进行调用;3、能够识别正确和错误的表达式;

4、在进行语法分析的过程中,计算输入表达式的值。主要教学环节的组织:

主要通过课堂讲授、学生上机实验及教师辅导达到教学目的。思考题:

1、什么是自顶向下分析方法?2、递归下降分析的原理是什么?实验四算符优先分析法分析器的设计实验目的和要求:

设计一个算符优先分析器,理解优先分析方法的原理。

重点和难点:本实验的重点是理解优先分析方法的原理;难点是如何构造算符优先关系。实验内容:

使用算符优先分析算法分析下面的文法:e’→#e#e→e+t | tt→t*f | ff→p^f | p

p→(e) |i

其中i可以看作是一个终结符,无需作词法分析。具体要求如下:

1、如果输入符号串为正确句子,显示分析步骤,包括分析栈中的内容、优先关系、输入符号串的变化情况;2、如果输入符号串不是正确句子,则指示出错位置。主要教学环节的组织:

主要通过课堂讲授、学生上机实验及教师辅导达到教学目的。思考题:

1、优先分析方法的原理是什么?2、什么是算符文法?3、如何构造算符优先关系?实验五lr分析器的设计实验目的和要求:

熟悉slr(1)分析器的工作过程,理解slr(1)分析方法的原理。对算术运算表达式文法使用slr(1)分析方法,实现语法分析。重点和难点:

本实验的重点是理解slr(1)分析方法的原理;难点是slr(1)分析表(包括action表与goto表)的构造。实验内容:

针对算术运算表达式文法,使用slr(1)分析方法对符号串进行分析,如果输入符号串为正确句子,则显示分析步骤,包括状态栈、符号栈中的内容,输入符号串的变化情况;如果输入符号串不是正确句子,则指示出错位置。主要教学环节的组织:

主要通过课堂讲授、学生上机实验及教师辅导达到教学目的。思考题:

1、lr分析方法的原理是什么?2、lr(0)与slr(1)间的关系怎样?实验六分析程序生成器yacc的使用实验目的和要求:

了解分析程序生成器yacc的功能和使用方法,学会使用yacc与lex相配合,构造实用语法分析程序。重点和难点:本实验的重点是yacc的工作原理及其所要求文法类型;难点是yacc和lex的接口。

实验内容:

使用lex和yacc完成实验三的所有要求。使用lex实现一个用于识别数字串的词法分析程序,利用yacc的规则完成表达式的分析及计算结果的求解。

主要教学环节的组织:主要通过课堂讲授、学生上机实验及教师辅导达到教学目的。思考题:

1、什么是lalr(1)文法?2、yacc输出的文件有哪些?实验七中间**生成器的设计实验目的和要求:

通过完成语义分析和**生成程序,了解语义分析和**生成与词法分析、语法分析的关系,从而体会编译程序的全过程。重点和难点:实验内容:

使用语法制导翻译技术,在语法分析的同时生成相应的中间**。以下面的简单赋值语句文法为例,对输入串进行语法分析并生成相应的中间**(使用三地址**或四元式)。

简单赋值语句文法:s->id:=e

e->e+e|e*e|(e)|-e|id主要教学环节的组织:

主要通过课堂讲授、学生上机实验及教师辅导达到教学目的。思考题:

1、什么是语法制导翻译技术?2、常用的中间**有哪些?四、教学方式。

课堂讲授、学生上机实验及教师辅导等。五、课程考核。

考核类型:考试。

计分办法:百分制,平时成绩60%~70%,考试成绩30%~40%。

《编译原理》实验教学大纲

计算机编译原理 实验教学大纲。说明。一 课程性质 专业核心课程。二 教学目的。设置本实验的目的在于让学生系统地了解并掌握程序设计语言编译程序的构造原理。该课程与其他很多学科紧密相关,编译原理与技术在软件工程,逆向工程,软件工程,语言转换及其他领域中有着广泛的应用,对软件开发也有一定的启发与指导作用。...

《编译原理》实验教学大纲

编译原理 课程实验教学大纲。1 实验课程号 20013b3sy 2 课程属性 必修。3 实验属性 非独立设课。4 学时学分 12学时。5 实验应开学期 秋季。6 先修课程 c语言fortran语言或pascal语言,汇编语言,数据结构,离散数学等。一 课程的性质与任务。本课程属于计算机科学与技术专业...

化工原理实验教学大纲

化工原理实验 教学大纲。四川理工学院材料与化学工程系实验中心。目录。1 化工原理实验的性质和任务 1 2 大纲编写依据 1 3 适用专业 1 4 先行课程 1 5 考核方式及办法 1 6 实验项目 2 7 实验学时分配 2 8 实验基本要求 3 9 教材及参考资料 7 根据材料与化学工程系实践课程体...