编译原理实验大纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《编译原理》实验教学大纲
课程编号:
课程名称:编译原理/Compiler Principles
实验总学时数:12学时
适应专业:计算机科学与技术、软件工程
承担实验室:计算机科学与技术学院实验中心
一、实验教学的目的和任务
1.上机实习是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,实习题中的问题比平时的练习题要复杂,也更接近实际。编译原理这门课程安排的2次上机实验都属于一种设计类型的实验,每个实验的训练重点在于基本的编译技术和方法,而不强调面面俱到;实验的目的是旨在使学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容;培养学生编制算法的能力和编程解决实际问题的动手能力。
2.要求学生在上机前应认真做好各种准备工作,熟悉机器的操作系统和语言的集成环境,独立完成算法编制和程序代码的编写;上机时应随带有关的编译原理教材或参考书;要学会程序调试与纠错;每次实验后要交实验报告。
实验报告的内容应包括:
(1)封面:实验题目、班级、学号、姓名、完成日期;
(2)简要的需求分析与概要设计;
(3)详细的算法描述;
(4)程序清单与运行结果;
(5)收获与体会。
实验成绩占编译原理课程结业成绩的5%。
二、实验项目及学时分配
三、每项实验的内容和要求
要求每个实验保证每个学生一台微机和常用的高级语言编译程序。
实验一(4学时):单词的词法分析程序设计。
1.实验描述:对于常用高级语言(如Pascal、C语言)的各类单词进行词法分析。本实验是综合型、设计型实验,在实验中需要综合运用《离散数学》中的数理逻辑;《数据结构》中的队列;《程序设计》中的算法设计、数组、条件控制、循环控制和《编译原理》中的自动机、文法等等方面的知识。
2.实验内容:
完成对某一种常用高级语言(如Pascal、C语言、PL/0语言)的各类单词进行词法分析,即对源程序从左到右进行扫描,对组成源程序的字符串拼接成为单词;并把其转换成属性字输出。
3.实验要求:
(1)选择常用高级程序设计语言(如Pascal、C语言、PL/0语言)的源程序作为词法分析对象。
(2)根据教学要求和学生具体情况,从上列语言之一中选取它的一个适当大小的子集,可以选取一类典型单词,也可以尽可能使各种类型的单词都能兼顾到。其基本要求是:对源程序从左到右进行扫描,对组成源程序的字符串拼接成为单词;并把其转换成属性字输出。
(3)实习时间为4学时。
实验二(4学时):赋值语句的语法分析程序设计。
1.实验描述:对于常用高级语言(如Pascal、C语言)的赋值语句用所学过的语法分析方法完成语法正确与错误的判断,能够指出语法错误的类型。本实验是综合型、设计型实验,在实验中需要综合运用《离散数学》中的数理逻辑、图;《数据结构》中的队列、栈、链表、树;《程序设计》中的算法设计、数组、条件控制、循环控制、指针、结构体和《编译原理》中的自动机、文法、语法树、词法分析、语法分析等方面的知识。
2.实验内容:
对于常用高级语言(如Pascal、C语言)的源程序从左到右进行扫描,把其中赋值语句用所学过的语法分析方法进行语法分析,判断语句的语法是否正确,如果错误指出错误类型,输出分析过程。
3.实验要求
(1)选择具有代表性的语法分析方法,如算符优先法(或简单优先法)、递归下降分析法、LL分析法和LR分析法之一进行语法分析。
(2)选择对各种常见程序语言都通用的语法结构,如赋值语句(尤指表达式)作为分析对象,判断语法是否正确,如果错误给出错误类型,输出分析过程。
(3)实习时间为4学时。
实验三(4学时):赋值语句的翻译程序设计。
1.实验描述:对于常用高级语言(如Pascal、C语言)的赋值语句用所学过的语法分析方法和语义分析方法进行语法分析、语义分析,并把其翻译成为中间代码形式。本实验是综合型、设计型实验,在实验中需要综合运用《离散数学》中的数理逻辑、图;《数据结构》中的队列、栈、链表、树;《程序设计》中的算法设计、数组、条件控制、循环控制、指针、结构体和《编译原理》中的自动机、文法、语法树、属性文法、词法分析、语法分析、语义分析、中间代码生成等方面的知识。
2.实验内容:
对于常用高级语言(如Pascal、C语言)的源程序从左到右进行扫描,把其中赋值语句用所学过的语法分析方法进行语法分析,采用最有代表性的语义分析方法将其转换为中间代码形式表示输出。
3.实验要求
(1)选择具有代表性的语法分析方法,如算符优先法(或简单优先法)、递归下降分析法、LL分析法和LR分析法之一进行语法分析。
(2)选择对各种常见程序语言都通用的语法结构,如赋值语句(尤指表达式)作为分析对象,并且与所选语法分析方法要比较贴切。
(3)选择具有代表性的语义分析方法,如语法制导翻译方法进行语义翻译工作。
(4)选择具有代表性的中间代码形式,如四元式或三地址形式进行中间代码的生成工作。
(5)实习时间为4学时。
四、实验改革与特色
《编译原理》课程是理论性较强的课程。其特点是概念多、内容抽象。尤其是文法、形式语言及自动机的概念是计算机专业的理论学习和研究的基础。编译原理与方法对于深刻理解程序设计语言、深入了解程序在计算机中的运行机制、掌握程序设计语言的翻译方法起到不可替代的作用。同时《编译原理》课程也是实践性很强的课程,要求学生在基本掌握了编译理论和技术的基础上,综合应用先修课程及本课程的知识,完成课程的实验和课程设计。
五、教材及实验指导书
教材:
《编译原理(第2版)》,主编:张素琴、吕映芝、蒋维杜、戴桂兰,出版社:清华大学出版社,出版时间:2005年2月
《编译原理(第2版)》,主编:胡伦骏,出版社:电子工业出版社,出版时间:2005年1月
《编译原理实验指导书》,自编,2014年9月