我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 元编译程序 >

编译原理课程教与学(教学大纲)

归档日期:06-15       文本归类:元编译程序      文章编辑:爱尚语录

  先修课程:面向对象程序设计,数据结构,离散数学,软件工程,计算机组成原理,汇编语言程序设计

  本课程主要讲述高级语言翻译为计算机能执行的代码的原理、过程、方法和技术,核心是介绍高级语言到汇编语言的翻译。让学生理解编译和高级语言程序之间的关系,掌握词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等各个阶段的原理、方法和实现技术,真正认识计算机信息处理的实质、训练抽象思维能力、体验系统软件的开发过程,进一步提升计算机科学与技术的专业素养。

  1.掌握形式语言和自动机的基本概念,理解高级语言编译的基本原理,并能够将这些原理应用于高级语言的设计之中;(毕业要求1.3掌握计算机基础理论,能够用于对计算机应用系统的设计方案和模型进行推理和验证。)

  2.能够理解现有某高级语言的编译系统中各模块的功能和实现方法,能够对不同方法的优劣进行对比和分析;(毕业要求4.1能够运用科学方法,对计算机领域的复杂工程问题进行需求和功能分析。)

  3.理解编译程序的结构及各个模块的功能,利用软件工程方法分析和设计某语言的编译程序的各个模块,并能够选择合适的方法实现。(毕业要求1.4能够运用专业知识,对计算机领域复杂工程问题的解决方案进行分析、改进。)

  本课程目标主要支撑的毕业要求指标点如表1所示。除表1所列举指标点外,根据学生特点、本课程教学特色,教学目标还涉及对毕业要求5(选择和使用现代工具)等能力培养,为弱支撑,不在表1中列举。

  通过形式语言与自动机的相关基础知识、高级语言到汇编语言的翻译原理、方法和实现技术等教学内容,传授基于某种高级语言编译程序构造的一般原理和基本方法,如词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等各个阶段的原理等知识,从而有针对性地培养学生模型构建能力(课程目标1)、系统分析能力(课程目标2)和方案选择与实现能力(课程目标3)。

  为达成课程具体目标,教学内容中除安排课内讲授知识外,还包括课程作业和课内实验,旨在巩固课堂传授知识点,使学生在面对计算机复杂工程问题时,能将编译技术合理运用于该类工程的设计实现之中,进行解决方案的分析和改进,并进行合理的需求分析、功能分析和验证。

  本课程的教学内容不仅完全覆盖课程拟达成的具体目标,同时,根据计算机科学与技术专业人才培养总体目标,以及课程所面向学生特点,课程内容还涉及计算机体系结构、汇编语言、项目管理等内容,旨在培养知识交叉应用、沟通交流等综合工程能力。

  作业:了解有关高级语言的编译系统,认识给定高级语言代码的编译过程及结果。

  作业:画状态转换图,将自然语言转换为正则表达式,正则式到确定的最小化DFA的转换。

  ⑵掌握上下文无关文法相关概念,熟悉用上下文无关文法定义某种高级语言的语法结构。

  ⑶掌握自上而下语法分析的特点,对文法的要求,能用两种不同的自上而下分析方法对给定的文法进行判断和分析。

  ⑷掌握自下而上语法分析的基本概念和特点,掌握用两种不同的自下而上分析方法,能对给定的文法进行判断和分析。

  重点:上下文无关文法的基本概念,LL(1)文法,OPG文法,LR文法,各种文法的分析的基本算法。

  作业:给定某高级语言的特定语法成分对应的文法,能对文法进行各种判断和分析。

  课外学习要求:通过完成作业和实验,进一步掌握不同语法分析适合于不同种类的文法的要求。通过网络搜索,了解各种不同的语法分析自动生成器。

  ⑷声明语句、算术表达式和布尔表达式、控制语句、函数的目标结构和翻译方法。

  ⑵掌握属性文法的概念,能用属性文法表示某高级语言特定语法成分的语义信息。

  重点:用属性文法描述各种语法成分的语义信息,各种语法成分语法制导的翻译方法。

  课外学习要求:熟悉中间代码形式,调试程序,将特定高级语言的特定语法成分翻译为中间代码。

  ⑷掌握引用信息、活跃信息,寄存器描述器和地址描述器,基本块的代码生成技术。

  设计并实现sample语言或者其他高级语言的词法分析器,读入源程序,根据对应高级语言的构词规则拆分出单词。其中用状态转换图的方法实现词法分析实验2学时,用自动生成器实现词法分析程序4学时。

  利用自上而下的方法,或者自下而上的语法分析方法,设计并实现sample语言或者其他语言的语法分析器。其中需要分别实现算术表达式、布尔表达式、控制语句的语法分析。

  根据给定语言的静态语义要求,设计并实现sample语言或者其他语言的静态语义检查程序。

  利用属性文法和语法制导翻译方法,设计并实现sample语言或者其他语言的中间代码生成器。其中需要分别实现算术表达式、布尔表达式、控制语句的中间代码生成。

  实验内容:利用VC++或者其他语言的反汇编程序查看C语言程序生成的汇编代码,观察程序在内存中的存储情况。

  根据简单代码生成器的生成算法,设计并实现目标代码生成器,将中间代码转换为汇编代码。

  讲授环节主要采用教师讲解、演示、互动的教学形式。教师讲解知识点、演示程序代码,使学生对知识点形成直观印象,并通过课堂教学双方互相提问,与学生互动,鼓励学生在课堂上发表自己的见解,加深对知识点的理解,达到课程目标。

  上机环节主要采用教师安排任务、学生自主上机练习,教师现场指导、答疑的形式。上机练习可利用实验室电脑或学生个人电脑编程,通过安装在本地的编译环境进行上机练习。

  最终成绩由平时成绩、实验成绩、期末考试成绩等综合而成。各部分所占比例如下:

  平时作业成绩:10%。主要考核对课程各单元的关键知识点、课外学习要求的完成、复习、理解和掌握程度。主要形式是学生提交的作业,通过批改作业对平时学习情况进行考核;或者进行两次课堂测试,对学生平时学习情况进行考核。

  实验成绩:30%。主要考核学生分析、解决问题的能力,以及算法设计与实现能力。学生通过搭建相应的实验环境,完成实验内容,并能获取实验数据,进行结果分析。

  期末考试成绩:60%。主要考核对编译原理基础知识、编译方法和技术的掌握程度,以及解决问题的能力。考试形式为卷面考试,主要题型为简答题、计算题,综合题和应用题。

  能够对给定问题选择合适的算法;有多种实验方案,能够对实验结果进行分析,结论合理

  能够对给定问题选择合适的算法;有多种实验方案,能够对实验结果进行分析,结论合理

  能够对给定问题选择算法;有实验方案,能够对实验结果进行部分分析,得到部分结论

  能够对给定问题建立正确的模型,提出可行的解决思路和方法;实现算法并验证结果;

  能够对给定问题建立合理的模型,提出可行的解决思路和方法;基本实现算法并验证结果

  能够对给定问题建立基本合理的模型,或提出可行解决思路和方法;实现部分算法并验证结果

  本书主要讲述设计和构造编译程序的一般原理、基本设计方法和主要实现技术,以高级语言程序编译的6个主要阶段——词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成为线索,阐述了各阶段的主要功能、原理、设计技术和实现方法。

  本课程的前修课程为面向对象程序设计、数据结构、离散数学、软件工程、计算机组成原理、汇编语言程序设计。

  其中,在《面向对象程序设计》课程中掌握程序设计的基本方法;在《数据结构》课程中掌握链表,图和树的操作方法;在《软件工程》课程中掌握大型软件的开发流程以及过程控制方法;在《离散数学》课程中掌握常见的一些集合理论和相关算法;在《计算机组成原理》中掌握计算机系统结构,常见指令等。

  课程的后续课程是编译原理课程设计,本课程对课程设计提供原理和算法上的支撑。

本文链接:http://rhone-credit.com/yuanbianyichengxu/103.html