信息学院06版《编译原理》课程教学大纲

合集下载

《编译原理》课程教学大纲

《编译原理》课程教学大纲

《编译原理》课程教学大纲一、教学大纲说明(一)课程的地位、作用和任务编译原理》课程是信息与计算科学、信息安全专业的一门专业技术课。

通过本课程的学习,使学生掌握编译理论和方法方面的基本知识,具有设计、实现、分析和维护编译程序等方面的初步能力。

(二)课程教学的目的和要求通过本课程的学习,使学生掌握编译程序构造的基本原理、设计方法和实现技术,具有设计、实现、分析和维护编译程序等方面的基本技能,为今后从事应用软件和系统软件的开发打下一定的理论和实践基础。

掌握:编译原理的基本概念,自动机的理论,上下文文法、LL语法分析技术,LR语法分析技术,动作文法、属性文法理解:小型语言Micro的编译器,中间代码生成,目标代码的生成了解:运行时的存储空间(三)课程教学方法与手段采用理论与实例讨论相结合的教学方法,手段拟采用PowerPoint多媒体教学。

(四)课程与其它课程的联系本课程的前导课程是数据结构、离散数学、操作系统原理等,并与程序设计语言等课程相关联。

(五)教材与教学参考书教材:金成植编译,《程序构造原理和实现技术》,北京,高等教育出版社,2000年教学参考书:1、吕映芝等,《编译原理》,北京,清华大学出版社,1998年2、杜淑敏等,《编译程序设计原理》,北京,北京大学出版社,1990年3、杨宗源,《编译原理习题精选分析与解答》,北京,清华大学出版社,2003年二、课程的教学内容、重点和难点第一章编译程序概述内容:概述编译程序的功能结构、复杂性及其设计开发和测试维护等。

重点:编译程序和解释程序的区别、编译程序的功能分解和组织结构。

难点:编译程序和解释程序的区别。

第二章一个微小编译器内容:介绍小型语言Micro的编译器。

重点:单词的概念和词法分析、处理简单表达式的语义栈技术。

难点:处理简单表达式的语义栈技术。

第三章有限自动机与词法分析器内容:介绍正则表达式和有限自动机及词法分析器的构造。

重点:单词的内部表示、正则表达式、有限自动机、词法分析器的构造。

《编译原理》课程教学提纲

《编译原理》课程教学提纲

《编译原理》课程教学大纲一、课程的性质与目的本课程是软件工程专业必修的专业核心课。

本课程的教学目的,是使学生在学习程序设计基础及语言和数据结构的基础上,进一步理解程序及程序设计语言的本质,掌握程序词法分析和句法分析的基本原理和方法。

学会构造一个编译程序,用以将一种语言所编写的程序(如,用C语言编写的程序)等价变换为另一种语言所编写的程序(如,用汇编语言编写的程序),并能对变换过程中所生成的中间代码程序及变换所得的程序进行优化,以培养良好的程序设计优化思维,提高学生的编程能力,为学习有关专业课程和进行大型软件实践打下必要的基础。

二、课程内容的教学要求1. 编译原理及编译程序构造引论(1)开设编译原理课程的主要作用:让学生理解开设编译原理课程的意义和作用,编译原理课程在计算机专业课程体系中的地位,学习编译原理课程应采用的方法,编译原理课程知识体系结构,让学生初步认识学习编译原理课程的重要性和潜在的使用价值。

(2)编译程序及其构造过程概述:介绍编译程序的基本含义、作用和结构,简述编译程序构造的基本过程,以让学生形成编译程序构造的总体印象。

2. (程序设计)语言和语法描述(1)语言描述体系结构:了解语言的语法、语义和语用的基本含义及相互作用,掌握描述语言语法的基本方法和过程,使学生清楚语言语法描述应包括由字符构造单词的词法描述,及由单词构造句子的句法描述。

