编译程序构造原理和实现技术第一章 概论.ppt

编译程序构造原理和实现技术第一章 概论.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译程序构造原理和实现技术第一章 概论

编译程序构造原理和实现技术 任课教师: 万剑怡 信箱: wanjianyi@电话本课程讲述程序设计语言转换成可执行代码时使用的理论、技术、数据结构和算法。 课程内容 第一章 概论 第二章 词法分析 第三章上下文无关文法及分析 第四章自上而下的语法分析 第五章自下而上的语法分析 第六章语义分析 第七章运行时环境 第八章代码生成 第一章 概论 1.1 编译原理的重要性 1.2 编译器的发展 1.3 与编译器相关的程序 1.4 编译器逻辑阶段的划分 1.5 编译阶段的组合 1.6 交叉编译 1.7 考核方式 1.1 编译原理的重要性 在计算机科学的课程中,编译原理占有非常重要的位置: 学习该课程有助于理解程序设计语言,迅速掌握新的语言工具。 如果软件“工程师”掌握一定的编译原理知识,他就懂得程序是如何运作的,写出更高效的程序;同时可以迅速掌握新的语言工具。 该课程包含的许多软件技术对于从事软件设计很有价值。 建立词法分析器的串匹配技术已用于文本编辑器、信息检索系统,模式识别器,软件的建模和测试领域。 上下文无关文法和语法制导定义等概念已用于许多诸如书的排版、绘图系统这样的小语言。 计算机应用程序中经常遇到的一个任务就是命令解释程序和界面程序的开发(例如:手机微浏览器的开发),这比编译器要小,但使用的却是相同的技术。 代码优化器已用于程序验证器和从非结构化程序产生结构化程序的程序验证器之中。 该课程蕴含着计算机学科中解决问题的思路、抽象问题和解决问题的方法。 编写编译器的过程,实际上就是对程序进行全局抽象的过程。可以使我们对编程有一个全面和高层次的理解。 计算机理论的三个传统的核心领域:自动机、可计算性和复杂性。 第一章 概论 1.1 编译原理的重要性 1.2 编译器的发展 1.3 与编译器相关的程序 1.4 编译器逻辑阶段的划分 1.5 编译阶段的组合 1.6 交叉编译 1.7 考核方式 1.2 编译器(compiler)的发展 第一代编程语言:在20世纪40年代,冯?诺伊曼 存储—程序计算机,编写一串代码或程序成为必要,开始用机器语言编写程序。 例如:c7 06 0000 0002(16进制) 第一代编程语言是二进制机器码,即0、1的二进制序列; 机器可以直接执行和处理用机器语言编写的程序。 汇编语言以符号的形式给出指令及存储地址,大大简化了编程过程,直到现在,在一些实时性要求较高及希望使用计算机特定硬件结构特性的场合仍用汇编语言在编程; 汇编语言也有许多缺点:编写、阅读和理解都比较困难;而且严格依赖于特定的机器,为一台计算机编写的代码在应用于另一台计算机时必须完全重写。 我们把严格依赖于特定机器的机器语言、汇编语言称为低级语言。 第三代编程语言的出现:发展编程技术的下一个步骤,高级语言:类似于数学定义或自然语言的简洁形式来编写程序,与机器无关,例如:x=2; 1.2 编译器(compiler)的发展(续) 1954年至1957年期间 IBM 的John Backus 带领的一个研究小组开发了FORTRAN语言及其编译器。 于此同时,Noam Chomsky 开始了他的自然语言结构的研究。他提出了一种用来描述语言的数学系统,并以此定义了四类性质不同的语言,称为语言(文法)的Chomsky分类。 1.2 编译器(compiler)的发展(续) 编译器的自动构造: 1.2 编译器(compiler)的发展(续) 编译器设计最近的发展 第一章 概论 1.1 编译原理的重要性 1.2 编译器的发展 1.3 与编译器相关的程序 1.4 编译器逻辑阶段的划分 1.5 编译阶段的组合 1.6 交叉编译 1.7 考核方式 1.3 与编译器相关的程序(续) 1.3 与编译器相关的程序(续) 汇编程序(assembler) 汇编程序是用于特定计算机上的汇编语言的翻译程序。有时,编译器会生成汇编语言作为其目标语言,然后再有一个汇编程序将它翻译成特定计算机上的目标代码。 1.3 与编译器相关的程序(续) 预处理器(preprocessor) 预处理器是在真正的翻译开始之前由编译器调用的独立程序。 编辑器(editor) 编译器通常接受由任何生成标准文件(如ASCII文件)的编辑器编写的源程序。 调试程序(debugger) 调试程序是可在被编译了的程序中判定执行错误的程序,它经常与编译器一起放在IDE中。 第一章 概论 1.1 编译原理的重要性 1.2 编译器的发展 1.3 与编译器相关的程序 1.4 编译器逻辑阶段的划分 1.5 编译阶段的组合 1.6 交叉编译 1.7 考核方式 1.4编译器逻辑阶

文档评论(0)

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

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

1亿VIP精品文档

相关文档