《编译原理》课程标准_第1页
《编译原理》课程标准_第2页
《编译原理》课程标准_第3页
《编译原理》课程标准_第4页
《编译原理》课程标准_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE 编译原理课程标准(执笔人:王挺 审阅学院:计算机学院)英文名称:Principles of Compilers预修课程:计算机程序设计,数据结构,算法设计与分析,计算机原理,集合论与图论,数理逻辑与代数结构学时安排:50学时,其中讲授44学时,实践4学时,考核2学时。学 分:2.5一、课程概述(一)课程性质地位编译原理课程是工程技术类计算机科学与技术专业的专业必修课程。学生将通过本课程学习程序设计语言编译程序构造的基本原理和方法。在计算机科学中,转换和变换无处不在,本课程为学生将来从事计算机专业工作奠定扎实的专业理论和方法学基础。(二)课程基本理念本课程力求反映编译程序设计的经典理论

2、方法和最新的发展动态,强调理论学习和实践的紧密结合,力图通过本课程学习为学生提供一个经典理论和先进技术紧密结合的典型示范。特别在课程实践环节中,注重培养学生通过灵活运用理论知识、设计较复杂的软件来解决实际问题的能力。(三)课程设计思路本课程按编译程序主要功能模块的构造原理和关键技术来安排教学内容。在教学实施中以经典基础理论学习为基础,注重展示经典理论对先进技术的支持。通过综合实验环节,为学生提供综合运用知识、培养科研素质的机会,注重提高学生的自主创新能力。二、课程目标通过本课程的学习,学生将理解和掌握编译系统的结构、工作流程以及编译程序各组成部分的设计原理和实现技术,获得分析、设计、实现和维护

3、编译系统的初步能力,理解运用编译方法解决工程实践中的变换和转换问题的方法。通过对编译程序具体案例的分析和改造,学生将感受到经典理论和先进技术之间的紧密联系。(一)知识与技能本课程围绕程序设计语言编译程序构造的基本原理和方法为核心组织知识学习和技能训练。在知识学习上,主要包含:编译程序的结构和工作流程、编译程序各组成部分的设计原理和实现技术等。通过对编译理论和方法的学习,将有助于学生对程序设计语言的设计与实现的理解。在技能训练上,注重对编译程序的分析、设计、实现和维护能力的训练,并提高学生对工程实践中变换和转换问题的求解能力。课程介绍的经典语言分析方法和工具,对于设计一些实用的工具和软件,如文本

4、处理、自然语言理解、网络信息处理、网络协议的分析与实现等,都是必备的基础。(二)过程与方法本课程在介绍经典理论的基础上,揭示运用经典理论解决编译程序的设计和构造问题的过程和方法。通过本课程的学习,学生将感受到经典理论和先进技术之间的紧密联系,理解理论研究和技术实现之间结合方法。(三)情感态度与价值观学生将通过编译程序这一具体实例,体会到基础理论研究成果在推动技术进步中的重要作用,有助于培养理论联系实际、运用科学知识解决实际问题的科学态度,从而形成科学的价值观。编译是计算机软件的核心步骤,准确和严密是其主旋律,编译原理课程将有意识地引导学生增强责任感和职业道德。三、内容标准第一章 引论主要内容:

5、1编译程序的基本概念2编译过程概述3编译程序的结构4编译程序与程序设计环境5编译程序的生成教学重难点:1编译过程2编译程序的结构教学要求:1掌握编译程序的基本概念。2了解编译程序工作的基本过程几个阶段的基本任务。3熟悉编译程序总框。第二章 高级语言及其语法描述主要内容:1程序语言的定义2高级语言的一般特性3程序语言的语法描述教学重难点:1语法,语义2文法的构造教学要求:1理解程序语言的词法、语法和语义等概念。2掌握高级程序设计语言的一般结构和主要共同特征。3正确理解文法和语言的一些基本概念,如文法的定义和构造、句型、句子、语言、推导、语法树等。第三章 词法分析主要内容:1对于词法分析器的要求2

