如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
编译原理研究性教学学习内容研究性学习目标编译系统是计算机系统重要的系统软件之一,编译原理课程主要讲授编译系统重要组成部分程序设计语言编译程序的设计原理和实现技术,是计算机科学与技术专业学生的必修专业课程,也是每个优秀的计算机专业人员必修的一门课程,更重要的是,编译原理课程中蕴含着计算机科学中解决问题的思路、抽象问题和解决问题的方法,其内容可让计算机专业学生“享用一辈子”。本课程开展研究性教学的目是,在教师的引导下以问题回朔与思维启发的方式,使学生在不断的探究过程中掌握编译程序设计和构造的基本原理和实现技术,启迪学生的抽象思维、激发学生的学习兴趣、培养学生的探究精神和专业素养,从而提高学生发现问题、分析问题和解决问题的能力。二、研究性学习任务以理论与教学紧密结合的六个研究性学习专题作为教学载体,这六个研究专题是:词法分析程序构造原理与实现技术递归下降语法分析设计原理与实现技术LL(1)语法分析设计原理与实现技术算符优先语法分析设计原理与实现技术LR(0)语法分析设计原理与实现技术语义分析及中间代码生成程序设计原理与实现技术以上内容专题1必做,专题2、3、4选择2个完成,占期末总成绩的30分。专题5和6为附加选做题,完成后可加分3分和5分。三、研究性学习内容设计研究性学习专题一词法分析程序构造原理与实现技术理论传授源程序输入与词法分析程序输出的基本方法;正则文法及其状态转换图的基本概念,正则表达式及有限自动机的基本概念;正规文法构造相应的状态转换图的基本方法;正则表达式构造有限自动机的基本方法及不确定有限自动机确定化的基本方法;词法分析程序的设计与编写。目标任务[实验项目]完成以下正则文法所描述的Pascal语言子集单词符号的词法分析程序。<标识符>→字母︱<标识符>字母︱<标识符>数字<无符号整数>→数字︱<无符号整数>数字<单字符分界符>→+︱-︱*︱;︱(︱)<双字符分界符>→<大于>=︱<小于>=︱<小于>>︱<冒号>=︱<斜竖>*<小于>→<<等于>→=<大于>→><冒号>→:<斜竖>→/该语言的保留字:beginendifthenelsefordowhileandornot[设计说明](1)该语言大小写不敏感;(2)字母为a-zA-Z,数字为0-9;(3)可以对上述文法进行扩充和改造;(4)‘/*……*/’为程序的注释部分。[设计要求](1)给出各单词符号的类别编码;(2)词法分析程序应能发现输入串中的错误;(3)词法分析作为单独一遍编写,词法分析结果为二元式序列组成的中间文件;(4)设计两个测试用例(尽可能完备),并给出测试结果。[提交文档](1)程序功能描述;(2)主要数据结构描述;(3)程序结构描述:设计方法、函数定义及函数之间的调用关系、程序总体执行图;(4)程序测试:测试用例、测试结果;(5)学习总结:实验过程中遇到的主要问题、如何克服、对你的程序进行评价、对问题的深入理解和实验的收获。任务分析重点解决正则文法到状态转换图的转化问题。能力培养深入理解理论对实践的指导作用;基本原理、实现技术和方法的正确运用。研究性学习专题二递归下降语法分析设计原理与实现技术1、理论传授语法分析的设计方法和实现原理;LL(1)文法及其判定;无回朔的递归下降分析的设计与实现;2、目标任务[实验项目]完成以下描述算术表达式的LL(1)文法的递归下降分析程序G[E]:E→TE′E′→ATE′|εT→FT′T′→MFT′|εF→(E)|iA→+|-M→*|/[设计说明]终结符号i为用户定义的简单变量,即标识符的定义。[设计要求](1)输入串应是词法分析的输出二元式序列,即某算术表达式“实验项目一”的输出结果,输出为输入串是否为该文法定义的算术表达式的判断结果;(2)递归下降分析程序应能发现输入串出错;(3)设计两个测试用例(尽可能完备,正确和出错),并给出测试结果。[提交文档](1)设计文档(提交书面文档);(2)程序功能描述;(3)主要数据结构描述;(4)程序结构描述:设计方法、函数定义及函数之间的调用关系、程序总体执行图;(5)程序测试:测试用例、测试结果;(5)学习总结:实验过程中遇到的主要问题、如何克服、对你的程序进行评价、对问题的深入理解和实验的收获。4、任务分析重点解决LL(1)文法到递归子程序框图的设计。5、能力培养深入理解理论对实践的指导作用;基本原理、实现技术和方法的正确运用。研究性学习专题三LL(1)语法分析设计原理与实现技术1、理论传授语法分析的设计方法和实现原理;LL(1)分析表的构造;LL(1)分析过程;LL(1)分析器的构造;2、目标任务[实验项目]实现LL(1)分析中控制程序(表驱动程序);