(2)语言和文法的基本概念:掌握语言与文法的相关基本概念,如,串、句子、句型、文法、产生式、推导与归约等,语言文法对语言语法描述的作用,文法的形式化描述方法和过程,Chomsky形式语言文法体系及其在语言语法描述中的应用、特别是正规文法及上下文无关文法在语言语法描述中的应用。

(3)从语言构造文法:了解常见语言句子构造模式,掌握从典型语言句子模式构造对应无 产生式文法的方法,使学生能够理解由语言构造文法的重要性。

(4)语法树、分析树与二义文法:掌握语法树、分析树及二义文法的基本概念,如,语法树、分析树、短语、句柄、二义文法,语法树在语言语法分析过程中的作用,语法树构造方法和过程,二义文法对语言文法的简化描述的作用。

《编译原理》教学大纲

《编译原理》教学大纲

《编译原理》教学⼤纲《编译原理》教学⼤纲适⽤专业:软件⼯程专业总学时:(讲授/理论40学时,实验/技术/技能0学时,上机/课外实践0学时)先修课程:《C语⾔程序设计》、《离散数学》、《汇编语⾔程序设计》、《数据结构》(⼀)本课程地位、性质和任务《编译原理》课程是计算机专业学⽣的⼀门重要专业基础课,通过本课程学习,使学⽣掌握编译程序的⼀般构造原理,包括语⾔基础知识、词法分析程序设计原理和构造⽅法。

各种语法分析技术和中间代码⽣成符号表的构造、代码优化、并⾏编译技术常识及运⾏时存储空间的组织等基本⽅法和主要实现技术。

使学⽣掌握编译程序构造的基本原理、设计⽅法和实现技术,具有设计、实现、分析和维护编译程序德⽅⾯的基本技能,为今后从事应⽤软件和系统软件的开发打下⼀定的理论和实践基础。

它有⼀定的理论性,尤其是本课程的知识与计算机应⽤中很多领域有紧密联系与⼴泛应⽤。

了解与掌握本课程的基本内容将有利于学⽣提⾼专业素质和适应社会多⽅⾯需要的能⼒。

培养学⽣掌握构造编译程序的基本原理与设计⽅法,为培养计算机语⾔与⼤型应⽤程序的开发⼈才打下良好的基础。

(⼆)课程教学的主要内容及基本要求第1章概述1.1程序设计语⾔与编译程序1.2编译过程和编译程序的结构1.3编译程序的设计1.4编译程序的发展及应⽤第2章⾼级语⾔设计基础2.1符号和符号串2.2⽂法与语⾔2.3⾼级语⾔的设计2.4语⾔设计实例第3章词法分析3.1词法分析的任务和功能3.2词法分析器的设计3.3正规⽂法、正规式与有穷⾃动机3.4词法分析程序的⾃动⽣成第4章语法分析4.1语法分析概述4.2⾃上⽽下的语法分析4.3⾃下⽽上的语法分析4.4语法分析器的⾃动⽣成⼯具YACC4.5语法分析程序中的错误处理第5章语义分析和中间代码⽣成5.1概述5.2属性⽂法和语法制导的翻译5.3常见语句的语法制导的翻译5.4Sample语⾔语法制导的翻译程序的设计第6章运⾏时存储空间的组织6.1程序执⾏时的活动6.2程序执⾏时的存储器组织6.3静态存储分配6.4栈式存储分配策略6.5堆式存储分配第7章代码优化7.1概述7.2局部优化7.3循环优化第8章⽬标代码⽣成8.1概述8.2⽬标机器8.3简单的代码⽣成算法8.4从DAG⽣成⽬标代码8.5Sample代码优化及⽬标代码⽣成器的设计本课程的教学⼤纲是按编译程序的设计流程顺序展开的。

信息学院06版《编译原理 》课程实验教学大纲

信息学院06版《编译原理 》课程实验教学大纲

《编译原理》课程实验教学大纲课程编号:英文名称课程类型:专业基础课课程理论学时:40课程实验学时:16课程学分:3.5授课对象:本科生先修课程:C语言课程性质:独立设置实验课程()非独立设置实验课程(√)课程实验简介:编译原理是计算机专业中的一门专业必修课程,在理论上它要求学生掌握有关形势语言和自动机的抽象概念,在技术上要求学生能够熟练地利用各种数据结构进行编程。