6、词法分析器的设计3正规表达式与有限自动机4词法分析器的自动产生教学重难点:1词法分析器的功能和设计方法2正规表达式、有限自动机和正规文法的等价性3有限自动机的确定化和最小化教学要求:1了解词法分析器的功能和输出形式,熟练掌握词法分析器设计的原理和方法,能够以转换图为工具使用某种语言的编写并调试一个扫描器。2正确理解正规表达式与有限自动机的有关概念、理论。3了解词法分析的自动产生原理。第四章 语法分析自上而下分析主要内容:1语法分析器的功能2自上而下分析面临的问题3LL(1)分析法4递归下降分析程序构造5预测分析程序教学重难点:1消除左递归,消除回溯2递归下降子程序的构造3预测分析程序的构造教学

7、要求:1正确理解自上而下分析法的基本思想。2掌握递归下降分析法的基本方法:消除左递归、消除回溯、构造递归下降子程序。3掌握预测分析方法:预测分析表的构造方法、LL(1)文法的定义。第五章 语法分析自下而上分析主要内容:1自下而上分析基本问题2算符优先分析3LR分析法4语法分析器的自动产生工具YACC教学重难点:1算符优先分析表和优先函数的构造2LR(0)、SLR、LR(1)分析表的构造教学要求:1正确理解自下而上分析法的基本思想和有关归约、短语、句柄、规范归约等概念。2掌握算符优先分析法:算符优先表和优先函数的构造技术。3了解LR 分析器基本原理和工作方法,能够构造LR(0)、SLR、LR(1

8、)分析表。4了解YACC实现自动产生分析表的基本思想。第六章 属性文法和语法制导翻译主要内容:1属性文法2基于属性文法的处理方法3S-属性文法的自下而上计算4L-属性文法和自顶向下翻译5自下而上计算继承属性教学重难点:1属性的计算2翻译模式的构造教学要求:1理解语法制导翻译和属性文法的基本思想和方法。2掌握属性的计算方法。3掌握翻译模式的构造方法。第七章 语义分析和中间代码产生主要内容:1中间语言2说明语句3赋值语句的翻译4布尔表达式的翻译5控制语句的翻译6过程调用的处理7类型检查教学重难点:1表达式的翻译模式的构造2常用控制结构的翻译模式的构造教学要求:1熟悉几种中间语言的描述。2掌握各种语

9、句的翻译方法。3掌握各种语句的语义规则和语义子程序设计方法。第八章 符号表主要内容:1符号表的组织与作用2整理与查找3名字的作用范围4布尔表达式的翻译5符号表的内容教学重难点:1符号表的作用、组织方法和内容2名字的作用范围分析教学要求:1了解符号表的作用、组织方法。2了解符号表包含的一般内容。3掌握名字作用域分析方法。第九章 运行时存储空间组织主要内容:1目标程序运行时的活动2运行时存储器的划分3静态存储分配4简单的栈式存储分配5嵌套过程语言的栈式实现6堆式动态存储分配教学重难点:1参数传递机制2栈式存储分配的实现3嵌套过程语言的栈式实现教学要求:1了解目标程序运行时存贮空间的使用和组织管理方

10、法、掌握参数传递机制。2理解静态分配和动态分配的基本思想。3了解FORTRAN数据区管理方法及其内容。4掌握栈式分配中活动记录的作用、组织、内容及使用,掌握目标程序运行时动态运行栈的内容的组织和变化过程。5了解面向对象语言的存储分配机制。第十章 优化主要内容:1优化概述2局部优化3循环优化教学重难点:1DAG表示及其应用2循环优化教学要求:1理解代码优化的含义、作用。2掌握利用DAG表示进行局部优化的方法。3掌握循环优化的基本思想和方法。第十一章 目标代码生成主要内容:1目标代码生成的基本问题2目标机器模型3一个简单的代码生成器4寄存器分配5DAG的目标代码6窥孔优化教学重难点:简单代码生成器

11、的生成算法教学要求:1了解代码生成过程中的基本问题。2理解待用信息、寄存器描述和地址描述等概念。3掌握简单代码生成器的生成算法、寄存器分配策略。4了解DAG的目标代码生成、窥孔优化的基本思想。第十二章 并行编译基础主要内容:1并行计算机及其编译系统2并行编译基本概念3依赖关系4依赖关系问题5依赖关系测试6循环的向量化与并行化7循环变换技术教学重难点:1数据依赖关系的形式定义2数据依赖关系分析技术3根据依赖关系判别可向量化循环与可并行化循环教学要求:(注:本章为选讲内容,可安排自修)1了解并行编译技术的基础知识。2了解依赖关系分析的基础理论以及向量化、并行化的基础知识。实验教学部分教学目的:本课

