[工学]编译原理-第一章.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]编译原理-第一章

TJNU-COCIE-WJW 编译原理 第一章 引论 王金伟 计算机与信息工程学院 天津师范大学 编译原理 课程类别:专业选修课 适用专业:计算机科学与技术、计算机软件 总 学 时:51(平均每周3学时) 总 学 分:3 先修课:C语言、数据结构、离散数学 各班选一位同学担任课代表(收发作业) 考核方法 考勤5%(随机点名5次,每次1分) 课后作业5%(5次,每次1分) 上机作业20%(4个,试验报告,每个5分) 期末70% 主要内容 编译程序的基本构造原理和基本实现技术 形式语言基础知识 词法分析 语法分析 语法制导翻译 程序优化 代码生成 主要章节 第1章.引论 第2章.高级语言的定义和一般特征 第3章.词法分析 第4章.语法分析——自上而下分析 第5章.语法分析——自下而上分析 第6章.属性文法和语法制导翻译 第7章.语义分析和中间代码生成 第8章.符号表 第9章.运行时存储空间组织 第10章.优化 第11章.目标代码生成 教材和参考书 1. 教材: 陈火旺等:程序设计语言编译原理(第三版),国防工业出版社,2000年 2. 参考书: 编译原理和技术(第二版,陈意云编著,中国科学技术大学出版社,1997) 吕映芝、张素琴、蒋维杜:编译原理;清华大学出版社 1998 杜淑敏、王永宁:编译程序设计原理;北京大学出版社 1986 第一章 引论 1.1 什么叫编译程序 1.2 编译过程概述 1.3 编译程序的结构 1.4 编译程序与程序设计环境 1.5 编译程序的生成 1.6 学习“编译原理”课的注意事项 1.1 什么叫编译程序 多数用户用高级语言(C,C++,Pascal)编写程序,以实现他们所需要的应用 但目前的计算机执行的是非常低级的语言:机器语言。 问题:高级语言写出的程序最终是怎样在计算机上执行的呢? 答案:编译程序 一、编译程序的概念 1. 现实例子 2. 翻译程序 能够把某一种语言程序转换成另一种语言程序,并且,后者与前者在逻辑上是等价的。 3. 编译程序 是翻译程序的一种 特点:目标语言比源语言低级 4. 解释程序 特点:以源语言程序作为输入,但不产生目标语言程序,而是边解释边执行 二、编译程序的分类 按编译目的不同分类: 1.诊断编译程序 专门用于帮助程序开发和调试的编译程序 2.优化编译程序 着重于提高目标代码运行效率的编译程序 二、编译程序的分类(续) 按编译目标不同分类: 目标机:运行编译程序所产生目标代码的计算机 宿主机:运行编译程序的计算机 1.交叉编译程序 产生不同于其宿主机的机器代码 2.可变目标编译程序 不需重写编译程序中与机器代码无关的部分就能改变目标机 三、几个概念 1.机器语言 计算机能够直接执行的机器指令系统 例如某种计算机的指令为 1011011000000000 加法操作 1011010100000000 减法操作 2.汇编语言 用一些助记符号来表示机器指令 例如A+B LD R A ADD R B 3.高级语言 其语法和结构类似于自然语言,容易记忆和书写 例如C语言,Java等 4.源语言 把被翻译(或编译)的语言称为源语言 5.目标语言 把翻译(或编译)之后得到的语言称为目标语言 6.源程序 用源语言编写的程序 7.目标程序 用目标语言编写的程序 1.2 编译过程概述 过程复杂,可与自然语言翻译作类比 一、词法分析阶段 任务:输入源程序,根据词法规则,对构源程序的字符串进行扫描和分解,识别出一个个单词符号 单词符号是程序语言的基本成分 例:A = B * C 由5个单词构成:A,等号,B,乘号,C for I:=1 to 100 do 单词符号:for, I, :=, 1, to, 100, do 实现方法: 构造词法分析程序(扫描器) 二、语法分析阶段 任务: 在词法分析的基础上,根据语言的语法规则把识别出的单词符号串,分解成各类语法单位(语法范畴,如表达式、语句、程序段、过程、函数、程序等),以确定整个输入串是否构成语法上正确的“程序”。 例:A = B * C B * C是表达式, A = B * C是赋值语句 实现方法: 构造语法分析程序(语法分析器) 三、语义分析和中间代码生成阶段 任务: 对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译(产生中间代码) 静态语义检查:变量是否定义、类型是否正确等 进行中间代码翻译 例:C语言中,变量需要在使用前声明 实现方法: 构造语义分析程序 中间代码: 是一种含义明确,便于记忆的记号系统,独立于硬件,与机器指令在形式上有所接近,容易替换成机器指令。 表示形式: 后缀式:表示表达式,把运算量(操作数)写在前面,把运算符写在后面(后缀)

文档评论(0)

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

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

1亿VIP精品文档

相关文档