很具有挑战性,我们希望学生在学习完本课之后,能够对形式语言和其内部结构有一个较深刻的认识。

课程实验目的:通过本课程的学习,加深对编译基础理论、基本知识的理解,较熟练地掌握各种识别算法用C语言在计算机上实现的能力,培养学生应用所学知识解决实际问题的能力。

培养学生严谨的工作作风和实事求是的科学态度,为未来的科学研究及实际工作打下良好的基础。

实验方式与基本要求:方式:在实验过程中,针对每一个需要解决的问题,应当按下列步骤去做。

1. 模块设计:将程序分成合理的多个模块(函数),每个模块做具体的同一事情。

2. 写出(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。

3. 上机调试对程序进行编译,纠正可能出现的语法错误,进行初步调试,能够正确运行后用测试数据进行全面的测试,直至能够得出完全满意的结果。

4. 编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。

5. 作出实验报告要求:1.巩固和加深对编译原理的理解,提高综合编程能力。

2.培养学生选用参考书,查阅手册和文献资料的能力。

培养独立思考、深入研究、分析问题、解决问题的能力。

实验报告要求:1)功能描述:该程序具有什么功能?2)程序结构描述:文法,各种分析表等3)程序总体执行流程图4)实验总结( 实验心得)实验考核方法与规定:学生的实验成绩应以平时成绩(30%)、实验报告成绩(40%)和实验考试成绩(30%)组成,其平时成绩以实验考勤为依据,实验报告成绩以实验报告和实际操作的优劣作为主要考核依据。

编译原理教学大纲

编译原理教学大纲

编译原理教学大纲一、课程介绍本课程主要介绍编译原理的相关概念、理论和实践技术,旨在培养学生对编译原理的理解和应用能力。

通过本课程的学习,学生将了解到编译器的工作原理、设计流程和实现方法,掌握常见编程语言的词法分析、语法分析、语义分析和代码生成等基本技术。

二、教学目标1. 熟悉编译原理的基本概念和基础知识;2. 掌握编译器的各个模块的设计和实现方法;3. 能够使用现有编译器工具进行编译器开发和优化;4. 培养学生的编程能力、分析问题和解决问题的能力。

三、教学大纲1. 编译原理基础1.1 编译器的作用和概念- 编译过程及其阶段- 编译器的核心功能1.2 语言文法和自动机理论- 正则文法和有限自动机- 上下文无关文法和下推自动机1.3 词法分析- 正则表达式和有限自动机实现词法分析器 - 关键字、运算符、标识符、字面量的识别 2. 语法和语义分析2.1 自顶向下语法分析- LL(1)文法及其分析方法- 预测分析表和递归下降分析2.2 自底向上语法分析- LR(0)文法及其分析方法- SLR(1)文法和LR(1)文法分析2.3 语义分析与语法制导翻译- 语义动作和属性文法- 语法制导翻译的实现方法3. 中间代码生成与优化3.1 中间代码的表示和生成- 三地址码和虚拟机- 递归下降翻译的中间代码生成3.2 基本块和流图- 基本块的概念和划分- 控制流的分析和优化3.3 数据流分析与优化- 活性变量分析- 常量传播和复写传播优化4. 目标代码生成和优化4.1 目标代码生成的基本原理- 寄存器分配和指令选择- 代码布局和指令调度4.2 目标代码优化- 数据流分析在目标代码优化中的应用- 循环优化和内存优化四、教学方法本课程采用理论课与实践相结合的教学方法。

理论课重点讲解编译原理的基本概念和原理,实践课通过编写实际编译器项目,培养学生的编程和问题解决能力。

五、考核方式1. 平时成绩占比:40%包括课堂参与、作业完成情况和实验报告等。

《编译原理》教学大纲

《编译原理》教学大纲

