大连理工大学编译原理课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《大连理工大学编译原理课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大连理工大学 编译 原理 课件
- 资源描述:
-
1、编译原理和技术刘馨月自我介绍自我介绍刘馨月,女,博士,副教授刘馨月,女,博士,副教授主讲课程:数据结构与算法,编译技术主讲课程:数据结构与算法,编译技术研究方向:数据挖掘,信息检索研究方向:数据挖掘,信息检索数据结构与算法教学团队成员数据结构与算法教学团队成员智能信息处理研究所成员(智能信息处理研究所成员()课程定位课程定位核心课程核心课程分类分类课程名称课程名称课程定位课程定位备注备注 计算机基础计算机基础计算机导论入门算法和数据结构基础高级语言程序设计(1,2)必备工具 计算机理论计算机理论(离散数学(离散数学1,2,3)数理逻辑计算机数学集合论和图论组合数学 计算机硬件类课程计算机硬件类
2、课程数子电路和数字逻辑硬件基础课程含实验计算机原理和汇编语言部件原理含实验计算机接口与通讯部件间通讯含实验计算机体系结构体系结构含实验计算机网络 计算机软件类课程计算机软件类课程编译技术编译技术系统软件层系统软件层含课程设计含课程设计操作系统含课程设计数据库系统原理含课程设计软件工程信息系统分析与设计应用类计算机图形学(多媒体技术)应用类操作系统编译理论与方法计算机科学与技术中理论和实践相结合的最好典范 Intel公司的公司的David Kuck院士曾经将编译器誉院士曾经将编译器誉为为“计算机科学与技术的皇后计算机科学与技术的皇后”ACM图灵奖“计算机界的诺贝尔奖”,授予在计算机技术领域作出突
3、出贡献的科学家程序设计语言、编译理论与方法约占1/3课程简介课程简介本专业人员本专业人员4 4种基本的专业能力种基本的专业能力计算思维能力计算思维能力算法的设计与分析能力算法的设计与分析能力程序设计和实现能力程序设计和实现能力计算机软硬件系统的认知、分析、设计与应用计算机软硬件系统的认知、分析、设计与应用能力能力计算思维能力计算思维能力逻辑思维能力和抽象思维能力逻辑思维能力和抽象思维能力构造模型对问题进行形式化描述构造模型对问题进行形式化描述理解和处理形式模型理解和处理形式模型陈火旺、刘春林等编著陈火旺、刘春林等编著 程序设计语言编译原理(第程序设计语言编译原理(第3版)版),国防工业出版社,
4、国防工业出版社,2001年年4月月蒋立源等主编蒋立源等主编 编译原理编译原理(第第2版版),西北工业大学出版,西北工业大学出版社,社,2002年年1月。月。张素琴,吕映芝等编著张素琴,吕映芝等编著 编译原理,清华大学出版社,编译原理,清华大学出版社,2005年年 胡伦骏等胡伦骏等 编译原理编译原理电子工业出版社电子工业出版社 2005 年年 编译原理、技术和工具编译原理、技术和工具 Compilers:Principles,Techniques,and Tools(美)阿霍,等(美)阿霍,等/2003-8-1/机械工业出版机械工业出版社社/55.00/平装平装/李建中李建中2009年第二版,年
5、第二版,89.00 “龙书龙书”。龙书是龙书是Alfred V.Aho等人于等人于1986年出版的,由于出版年代较早,其中包年出版的,由于出版年代较早,其中包含部分过时的技术并且没有反映一些新的编含部分过时的技术并且没有反映一些新的编译技术。新编的译技术。新编的编译原理编译原理抛弃诸如算符抛弃诸如算符优先分析等过时技术,增加面向对象编译、优先分析等过时技术,增加面向对象编译、类型检查等新技术。类型检查等新技术。课程简介课程简介现代编译原理现代编译原理-C语言描述语言描述/Modern Compiler Implementation in C(美)安佩尔(美)安佩尔/2006-4-1/人民邮电出
6、版人民邮电出版社社/C语言描述语言描述/45.0/平装平装/沈志宇沈志宇/黄黄春春/赵克佳赵克佳 “虎书虎书”。虎书出版比较晚,与虎书出版比较晚,与编译原理编译原理的知识点差不多,但增加的知识点差不多,但增加了数据流分析、循环优化、内存管理等了数据流分析、循环优化、内存管理等内容。与虎书比,内容。与虎书比,编译原理编译原理更适合更适合国内的编译原理课程教学。这本是国内的编译原理课程教学。这本是C版,版,还有还有java版和版和ML版。版。课程简介课程简介高级编译器设计与实现高级编译器设计与实现/Advanced Compiler Design and Implementation(美)马其尼克
7、(美)马其尼克/2005-7-1/机械工业出版机械工业出版社社/75.0/平装平装/沈志宇沈志宇/赵克佳赵克佳 “鲸书鲸书”。鲸书侧重在对编译器后端优鲸书侧重在对编译器后端优化的处理。在本科阶段的编译教学中旨在让化的处理。在本科阶段的编译教学中旨在让学生对程序设计语言的编译全过程有系统的学生对程序设计语言的编译全过程有系统的理解,因此会介绍编译器后端的处理技术,理解,因此会介绍编译器后端的处理技术,但不注重优化技术。但不注重优化技术。与其他自然科学相比,计算机科学的发展历史并与其他自然科学相比,计算机科学的发展历史并不久远,是较新的学科体系,尚有许多未知的领不久远,是较新的学科体系,尚有许多未
8、知的领域有待探索。因此,本专业学生或工程技术人员域有待探索。因此,本专业学生或工程技术人员仅仅满足于学习或应用几门程序设计语言是远远仅仅满足于学习或应用几门程序设计语言是远远不够的。一些看似抽象的课程才是提高专业人员不够的。一些看似抽象的课程才是提高专业人员“内功内功”修为的秘技,例如修为的秘技,例如数据结构、操作系统、数据结构、操作系统、编译原理、计算机系统结构、计算机网络编译原理、计算机系统结构、计算机网络等。不等。不过,经典课程的学习并不是一蹴而就的,如何学过,经典课程的学习并不是一蹴而就的,如何学习与理解习与理解课程的精髓课程的精髓是值得关注的。是值得关注的。学习的意义学习的意义l 有
9、人认为,编译技术似乎已经相当成熟了,继续深入研究是没有任何意义的。有人认为,编译技术似乎已经相当成熟了,继续深入研究是没有任何意义的。实际上,任何科学技术都是发展变化的。表面上看,编译器设计的高层问题实际上,任何科学技术都是发展变化的。表面上看,编译器设计的高层问题似乎已经形成了完美的体系,但当我们深入其内核就会发现事实并非如此。似乎已经形成了完美的体系,但当我们深入其内核就会发现事实并非如此。现代编译器设计面临的挑战是来自目标计算机系统结构、新颖程序设计语言现代编译器设计面临的挑战是来自目标计算机系统结构、新颖程序设计语言及本身的计算资源等多方面的。其中,任何一方面的因素都足以颠覆某些传及本
10、身的计算资源等多方面的。其中,任何一方面的因素都足以颠覆某些传统理论与算法。统理论与算法。l 当然,当然,从更高的层次上从更高的层次上讲,学习编译器设计的目的还不仅仅局限于其本身的讲,学习编译器设计的目的还不仅仅局限于其本身的理论与技术。作为一个系统软件的设计学科,其理论与技术。作为一个系统软件的设计学科,其解决问题的思路与方法更是解决问题的思路与方法更是值得读者细细品味的值得读者细细品味的。这可能是一个漫长而艰辛的历程,不过,这才是经典这可能是一个漫长而艰辛的历程,不过,这才是经典学科的魅力所在。学科的魅力所在。以品味经典为目的来学习与研究操作系统、数据库技术、以品味经典为目的来学习与研究操
11、作系统、数据库技术、计算机网络、编译技术等学科是诸君努力方向。计算机网络、编译技术等学科是诸君努力方向。对软件工程来说,编译器是一个很好的实例(基本设对软件工程来说,编译器是一个很好的实例(基本设计、模块划分等),也是本科期间能碰到的唯一的大计、模块划分等),也是本科期间能碰到的唯一的大型例子,从本课程的学习也能了解到软件工程中的一型例子,从本课程的学习也能了解到软件工程中的一些技术(如基于事件驱动的编程)。本课程所介绍的些技术(如基于事件驱动的编程)。本课程所介绍的概念和技术能应用到一般的软件设计之中。概念和技术能应用到一般的软件设计之中。大多数程序员同时是语言的设计者,虽然是一些简单大多数
12、程序员同时是语言的设计者,虽然是一些简单的语言(如输入输出),本课程的学习有助于提高对的语言(如输入输出),本课程的学习有助于提高对这些语言的设计水平。这些语言的设计水平。自学能力的考查自学能力的考查,抽象思维能力的锻炼抽象思维能力的锻炼课课 程程 简简 介介学习的意义学习的意义在计算机专业考研或者各大公司招聘时,必在计算机专业考研或者各大公司招聘时,必考内容。考内容。在在x86/Linuxx86/Linux工作站上,以下两个结构的工作站上,以下两个结构的sizesize分别是分别是2020和和1616,为什么不一样?为什么不一样?typedef struct _atypedef struct
13、 _atypedef struct _btypedef struct _bchar char c1;c1;char c1;char c1;long long i;i;char char c2;c2;charcharc2;c2;long i;long i;double f;double f;double f;double f;a;a;b;b;在在C程序设计中我们经常需要用到一种数据程序设计中我们经常需要用到一种数据类型的长度类型的长度(占内存的字节数占内存的字节数),例如:例如:int*p=NULL;p=(int*)malloc(10*sizeof(int);/*用用sizeof(int)来得到
14、来得到int类型的长度类型的长度*/vc结果结果 vs Linux下下gcc的结果的结果vc6中的编译选项有中的编译选项有/Zp1|2|4|8|16,/Zp1表示表示以以1字节边界对齐,相应的,字节边界对齐,相应的,/Zpn表示以表示以n字节边字节边界对齐。界对齐。n字节边界对齐的意思是说,一个成员字节边界对齐的意思是说,一个成员的地址必须安排在成员的尺寸的整数倍地址上或的地址必须安排在成员的尺寸的整数倍地址上或者是者是n的整数倍地址上,取它们中的最小值。的整数倍地址上,取它们中的最小值。要使用这个选项,可以在要使用这个选项,可以在vc6中打开工程属性页,中打开工程属性页,c/c+页,选择页,
展开阅读全文