编译原理和技术课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《编译原理和技术课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 技术 课件
- 资源描述:
-
1、编译原理和技术编译原理和技术编译原理课程在计算机科学技术中的地位:编译原理课程在计算机科学技术中的地位:程序设计语言离散数学数据结构编译原理操作系统系统软件应用软件软件工程信息系统电子商务编译理论与方法计算机科学与技术中理论和实践相结合的最好典范 ACM 图灵奖,授予在计算机技术领域作出突出贡献的科学家程序设计语言、编译理论与方法约占1/3(。课课 程程 简简 介介学习的意义学习的意义在计算机专业考研或者各大公司招聘时,必在计算机专业考研或者各大公司招聘时,必考内容。考内容。在在x86/Linuxx86/Linux工作站上,以下两个结构的工作站上,以下两个结构的sizesize分别是分别是20
2、20和和1616,为什么不一样?为什么不一样?typedef struct _atypedef struct _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;vc结果结果vs Linux下下gcc的结果的结果vc6中的编译选项有中的编译选项有/Zp1|2|4|8|16,/Zp1表示表示以以1字节边界对齐,相
3、应的,字节边界对齐,相应的,/Zpn表示以表示以n字节边字节边界对齐。界对齐。n字节边界对齐的意思是说,一个成员字节边界对齐的意思是说,一个成员的地址必须安排在成员的尺寸的整数倍地址上或的地址必须安排在成员的尺寸的整数倍地址上或者是者是n的整数倍地址上,取它们中的最小值。的整数倍地址上,取它们中的最小值。要使用这个选项,可以在要使用这个选项,可以在vc6中打开工程属性页,中打开工程属性页,c/c+页,选择页,选择Code Generation分类,在分类,在Struct member alignment可以选择。可以选择。FORTRAN(FORmula TRANslation)第一个实用的高级
4、语言第一个实用的高级语言 擅长于数学函数运算擅长于数学函数运算 常用于科学计算中常用于科学计算中 第一个编译器第一个编译器 历史上第一个实用的编译器历史上第一个实用的编译器(John Backus):Fortran compiler for the IBM 704/709/7090/7094 John Backus,引入了编译器的,引入了编译器的“阶段阶段”或或称为称为“遍遍”的概念,是编译设计的模块化的开的概念,是编译设计的模块化的开始始编译器从逻辑上可以分成若干阶段每个阶段把源程序从一种表示变换成另一种表示本章通过描述编译器的各个阶段来介绍编译这个课题词法分析器词法分析器 id,1 =id
5、,2 +id,3 60 position=initial+rate 60 id,1 =id,2 +id,3 60 第一章 引 论 词法分析器词法分析器语法分析器语法分析器语义分析器语义分析器源程序源程序中间代码生成器中间代码生成器代码优化器代码优化器代码生成器代码生成器目标程序目标程序出错管理器出错管理器符号表管理器符号表管理器 后三个阶后三个阶段对源程段对源程序进行综序进行综合合第一章 引 论 词法分析器词法分析器语法分析器语法分析器语义分析器语义分析器源程序源程序中间代码生成器中间代码生成器代码优化器代码优化器代码生成器代码生成器目标程序目标程序出错管理器出错管理器符号表管理器符号表管理器
6、 分析和综合:把编译过程分成分析和综合两步把编译过程分成分析和综合两步分析:分析源程序以计算其特性所涉及到的分析源程序以计算其特性所涉及到的操作(词法分析、语法分析、语义分析)操作(词法分析、语法分析、语义分析)综合:生成目标代码时所涉及到的操作(生成目标代码时所涉及到的操作(中中间代码生成、代码优化、代码生成)间代码生成、代码优化、代码生成)辅助:符号表管理、出错处理符号表管理、出错处理8项功能对应8个模块。第一章 引 论前端和后端:把编译过程分成前端和后端两部分把编译过程分成前端和后端两部分前端:只依赖于源程序,独立于目标机器只依赖于源程序,独立于目标机器(生成中间代码)(生成中间代码)后
7、端:依赖于目标机器,与源程序无关,只与中间:依赖于目标机器,与源程序无关,只与中间语言有关(从中间代码生成目标代码)语言有关(从中间代码生成目标代码)好处:提高开发编译器的效率提高开发编译器的效率取一个编译器的前端,重写它的后端以产生同一源语言在取一个编译器的前端,重写它的后端以产生同一源语言在另一机器上的编译器另一机器上的编译器不同的前端使用同一个后端,从而得到一个机器上的几个不同的前端使用同一个后端,从而得到一个机器上的几个编译器(采用同一中间语言)编译器(采用同一中间语言)遍(趟):一遍或或一趟:是指编译程序在编译时刻把源程序或源程序是指编译程序在编译时刻把源程序或源程序的等价物(中间程
展开阅读全文