《编译原理》教学大纲一、课程概述编译原理是计算机科学与技术专业的一门重要课程,也是软件工程领域的基础课程之一、本课程通过对编译器的原理和实现技术的学习,使学生掌握编译器的设计和实现方法,培养学生独立解决实际问题的能力。

二、教学目标1.理解编译器的基本原理和工作流程;2.掌握常见编译器的构建方法和技术;3.能够设计和实现简单的编译器;4.培养分析和解决实际问题的能力。

三、教学内容和教学进度1.第一章:引论1.1编译器的定义和分类1.2编译器的基本工作流程2.第二章:词法分析2.1编译器的基本结构2.2词法单元的定义和识别方法2.3正则表达式和有限自动机3.第三章:语法分析3.1语法分析的基本概念3.2语法规则的定义和表示方法3.3自顶向下的语法分析方法3.4自底向上的语法分析方法4.第四章:语义分析4.1语义分析的基本概念4.2属性文法和语法制导翻译4.3语义动作和符号表管理5.第五章:中间代码生成5.1中间代码的定义和表示方法5.2基本块和控制流图5.3三地址码的生成方法6.第六章:优化6.1优化的基本概念和原则6.2常见的优化技术和方法6.3编译器的优化策略7.第七章:目标代码生成7.1目标代码生成的基本原理7.2目标代码的表示方法和存储管理7.3基本块的划分和目标代码生成算法8.第八章:附加主题8.1解释器和编译器的比较8.2面向对象语言的编译8.3并行编译和动态编译四、教学方法1.理论教学与实践相结合,注重教学案例的分析和实践;2.引导学生主动探索,注重培养学生的自主学习能力;3.激发学生的兴趣,鼓励学生提问和讨论。

五、考核方式1.平时成绩:包括课堂测验、作业和实验报告等;2.期末考试:闭卷笔试,主要考查学生对编译原理的理论知识和实践能力的掌握程度。

六、参考教材1.《编译原理与技术》(第2版),龙书,机械工业出版社,2024年2.《现代编译原理-C语言描述》(第2版),谢路云,电子工业出版社,2024年七、参考资源1. 实验环境:Dev-C++、gcc、llvm等2.相关网站:编译原理教学网站、编译器开源项目等八、教学团队本课程由计算机科学与技术学院的相关教师负责教学,具体安排详见教务处发布的教学计划。

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

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

《编译原理》实验教学大纲一、实验目的和任务编译原理是计算机科学与技术专业的一门重要课程,它主要研究的是将高级语言程序翻译成机器语言程序的方法和技术。

通过本实验课程的学习,旨在使学生掌握编译原理的基本原理和方法,培养学生对编译器结构与构造技术的专门知识和技能,为学生今后进行编译器设计与实现打下基础。

二、实验设备和工具1.计算机和相关硬件设备2. 编程语言的开发环境,如C/C++或Java三、实验内容1.实验一:词法分析器设计与实现a)实验目的:学习词法分析器的原理和设计方法,掌握正则表达式、DFA和NFA的转换方法。

b)实验任务:i.设计并实现一个词法分析器的原型,能够正确地识别出给定的程序中的词法单元。

ii. 使用给定的正则表达式设计并实现识别给定程序中的关键字、标识符、常量等的词法分析器。

2.实验二:语法分析器设计与实现a)实验目的:学习语法分析器的原理和设计方法,掌握上下文无关文法和LR分析表的构造方法。

b)实验任务:i.学习并理解上下文无关文法和LR分析表的构造方法。

ii. 设计并实现一个简单的递归下降语法分析器。

3.实验三:语义分析器设计与实现a)实验目的:学习语义分析器的原理和设计方法,掌握语义动作的定义和处理方法。

b)实验任务:i.学习并理解语义分析器的原理和设计方法。

ii. 设计并实现一个简单的语义分析器,能够对给定的程序进行语义分析和语义动作的处理。

4.实验四:中间代码生成器设计与实现a)实验目的:学习中间代码生成器的原理和设计方法,掌握中间代码的生成和优化方法。