12、程实验的主要任务是通过动手实践,使学生掌握和理解编译的基本过程、各个编译阶段的功能、常用的设计方法和技术,最终能利用学到的知识设计某种语言子集的一个编译程序。课程实践包括单元实验和综合实验两部分。在完成综合实验的规定内容外,鼓励学生自主提出拟扩充的语言机制并独立设计实现,如数据类型、结构的扩充等,以培养学生自主研究的意识和能力。教学内容:1编译程序构造工具的使用2PL语言编译程序扩充教学要求:1要求学生掌握LEX、YACC和JavaCC等常用编译程序构造工具的使用。2要求学生完成对简单的、包含现代程序设计语言典型成分的语言的编译器的分析和扩充。3. 要求实验室提供C+、Java和PASCAL(

13、或Delphi)编程环境。四、实施建议(一)教学实施1课程学时分配表教学内容学时安排讲授学时实践学时考核学时小计讲解研讨录像其他实验上机室外野外其他第一章22第二章44第三章516第四章55第五章617第六章55第七章516第八章22第九章415第十章44第十一章22第十二章0自修0考核22小计4442502教学方法和手段本课程是一门理论性、实践性和技术性很强的课程。以课堂讲授为主,采用多媒体教学手段,重视上机实践,培养学生的动手能力。本课程将全程多媒体教学,多媒体教学学时占课程学时的100。网络教学平台:学校网上教学平台计算机学院本科课程编译原理。(二)考核评价考核方式:考试组织方式:笔试,

14、闭卷成绩评定:百分制记分标准:课程成绩由笔试、实验和平时作业三部分组成,三部分分别占总分的70%、25%和5%。(三)教材选用1教材程序设计语言编译原理,陈火旺、刘春林等,国防工业出版社,预计2009年出版,第四版2参考书(1)Compilers: Principles, Techniques, and Tools,2nd Edition,Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman,Addison Wesley,2006(2)Modern Compiler Implementation in Java,2nd Edit

15、ion,Andrew W. AppelandJens Palsberg,Cambridge University Pres,2002(3)Advanced Compiler Design and Implementation,1st Edition,Steven Muchnick,Morgan Kaufmann,1997编译原理实验教学大纲(执笔人:王挺 审阅学院:计算机学院)课程名称:编译原理总 学 时:50学时实验学时:4学时实验地点:计算机技术与网络实验室一、目的与任务编译原理是一门理论性、技术性、实践性很强的课程。本课程实验的主要任务是通过动手实践,使学生理解编译的基本过程、各个编译阶

16、段的功能,掌握常用的一些设计方法和技巧,达到能够利用学到的知识设计和改造编译程序的目的。课程实践包括单元实验和综合实验两部分。在完成综合实验的规定内容外,鼓励学生自主提出拟扩充的语言机制并独立设计实现,以培养学生自主研究的意识和能力。二、主要内容与基本要求实验1 编译程序构造工具的使用1实验目的与任务了解经典的编译程序构造工具的使用。2实验原理用C+和Java等高级语言进行实现。3实验内容及要求学习和分析LEX、YACC和JavaCC等常用编译程序构造工具,能够用这些工具构造简单语言的分析程序。4实验结果及要求能够对简单的语言进行词法和句法分析。实验2 PL语言编译程序扩充1实验目的与任务以P

17、L语言(PASCAL语言的子集)为背景,实践编译程序的构造方法。2实验原理用C+和PASCAL等高级语言进行实现。3实验内容及要求首先通过调试PL语言编译程序,了解一个小的编译程序的总体框架,掌握递归下降分析程序的构造,理解和掌握错误处理方法及符号表的组织方式,理解和掌握语法制导翻译。然后扩充PL语言成分,并对相应的编译程序进行扩充。扩充内容包括:扩充语句,如增加for 语句、repeat 语句、case语句等增加函数的说明和使用扩充数据类型,如实型、记录类型等扩充其它语言成分4实验结果及要求提供一个或多个能够说明扩充功能的PL语言的示例程序,要求这些程序能够覆盖所有的扩充功能。通过运行修改后的PL语言

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论