网站大量收购闲置独家精品文档,联系QQ:2885784924

编译原理 第01章_编译程序概述.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 课程简介 课程内容 介绍编译器构造的一般原理和基本实现方法 介绍的理论知识:形式语言和自动机理论、语法制导的定义和属性文法、类型论等 强调形式描述技术和自动生成技术 强调对编译原理和技术的宏观理解,不把注意力分散到枝节算法,不偏向于某种源语言或目标机器 为什么要学习编译原理 是计算机学科中一个非常成功的分支 蕴涵着计算机学科中解决问题的思路、抽象问题和解决问题的方法 有利于加深对程序语言的理解 是一个很好的软件工程实例,所介绍的概念和技术能应用到一般的软件设计之中 在软件逆向工程、程序理解和软件安全等方面有着广泛的应用。 教材和参考书 教材 《程序设计语言编译原理》. 陈火旺著,国防科技大学出版社。 参考书 COMPILER CONSTRUCTION-Principles and Practice. Kenneth C. Louden著(San Jose State University) 《编译原理》. (美)阿霍(Aho, A. V.)等著. 李建中等译. 北京:机械工业出版社, 2003.8 《编译原理考研辅导教程》. 电子科技大学出版社 课程要求 目标:相互交流,共同进步 课时:48 课程学分:3 先修课程:《离散数学》《数据结构与算法》《程序设计语言》 考核:考试(70%)+平时(30%) 作业:每章至少1题 编译程序历史(国外) 1957年,IBM的John Backus带领的一个研究小组设计出了Fortran语言及其编译器。 与此同时,Noam Chomsky开始了他对自然语言结构的研究,发现Chomsky Hierarchy。 70年代后期和80年代早期,编译器其它部分的生成自动化。这些尝试并未取得多少成功。 在九十年代,作为GNU项目或其它开放源代码项目的一部分,许多免费编译器和编译器开发工具被开发出来。 编译程序历史(国内) 60年代初期,董韫美院士和杨芙清院士的研究组开发国产机上的ALGOL和FORTRAN编译器。 改革开放前,研制国产计算机,包括大型机和高性能计算机(如向量机、并行机),相应的也在研制高级语言编译器。 90年代以来中科院计算所张兆庆教授研究组(ACTGroup) 先后开发了共享内存多处理机的并行识别器,分布式内存多处理机的并行识别器, SIMD芯片和VLIW芯片的并行优化C编译器。将编译技术与图形学结合,ACTGroup还推出了集成化、可视化的并行编程环境。 编译程序现状 并行机的并行编译技术 基于GCC(GNU C Compiler)生成面向特定芯片的编译器工作 反编译技术 第一章 编译程序概论 什么是编译程序 程序设计语言 计算机可以直接接收的语言是机器语言,由二进制(0、1序列)组成,唯一可以在机器上直接执行的语言。难读、难写、与硬件环境密切相关。 汇编语言用助记符表示指令的操作码。 高级程序设计语言摆脱了对硬件的依赖,易读、易写、便于算法交流。 1.1 什么是编译程序 1.1 什么是编译程序 程序运行阶段 程序运行阶段 1.2 编译过程和编译程序的基本结构 编译过程 编译过程 1. 词法分析 词法规则 词法规则 2. 语法分析 语法规则 语法规则 3. 中间代码生成 例如,前例中 4. 代码优化 5.目标代码生成 表格管理和错误处理 表格管理和错误处理 编译程序的结构 1.3 编译程序的生成方法 编译程序的自动生成 编译程序的自动生成 1.4 编译技术在软件开发中的应用 1.4 编译技术在软件开发中的应用 怎样学习编译原理 做好思想准备,不要畏难,多看书,结合课本后面的习题多做思考和类比, 在学习的过程中归纳出自己的难点和疑惑点,然后重点突破; 自己动手做一个虚拟机,在虚拟机的基础上开发自己的语言和编译器,加强实践;深刻的理解书本上那些抽象的东西。 可以直接专注于编码(Lex,Yacc等)的研究,然后去配合理论的学习,可以在第一次学习的过程中忽略一些内容,等以后用的时候再来学习. 本章小结 什么是编译程序 本章小结 对源语言和目标语言认真分析 设计编译算法 选择语言编制程序 调试编译程序 提交相关文档资料 生成一个编译程序一般要考虑以下几方面: LEX YACC 可用来自动产生整个编译程序的软件工具:编译程序产生器, 它的功能是将任一语言的词法规则、语法规则和语义解释的描述作为输入,自动生成该语言的编译程序。 编译程序自动生成系统。 生成编译程序的方法还常采用自编译方式和移植方式。 随着并行技术和并行语言的发展,处理并行语言的并行编译技术和将串行程序转换成并行程序的自动并行编译技术正在深入研究之中。 虽然我们只有少数人从事构造或维护程序语言编译程序的工作,但是,

文档评论(0)

tk2469tk + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档