b)实验任务:i.学习并理解中间代码生成器的原理和设计方法。

ii. 设计并实现一个简单的中间代码生成器,能够将给定的程序翻译成中间代码。

5.实验五:目标代码生成器设计与实现a)实验目的:学习目标代码生成器的原理和设计方法,掌握目标代码的生成和优化方法。

b)实验任务:i.学习并理解目标代码生成器的原理和设计方法。

ii. 设计并实现一个简单的目标代码生成器,能够将中间代码翻译成目标代码。

《编译原理》课程设计教学大纲

《编译原理》课程设计教学大纲

《编译原理》课程设计教学大纲揭金良2006.10.201 目的通过课程设计,将《编译原理》的相关理论和技术运用到软件开发中,提高学生的应用程序设计能力,提高分析问题、解决问题的能力。

2 内容利用编译原理的某种思想或方法,设计一个应用程序,实现的具体内容自拟(见下面的选题指导)。

3 要求进行简单的需求分析、设计说明,写出程序结构框架,阐明设计思路、用到的原理和方法。

程序规模适中,着重于内核功能。

4 估计时间总共时间2.5周(150学时),其中:1.讲课2学时;2.上机48学时调试;3.其余非上机时间由同学自行安排分析、检查问题、绘制流程图、写相关文档,最后集成设计(实验)报告并自行打印。

5 过程指导5.1 选题通过平时积累,找到适合于自己的应用或某种软件功能,该应用能利用编译原理中的某些理论。

题目大小适中。

参考题目如下:1 表达式计算器表达式计算器:这是一款算术表达式计算程序,通过输入表达式达到计算的目的,可代替目前普遍使用的计算器。

使用了编译原理中的词法分析、算符优先分析等。

根据功能的不同可分为:⑴无符号整数表达式计算器:输入无符号整数表达式,输出结果。

难度:较难。

工作量:中等。

⏹整数表达式计算器:考虑负数。

难度:较难。

工作量:中等。

⏹定点实数表达式计算器:难度:较难。

工作量:中等。

⏹通用表达式计算器:考虑1.23e-2的形式输入。

难度:难。

工作量:中等。

⑵函数表达式计算程序:这是一款能计算函数值的实用程序,输入含有自变量x的函数表达式被接受后,可接着输入自变量x的值,输出函数值y的值。

使用了词法分析、算符优先分析。

根据功能的不同可以分为:⏹多项式函数计算程序:只处理多项式函数,如f(x)=x^3+x^2+5等。

难度:较难。

也可设计成其他专用函数计算程序,如幂函数计算、三角函数计算等。

但要避免出现不同用,如不要设计成仅能处理f(x)=2^x的幂函数,因为这样的函数利用普通编程就能实现,无法体现编译原理。

《编译原理》教学大纲

《编译原理》教学大纲

《编译原理》教学大纲Compiler Principles一、课程性质《编译原理》是高等工科院校“计算机科学与技术”、“软件工程”、“信息安全”等专业的一门重要的必修专业基础课。

所含内容涉及学科抽象、理论、设计三个形态。

在学习编译原理所涉及的知识的同时,掌握问题求解的典型思路和方法,帮助学生从系统层面重新认识程序和算法。

二、课程目标本课程的教学目标是:通过学习该课程,使学生了解形式语言基本概念和术语、掌握词法分析、语法分析、语义分析及中间代码生成、代码优化、符号表管理、存储组织和分配及代码优化的基本原理和实现方法。

通过学习编译程序的构造原理和技术,将有助于深刻理解和正确使用程序设计语言。

除此以外,编译原理课程介绍的一些原理、方法和算法并不局限于编译器的构造,也广泛地应用于其他软件的设计与开发。

本课程具有思想素质、知识技能以及能力培养三个层面的通用课程目标:(一)思想、素质教育目标目标1.1 在教学过程中,激发学生自豪感与爱国情怀,鼓励学生通过努力学习掌握先进科学技术,服务国家,回馈社会。

