编译原理(引论)技术分析.pptVIP

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理 陈晓明 先修课程 高级程序设计语言 计算机组成原理 操作系统 数据结构 课程内容 介绍编译器构造的一般原理和基本实现方法 介绍的理论知识:形式语言和自动机理论、语法制导的定义和属性文法、类型论、程序分析原理等 强调形式描述技术和自动生成技术 强调对编译原理和技术的宏观理解,不把注意力分散到枝节算法,不偏向于任何源语言或目标机器 课程特点 《编译原理》是理论性较强的课程 。 概念多、内容抽象。尤其是文法、形式语言及自动机的概念是计算机专业理论学习和研究的基础 。 教学目的——《编译原理》是一门非常好的课程 Alfred V.Aho:编写编译器的原理和技术具有十分普遍的意义,以至于在每个计算机科学家的研究生涯中,本课程中的原理和技术都会反复用到 本课程将兼顾语言的描述方法、设计与应用(形式化) 能形式化就能自动化(抽象→符号化→机械化) 可以使学生对程序设计语言具有更加深刻的理解 体验实现自动计算的乐趣 涉及的是一个比较适当的抽象层面上的数据变换(既抽象又实际,既有理论又有实践) 一个相当规模的系统的设计 总体结构 若干具体的表示和变换算法 教学目的(续) 在系统级上认识算法、系统的设计 具有把握系统的能力 局部最优vs.全局最优(木桶效用) “自顶向下”和“自底向上”的系统设计方法 对其思想、方法、实现的全方位讨论 进一步培养“计算思维能力” 深入理解软件系统的非物理性质 培养抽象思维能力和逻辑思维能力 训练对复杂数据结构的设计和操纵能力 教学目的(续) 计算机专业最为恰当、有效的知识载体之一 综合运用下列课程所学知识 高级程序设计语言 汇编语言 集合论与图论 数据结构与算法 计算机组成原理 算法设计与分析 形式语言与自动机 教学要求——实验要求 实验形式 分析、设计、编写、调试、测试程序 撰写实验报告 答辩 实验内容 词法分析器的设计与实现 语法分析器的设计与实现 语义分析与中间代码生成 教学要求——实验目的 实验贯穿于理论、抽象和设计过程; 实验对软件的设计和实现、测试原理和方法起示范作用; 实验不仅仅是对理论的验证,重要的是技术训练和能力培养,包括动手能力、分析问题解决问题能力、表达能力、写作能力等的培养; 实验可以弥补课堂教学的不足,加深对理论过程的理解,启发学生深入思考,敢于创新,达到良好的理论联系实际的教学效果。 教学要求——考试要求 题型 选择、填空、计算、综合等 重点和难点 会在各章的开始点明 考试权重 出勤占5% 作业占15% 期末考试占80% 考前答疑 教学方法 围绕一条主线展开 编译过程的各个阶段 面向系统 从系统的角度,引导大家逐步建立系统观和工程观,并学会折衷 启发式 问题驱动,引导大家理解问题和方法的直观背景 以学生为中心,注重课堂交互,鼓励大家多发问 面向应用 引导大家了解技术、方法的应用背景 注重实践 以编写一个小型语言编译器为目标 参考网站 济南大学信息学院精品课程: /byyl/ 国防科技大学精品课程: /cp/index.php 西安电子科技大学计算机学院精品课程: /jp/index.asp 主要内容 第1章 引论 第2章 高级语言及其文法 第3章 词法分析 第4章 自顶向下语法分析 第5章 自底向上语法分析 第6章 语法制导翻译与属性文法 第7章 语义分析与中间代码生成 第9章 运行时的存储组织 第11章 代码生成 第一章 引论 要点:本章通过简要介绍编译程序的各个逻辑阶段,对全书的内容进行简要概述。本章出现的大部分概念在以后各章会详细介绍,因此不要求在学习本章时就都能理解这些概念。主要掌握以下两点: 1、基本概念:源语言、目标语言、翻译程序、编译程序、解释程序。 2、编译程序的各个逻辑阶段及各阶段的主要功能。 第一章 引论 1.2 程序设计语言的翻译 编译程序与解释程序 编译器(编译程序):如果源语言是某种高级语言,而目标语言是某种低级语言(汇编语言或机器语言),这样的一个翻译程序就称为编译程序。 解释器(解释程序):这是另外一种类型的翻译程序,在翻译过程中它按照高级语言源程序在计算机上执行的动态顺序对源程序的语句逐条翻译(解释),边解释边执行直至结束,它不产生目标程序,它的工作结果就是源程序的执行结果,这样的一个翻译程序就称为解释程序。(口译与笔译)(单句提交与整篇提交) 编译程序与解释程序 例5 假设有源程序:read(x); write(x=, x); 编译程序与解释程序 特点: 1.编译器:工作效率高,即时间快、空间省;交互性与动态特性差、可移植性差。大多数PL采用此种方法翻译; 2.解释器:工作效率低,即时间慢、空间费;交互性与动态特性好、可移植性好。早期的Basic和现在的Java等。 基本功能:二者相同; 所采用的技

文档评论(0)

1112111 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档