文档介绍:该【《编译原理实践及应用》编译原理概述公开课一等奖课件赛课获奖课件 】是由【业精于勤】上传分享,文档一共【50】页,该文档可以免费在线阅读,需要了解更多关于【《编译原理实践及应用》编译原理概述公开课一等奖课件赛课获奖课件 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。编译原理实践及应用
----清华大学出版社
1
教材及重要参照资料
教材:编译原理实践及应用,黄贤英,清华大学出版社
重要参照资料:
(1) 编译原理,陈火旺,国防工业出版社
程序设计语言编译措施,肖军模,大连理工大学出版社
编译原理,张素琴,吕映芝,清华大学出版社
编译原理,alfred ,李建中等译,人民邮电出版社
2
考 核 方 法
平时成绩、作业完毕:10%
规定上课不迟到早退,不旷课,有事请假,记好笔记
规定用大作业本, 不能交单张纸, 独立完毕
试验:30%
规定程序可运行, 并有有关设计和使用阐明
期末考试:60%
闭卷形式
3
C语言程序
void main( )
{ int x,y,z;
x=3;
y=2;
z=x+y;
}
内存地址
内存内容
单元名字
……
……
……
200H
3
x:局部变量
201H
2
y:局部变量
202H
5
z:局部变量
……
……
汇编语言程序
……
mov ax,3
mov x,ax
mov ax,2
mov y,ax
mov ax,x
mov bx,y
add ax,bx
mov z,ax
......
300
302
304
306
308
……
序言
4
为何要学习编译原理?
1、有助于深刻理解和对的使用程序设计语言,加深对高级语言程序执行过程的理解
2、有助于加深对整个计算机系统的理解。
3、设计开发编译程序的软件技术同样可以用于其他软件的设计开发。
4、伴随微处理器技术的飞速发展,处理器性能在很大程度上取决于编译器的质量、编译技术成为计算机的关键技术,地位变得越来越重要。
5
《编译原理》课程在计算机科学中的重要地位
(1) 学习编程最初是学习一门高级语言,C或Pascal,掌握编写某些简单程序的措施;
(2) 学习数据构造,建立“算法”的概念,对编程有更深入的理解。遇到问题的时候,可以寻找对应的数据构造模型,设计合适的算法来处理问题;
(3) 学习汇编语言,这门课程是我们真正深入理解计算机内部工作的第一门课程。通过学习理解汇编语言怎样变为机器语言,怎样对应于一条指令;
(4) 计算机构成原理课程的学习使我们理解到计算机的硬件构成,以及机器指令程序怎样在计算机中运行的过程。
(5) 编译原理课程协助我们理解高级语言程序转换成机器指令程序的过程。可以协助我们更深刻地理解高级语言程序运行的内部机制。
6
《编译原理》课程在计算机科学中的地位
高级语言程序设计
离散数学
数据结构
编译原理
操作系统
系统软件
应用软件
软件工程
信息系统
电子商务
汇编语言
计算机组成原理
7
学习本课程的目的和任务
加深对编程语言设计和实现的理解,对和编程语言有关的理论有所理解,对宏观上把握编程语言来说,起一种奠基的作用,提高自身的编程能力
掌握编译程序的基本构造,掌握常用的编译技术和措施,将编译原理的理论和措施应用于一般的软件设计中
培养团体协作能力
8
本课程的特点
(1) 本课程理论性很强,学习时需要很强的逻辑思维能力
(2) 波及的算法复杂,要深入地理解这些算法很困难
(3) 整个编译程序的构造措施非常精妙,就像一部走时精确的时钟,诸多齿轮、部件协调地运转,以驱动指针精确地旋转;编译程序也是如此,一边扫描源程序,一边通过各个部件的运算,精确地输出为目的语言。
(4) 编译原理课程各个部分之间的独立性很强,包括词法分析、语法分析、存储的组织与分派、中间语言、语法制导翻译、代码生成与优化这几大部分。词法分析和语法分析是其中的重点,语法分析也是难点,需要掌握比较复杂的算法逻辑;其他部分相对来说知识性更强某些。各部分之间的措施也互相独立,在学习时,便于逐一击破。
(5) 考试考察的内容相对来说是很稳定的,绝大多数题目的解法都非常机械。
9
学习措施
(1) 尽量地掌握编译原理的思想,要站得高一点,尽量理解算法的思想,而不是背固定的算法。应当竭力理解为何要这样做,逐渐在头脑中建立起编译器的整体概念,而不是零零碎散的某些算法。
(2) 诸多题目的解法比较固定,要纯熟掌握对应的详细措施。
(3) 多做习题, 对于编译这样的学科,题目的规模很大,环节繁多,并且前面的环节一旦出错,背面都错。
(4) 要扎扎实实地牢记重要算法,配合大量的习题进行练习,达到拿到题目就可以动手做的地步。
(5) 一边学习,一边总结,关键是找差异:同一问题可以用多种措施来求解,不一样措施合用于不一样的文法,对文法的限制和规定,对应的表格的构造、使用等,各个方面的差异都要关注。
(6) 亲自动手实现书上的某些算法,完毕试验指导书上给出的一种简单的编译程序,或者编译程序的一部分,这样能更灵活地掌握编译程序构造的精髓。
10