目标1.2 在教学过程中,通过课程内容与中国传统文化思想相结合,提升学生的学习兴趣、人文关怀和道德情操,真正做到“传道、授业和解惑”。

(二)知识教学目标目标2.1 使学生理解编译系统的工作流程和编译器各功能模块的设计原理,能够利用基本原理和方法识别和分析计算机软件开发领域复杂工程问题。

目标2.2 使学生掌握词法分析器、语法分析器开发方法,能够编写词法分析程序和语法分析程序。

(三)能力教学目标目标3.1使学生理解编译系统的工作流程和编译器各功能模块的设计原理,培养学生抽象思维和逻辑思维能力,能够利用基本原理和方法识别和分析计算机软件开发领域复杂工程问题的特征。

目标3.2 使学生掌握设计、编制、分析和维护编译程序的方法和技术,能够应用这些基本方法和技术分析和解决软件开发中的实际问题,使学生具有系统能力,能站在系统的全局去看问题、分析问题和解决问题。

《编译原理》课程教学大纲--供四年制计算机科学与技术(医药软件开发)专业使用

《编译原理》课程教学大纲--供四年制计算机科学与技术(医药软件开发)专业使用

《编译原理》教学大纲(供四年制计算机科学与技术(医药软件开发)专业使用)____________________________________________________________________一、前言本课程是计算机专业的重要专业课之一,主要介绍程序设计语言编译构造的基本原理和基本实现方法。

本课程主要讲授形式语言、有限自动机、自上而下和自下而上的语法分析、LR分析方法、属性文法和语法制导翻译、语义分析的蹭代码产生、存储器的动态分配与管理、符号表的组织与管理、优化问题、代码生成等内容。

本课程学生应掌握以下基本概念和原理,语言和文法、正规式、有限状态自动机、递归下降分析、算符优先分析、SLR 文法、代码生成、代码优化。

本课程的重点是突出基本概念、基本原理及算法,通过课堂教学与实践环节的训练,使学生掌握编译实现的基本方法和技术。

本课程的前导课程是计算机组成原理、数据结构、汇编语言程序设计、微机原理、操作系统原理等,并与程序设计语言等课程相关联。

本课程是考试课。

采用综合考核的考试方法,即在课程结束后一次性闭卷考试为主,并结合课堂提问、课后作业、上机作业等方面的考查,综合评定成绩。

本课程教学时数为:计算机科学与技术专业72学时,其中理论学时48,上机24学时。

教学采用课堂讲授法。

二、教学目的要求和内容第一章引论【目的要求】掌握编译的基本概念、编译过程概述、编译程序的结构了解编译程序与程序设计环境,编译程序的构造【教学内容】编译程序工作的基本过程及其各阶段的基本任务,编译程序总体框架。

【教学方法】课堂讲授第二章高级语言及其语法描述【目的要求】掌握程序语言定义、初等数据类型、数据结构熟悉高级高级语言的一般特性、程序结构、语句与控制结构掌握上下文无关文法,语法分析树与二义性。

【教学内容】上下文无关文法,程序语言定义参数传递。

【教学方法】课堂讲授第三章词法分析【目的要求】掌握词法分析器任务掌握词法分析器设计掌握正规表达式与有限自动机熟悉词法分析器自动生成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《编译原理》课程教学大纲
课程编号:(先不填)
英文名称:Compiler Construction Principles
课程类型:专业基础课
学时/学分:40+16/3.5
授课对象:本科生
先修课程:高等数学,数据结构,C程序设计
课程简介:
本课程是计算机专业学生的一门重要专业基础课,本课程属于计算机科学与技术专业的一门重要的专业必修课。

通过本课程学习,使学生掌握编译程序的一般构造原理,包括语言基础知识、词法分析程序设计原理和构造方法。

各种语法分析技术和中间代码生成符号表的构造、代码优化、并行编译技术常识及运行时存储空间的组织等基本方法和主要实现技术。

它有一定的理论性,又有一定的实践性, 尤其是本课程的知识与计算机应用中很多领域有紧密联系与广泛应用。

