




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理和技术 中国科学技术大学计算机科学与技术学院陈意云0551 3607043yiyun 课程简介 课程内容介绍编译器构造的一般原理和基本实现方法包括的理论知识 形式语言和自动机理论 语法制导的定义和属性文法 类型论与类型系统 程序分析原理等强调形式描述技术和自动生成技术强调对编译原理和技术的宏观理解 不把注意力分散到枝节算法 不偏向于任何源语言或目标机器 课程简介 学习意义对编程语言的设计和实现有深刻的理解 对和编程语言有关的理论有所了解 对宏观上把握编程语言来说 起一个奠基的作用从软件工程看 编译器是一个很好的实例 所介绍的概念和技术能应用到一般的软件设计之中编译技术的应用和编译技术的发展高级语言设计 计算机体系结构的优化 并行 内存分层 新型计算机体系结构设计 程序翻译 提高软件开发效率的工具 高可信软件 课程简介 教材和参考书陈意云 张昱 编译原理 高等教育出版社 2008张昱 陈意云 编译原理实验教程 高等教育出版社 2009A V Aho M S Lam R Sethi andJ D Ullman Compilers Principles Techniques andTools 2ndedition Addison Wesley 2007陈意云 张昱 编译原理习题精选与解析 高等教育出版社 2005教学资源网页 课程简介 课程要求质量上的目标 师生共同努力 达国内最好水平讲课进展较快 平时不复习并加深理解 后面将听不懂作业 少而精 周一课间交作业课程设计 自己动手 大有收获考试 开卷 灵活运用知识学期总评 考试成绩占60 作业占10 课程设计30 上课 设计 考试时间大体安排 课程简介 课程设计要求内容 独立地研发扩展PL 0语言的编译器和解释器目标 巩固对理论和技术的理解 提高程序设计能力技术准备 VC 的编程环境 C语言编程考查与评分 对截止时间前提交的程序 通过测试和答辩进行公开评分前四年课程设计的经验和教训对该课程设计的综合性认识不足对考查的 动真格 认识不足 对课程的评论 本校少年班1994级一个同学 Stanford大学博士 1999年 ActuallyIthinkthequalityofthecompilercourseinUSTCisreallyverygoodandcanbecomparedwithanyuniversitieshere 本系某考研同学 2006年 感觉您出的题目很有创意 也很有深度 没有局限于固定的算法和题型 只看课本和复习往年的题目而不深入思考的人是做不出来的 能够真正从本质上考察一个考生的水平 对课程的评论 西南科技大学某考研学生 2004年 看过你编的书后 感觉编译的原理可以一下子和我平常学的很多学科和语言都联系起来了 可以学到很多可以实际用到的东西 虽然是在讲同样的东西 但您的教学方式让我很适应 学起来也很有兴趣 大大减轻了我考研的疲劳感 第一章引论 名词解释翻译器 translator 编译器 compiler 解释器 interpreter 编译器从逻辑上可以分成若干个阶段每个阶段把源程序从一种表示变换成另一种表示本章通过描述编译器的各个阶段来介绍编译这个课题 1 1编译器概述 1 1编译器概述 记号流 字符流 1 1编译器概述 表达式的语法特征任何一个标识符都是表达式任何一个数都是表达式如果e1和e2都是表达式 那么 e1 e2 e1 e2 e1 也都是表达式 initial rate 60的分析树 语法树 1 1编译器概述 记号流 1 1编译器概述 语法树 语法树 1 1编译器概述 三地址中间代码 语法树 1 1编译器概述 三地址中间代码 三地址中间代码 1 1编译器概述 三地址中间代码 汇编代码 1 1编译器概述 解释器和编译器的区别 解释器不生成目标代码 而是直接执行源程序所指定的运算 解释器也需要对源程序进行词法 语法和语义分析 中间代码生成 1 1编译器概述 BASIC年代的解释器功能 它将高级语言的源程序翻译成一种中间语言程序 然后对中间语言程序进行解释执行在那个年代 编译和解释两个功能是合在一个程序中 该程序被称为解释器Java年代的解释器上述两个功能分在两个程序中前一个叫做编译器 它把源程序翻译成一种叫做字节码的中间语言程序后一个叫做解释器 它对字节码程序进行解释执行 1 1编译器概述 阶段分组前端后端 1 1编译器概述 阶段分组遍 1 2编译器技术的应用 高级语言的实现高级编程语言易于编程 但程序运行较慢低级语言编程时可实施更有效的控制方式 得到更有效的代码 但难编写 易出错 难维护流行编程语言的大多数演变都是朝着提高抽象级别的方向每一轮编程语言新特征的出现都刺激编译器优化的新研究 1 2编译器技术的应用 高级语言的实现每一轮编程语言新特征的出现都刺激编译器优化的新研究支持用户定义的聚合数据类型和高级控制流 如数组和记录 循环和过程调用 C Fortran面向对象的主要概念是数据抽象和性质继承 使得程序更加模块化并易于维护 Smalltalk C C Java类型安全的语言 Java没有指针 也不允许指针算术 它用无用单元收集机制来自动地释放那些不再使用的变量占据的内存Java设计来支持代码移植和代码移动 1 2编译器技术的应用 针对计算机体系结构的优化计算机体系结构的迅速演化引起对新的编译器技术一种不知足的需要并行化 编译器重新整理指令 使得指令级并行更有效 编译器从传统的串行程序自动生成并行代码 使之运行于多处理器上内存分层 编译器优化历来集中在优化处理器的执行上 但是现在更强调要使内存分层更有效 1 2编译器技术的应用 新计算机体系结构的设计现在计算机系统的性能不仅仅取决于它的原始速度 还取决于编译器是否能生成充分利用其特征的代码在现代计算机体系结构的研究中 在处理器的设计阶段就开发编译器 并将编译生成的代码在模拟器上运行 以评价拟采用体系结构的特征编译器技术影响计算机体系结构设计的一个著名例子是精简指令集计算机 RISC 的发明 1 2编译器技术的应用 程序翻译二进制翻译编译器技术可用于把一种机器的二进制代码翻译成另一种机器的代码 以运行原先为别的指令集编译的代码数据库查询解释器数据库查询由一些谓词组成 这些谓词由包含关系运算的布尔表达式组成 可以被解释执行 也可以被
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民用爆炸企业安全培训课件
- 民法研究生课件
- 大家保险考试题库及答案
- 新质生产力核心问题解析
- 民族风漫画人物课件
- 医护患位置关系静态区
- 新质生产力与颠覆性创新
- 安全法基本原则讲解
- 新质生产力的三个层次
- 学校一班级班主任工作方案其次学期
- 4输变电工程施工质量验收统一表式(电缆工程电气专业)-2024年版
- 资金岗位笔试题目及答案
- 诊所负责人聘用合同9篇
- 四轮定位外协协议合同
- 主持人个人礼仪规范
- 2025年人教版《太阳》标准课件
- 老年患者的安全管理课件
- 2025慢性阻塞性肺病(GOLD)指南更新要点解读课件
- 《天体和天体系统》课件
- 《生物制品连续制造指南》
- 2025年高压电工作业考试国家总局题库及答案(共280题)
评论
0/150
提交评论