编译原理第1章绪论.pptx

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第一章 绪论;第一章 绪论;第一章 绪论;1.1 程序设计语言概述;高级程序设计语言的特点和发展;高级程序设计语言的特点和发展;高级程序设计语言的特点和发展;1.1 程序设计语言概述;构建编译器的相关科学;把英文翻译为中文 识别出句子中的一个个单词; 分析句子的语法结构; 根据句子的含义进行初步翻译; 对译文进行修饰; 写出最后的译文。 ;1.2 编译过程概述;1.2.1 词法分析;1.2.2 语法分析和语义分析;1.2.3 中间代码生成和优化;1.2.4 目标代码生成;1.2.5 表格管理;1.2.6 出错处理; 编译前端:与源语言有关,如词法分析,语法分析,语义分析与中间代码产生,与机器无关的优化 编译后端 :与目标机有关,与目标机有关的优化,目标代码产生;程序设计环境 编辑程序 编译程序 连接程序 调试工具 集成化的程序设计环境 ;.NET Framework与VS.NET;机器语言或汇编语言 主要优点:编出??的程序效率高。 主要缺点:编程效率低,可读性差,不便于修改和移植。 高级程序设计语言已基本取代汇编语言 优点:编程效率高,可读性好,利于移植。 缺点:编译程运行效率较低。;自编译性: 如果一个高级语言能用来书写自己的编译程序,则该语言具有自编译性,并称该语言为自编译语言。;自编译方式产生编译程序:;I;A机器上已有用A机器代码实现的高级语言C的编译程序 ?A机器上用A机器代码实现的高级语言C#的编译程序;1.4.2 编译程序的移植;1.4.2 编译程序的移植;1.5 并行编译概述;1.6 高级语言程序简介;1.6.1 高级程序设计语言参数传递;1.6.1 高级程序设计语言参数传递;1.6.1 高级程序设计语言参数传递;1.6.1 高级程序设计语言参数传递;1.6.1 高级程序设计语言参数传递; 1、静态存贮分配 编译时就安排好目标程序运行时的全部数据空间,并能确定每个数据项目的单元地址。 2、动态存贮分配 如果允许递归、可变数据结构,则必须动态分配。 ①栈式:整个程序数据空间安排在一个栈中 ②堆式:允许自由地申请和退还空间第一章 绪论;第一章 绪论;第一章 绪论;1.1 程序设计语言概述;高级程序设计语言的特点和发展;高级程序设计语言的特点和发展;高级程序设计语言的特点和发展;1.1 程序设计语言概述;构建编译器的相关科学;把英文翻译为中文 识别出句子中的一个个单词; 分析句子的语法结构; 根据句子的含义进行初步翻译; 对译文进行修饰; 写出最后的译文。 ;1.2 编译过程概述;1.2.1 词法分析;1.2.2 语法分析和语义分析;1.2.3 中间代码生成和优化;1.2.4 目标代码生成;1.2.5 表格管理;1.2.6 出错处理; 编译前端:与源语言有关,如词法分析,语法分析,语义分析与中间代码产生,与机器无关的优化 编译后端 :与目标机有关,与目标机有关的优化,目标代码产生;程序设计环境 编辑程序 编译程序 连接程序 调试工具 集成化的程序设计环境 ;.NET Framework与VS.NET;机器语言或汇编语言 主要优点:编出??的程序效率高。 主要缺点:编程效率低,可读性差,不便于修改和移植。 高级程序设计语言已基本取代汇编语言 优点:编程效率高,可读性好,利于移植。 缺点:编译程运行效率较低。;自编译性: 如果一个高级语言能用来书写自己的编译程序,则该语言具有自编译性,并称该语言为自编译语言。;自编译方式产生编译程序:;I;A机器上已有用A机器代码实现的高级语言C的编译程序 ?A机器上用A机器代码实现的高级语言C#的编译程序;1.4.2 编译程序的移植;1.4.2 编译程序的移植;1.5 并行编译概述;1.6 高级语言程序简介;1.6.1 高级程序设计语言参数传递;1.6.1 高级程序设计语言参数传递;1.6.1 高级程序设计语言参数传递;1.6.1 高级程序设计语言参数传递;1.6.1 高级程序设计语言参数传递; 1、静态存贮分配 编译时就安排好目标程序运行时的全部数据空间,并能确定每个数据项目的单元地址。 2、动态存贮分配 如果允许递归、可变数据结构,则必须动态分配。 ①栈式:整个程序数据空间安排在一个栈中 ②堆式:允许自由地申请和退还空间

文档评论(0)

136****0775 + 关注
实名认证
内容提供者

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

认证主体吴**

1亿VIP精品文档免费下

相关文档

相关课程推荐