了解与掌握本课程的基本内容将有利于学生提高专业素质和适应社会多方面需要的能力。

教学目的和要求:
教学目的:培养学生掌握构造编译程序的基本原理与设计方法,为培养计算机语言与大型应用程序的开发人才打下良好的基础。

本课程坚持理论与实践教学并重的原则,理论上主要叙述语言和文法的形式定义、自动机理论、词法分析、语法和语义分析、优化和代码生成等环节的基本理论和方法,与此同时,通过上机实习构造简单语言的编译程序等编辑器使学生掌握开发应用程序的基本方法。

教学要求:通过本课程的学习, 学生应掌握形式语言理论与编译实现相关的基础概念, 了解与掌握编译程序构造的基本原理与技术, 从形式语言理论的角度, 进一步认识与理解程序设计语言及其与编译程序的联系。

做习题是理解课程中基本概念、培养思考能力和解题能力的重要方面, 要求学生认真做好习题, 并注意解题规范化。

学生也应重视配合教学, 做好上机实习。

教学内容:
第1章编译程序概述(2学时)
1、教学内容:
1)什么是编译程序
2)编译过程概述
3)编译程序的结构
4)编译阶段的组合
5)编译技术和软件工具
2、教学重点:
编译程序的结构
3、教学难点:
编译程序的结构,以及每一阶段任务
第3章文法与语言(6学时)
1)文法的直观概念
2)符号和符号串
3)文法与语言的形式定义
4)文法的分类
5)上下文无关文法及其语法树
6)句型的分析
7)有关文法实用中的一些说明
2、教学重点:
与编译技术密切相关的一些术语和概念。

3、教学难点:
句型的分析
第4章词法分析(6学时)
1、教学内容:
1)词法分析程序的设计
2)单词的描述工具
3)有穷自动机
4)正规式和有穷自动机的等价性
5)正规文法和有穷自动机间的转换
6)词法分析程序的自动构造工具
2、教学重点:
正规式与有穷自动机和正规文法与有穷自动机转换
3、教学难点:
不确定的有穷自动机转换为确定的有穷自动机及最小化第5章自顶向下语法分析方法4
1、教学内容:
1)确定的自顶向下分析思想
2)LL(1)文法的判定
3)某些非LL(1)文法到LL(1)文法的等价变换
4)不确定的自顶向下分析思想
5)确定的自顶向下分析方法
2、教学重点:
确定的自顶向下分析方法
3、教学难点:
预测分析方法的分析表的构造、消除某些文法中的左递归第6章自底向上优先分析法(4学时)
1、教学内容:
1)自底向上优先分析法概述
2)简单优先分析法
3)算符优先分析法
2、教学重点:
算符优先分析法的关系表的构造以及分析过程
算符优先分析法的关系表的构造以及优先函数第7章LR分析法(6学时)
1、教学内容:
1)LR分析法的概述
2)LR(0)分析
3)SLR(1)分析
4)LR(1)分析
5)LALR(1) 分析
6)二义性文法在LR分析中的应用
2、教学重点:
LR(0)分析与LR(1)分析方法
3、教学难点:
构造LR分析法的分析表
第8章语法制导翻译和中间代码生成(6学时)
1、教学内容:
1)属性文法
2)语法制导翻译的概述
3)中间代码的形式
4)简单赋值语句的翻译
5)布尔表达式的翻译
6)控制结构的翻译
7)说明部分的翻译
8)数组与结构的翻译
2、教学重点:
中间代码的形式、布尔表达式的翻译与控制结构的翻译
3、教学难点:
布尔表达式与控制结构的语义过程
第9章符号表(自学)
1、教学内容:
1)符号表的作用和地位
2)符号的主要属性及作用
3)符号表的组织
4)符号表的管理
2、教学重点:
符号表的作用、内容和组织方法
3、教学难点:
符号表中分程序结构层次的管理
第10章目标程序运行时的存储组织(3学时)
1、教学内容:
1)数据空间的三种不同使用方法和管理方法
2)栈式存储分配的实现
3)参数传递
4)过程调用、过程进入和过程返回
2、教学重点:
栈式存储分配的实现
3、教学难点:
嵌套过程语言的栈式实现和分程序结构的存储管理
第11章代码优化(3学时)
1、教学内容:
1)优化技术的简介
2)局部优化
3)控制流分析和循环优化
4)数据流的分析与全局优化
2、教学重点:
重点介绍几种优化技术、局部优化以及循环优化
3、教学难点:
循环优化的过程
第12章代码生成(自学)
1、教学内容:
1)代码的生成概述
2)一个计算机模型
3)一个简单的代码生成器
4)代码生成研究现状
2、教学重点:
一个简单的代码生成器
3、教学难点:
使用信息链表法及代码生成算法
实验内容:
实验一词法分析(4学时)
1、实验目的:
理解并掌握词法分析的思想方法
2、实验内容:
定义模拟的简单语言的词法构成,编制词法分析程序,要求将用模拟语言书写的源程序进行词法分析,输出源程序清单,Token文件和错误信息文件,若有错误,必须输出错误在源程序中行号和列号,并将符号表和字符串以文件的形式写出来。

3、实验方案:
根据所学知识,课下编写,课上编辑调试,并写出实验报告
实验二语法分析(6学时)
1、实验目的:
理解并掌握语法分析的思想方法
2、实验内容:
构造LR分析程序,利用它进行语法分析,判断给出的符号串是否为该文
法识别的句子,了解LR分析方法是规范的从左向右扫描,和自底向上的语法分析方法。

3、实验方案:
根据所学知识,课下编写,课上编辑调试,并写出实验报告
实验三语义分析(6学时)
1、实验目的:
理解并掌握语义分析的过程
2、实验内容:
将非后缀式用来表示的算术表达式转换为用逆波兰式来表示的算术表达式,并计算用逆波兰式来表示的算术表达式的值。

3、实验方案:
根据所学知识,课下编写,课上编辑调试,并写出实验报告
教学环境条件:
1、课堂教学:多媒体教学进行教学,使学生能够很快掌握课程的主要知
识和解决问题的方法。

2、辅导和答疑:以习题课对课程中的重要概念和典型问题的解决方法进
行总结和深入讨论,巩固和加深课堂内学到的知识。

采用电子邮件方式直接与教师联系进行答疑。

3、自学与练习:除读懂教科书中所讲内容外,还需大量做题。

其目的是
要通过做题弄懂、加深对概念的理解,提高解决问题的能力。

为此,安排一定的实验上机学时。

考核方式:
考试类型:考试(闭卷)成绩为:平时成绩+实验成绩+卷面成绩,其中平时成绩占10%,实验成绩占20%,卷面成绩占70%。

课程主持人:薛琳
主讲老师:薛琳、张海英
主要教材:
《编译原理》吕映芝、张素琴、蒋维杜主编,清华大学出版社,1998年参考教材:
[1] 《编译原理》陈意云、张昱高等教育出版社2003年
[2] 《编译原理》胡伦骏、徐兰芳、刘建农电子工业出版社2002年
[3] 《程序设计语言编译原理(第三版)》陈火旺国防工业出版社2000

参考资料:
[1] 《编译原理习题精选与解析》陈意云、张昱高等教育出版社2005-9
[2] 《编译原理考点精要与解题指导》伍春香人民邮电出版社2002-9
[3] 《编译原理基础习题与上机题解答》刘坚、郭强、胡圣明西
安电子科技大学出版社2003-2
[4] 《编译原理》Alfred V.Aho、Ravi Sethi 机械工业出版社2003-9
[5] 《编译原理与实践》Kenneth C.Louden 机械工业出版社
2002-8
学习指导方案:
1、课外自学指导方案:
仔细阅读课本,掌握基本概念,通过典型例子掌握内容
2、课外训练指导方案:
通过作业掌握各种题目的做法大纲制定人:薛琳、张海英
大纲审核人:
大纲制定日期:2006年7月18日。

相关文档
最新文档