聊城大学,计算机学院,编译原理复习.ppt

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

计算机学院 编译原理 * 编译原理 * 计算机学院 编 译 原 理 Compiler Principles 任课教师:郑丽萍 zhengliping80@163.com lcucomputer@163.com 密码lcu123456 2015-2016第2学期 * 编译原理 * 1.2 什么是编译程序 高级语言程序不能被计算机硬件理解,它必须经过一些步骤转换成相应的目标机器指令。 编译程序 程序设计语言 机器语言 编译过程同人工翻译外文资料的过程类似。 编译程序是把用高级语言编写的源程序翻译为等价的目标程序。 * 编译原理 * 源程序P 计算机A 目标程序P’ 计算机B 运行结果 编译程序C 原始数据D 运行程序 编 译 阶 段 运 行 阶 段 什么是编译程序 * 编译原理 * 什么是编译程序 编译程序与运行系统合称为编译系统。 解释程序以源程序作为输入,与编译程序的区别是在解释 程序的执行过程中不产生目标程序,而是解释执行源程序 本身。 典型的编译程序包含八个部分:词法分析程序(扫描器)、 语法分析程序(分析器)、语义分析程序、中间代码生成 程序、代码优化程序、目标代码生成程序、错误检查和处 理程序、各种信息表格的管理程序; * 编译原理 * 编译过程 词法分析 语法分析 语义分析 中间代码生成 代码优化 目标代码生成 一、编译过程 * 编译原理 * 1 词法分析 功能:对由字符构成的源程序进行扫描和分析,得到单词序列。 常以子程序出现,每调用一次提交一个单词符号(二元组形式)。 任务:识别单词、删除空白符号、回车及其他无实质性符号、删除注释、进行单词符号合法性检查。 * 编译原理 * 2 语法分析 功能: 把源程序的单词组成语法短语(表示成语法树)。 即判断源程序是否为相应程序设计语言中的一个合法程序。 依据:语言的语法规则,即描述程序结构的规则。 3 语义分析 功能:明确程序中所出现的一些量的属性和意义,进行相应的语义审查,以保证源程序在语义上的正确性。 上下文相关性 类型匹配 类型转换 * 编译原理 * 4 中间代码生成 目的:便于处理,便于代码优化。源程序的中间表示。三元式、四元式、逆波兰式、树形结构等 特点:易产生、易翻译成目标程序。 5 代码优化 目的:对代码进行改进,使之占用的空间少,运行速度快。 代码优化首先在中间代码进行,由优化的中间代码得到较优的目标代码。 * 编译原理 * 6 目标代码生成 目标代码一般是可重定位的机器代码或汇编语言代码。 为生成目标代码,对程序中使用的每个变量要指定存储单元,并把每条中间代码指令翻译成完全相同任务的机器指令。 7 出错处理 编译程序在各个阶段应诊断和报告源程序中的错误,包括词法错误,语法错误,语义错误。 编译程序应报告出错地点,并给出简明准确的提示信息。 * 编译原理 * 二、编译程序结构 词法分析器 语法分析器 语义分析器 源程序 中间代码生成器 代码优化器 代码生成器 目标程序 出错管理器 符号表管理器 编译程序结构 * 编译原理 * 一、编译阶段的组合 1 分析到综合 源程序的分析 目标程序的综合 在实际的编译器中,若干阶段可以组合在一起,各阶段之间的中间表示也无需显式构造。 编译程序的组织 * 编译原理 * 源程序 中间代码 目标代码 仅依赖源程序 仅依赖目标计算机 前端 后端 2 前端和后端 通常,所有的阶段被分成前端和后端两部分(分析阶段和综合阶段)。 * 编译原理 * 二、遍(PASS) 对输入文件(源程序或其等价的中间形式)从头到尾扫视,完成预定处理 遍 输入文件 输出文件 多遍扫描的优点 各遍扫描功能相对独立,编译程序结构清晰 对源程序及其内部的多次扫视和加工,有利于进行比较细致和充分的代码优化处理 * 编译原理 * 把前端组织成一遍扫描 词法 分析 语法分析 语义分析和 中间代码生成 源程序 中间代码 符 号 表 管 理 错 误 的 诊 查 处 理 * 编译原理 * 符号表 符号表是记录标识符的数据结构。 源程序中使用的标识符; 每个标识符的各种属性。这些属性提供标识符的存储分配、类型和作用域信息。过程标识符,还有参数的个数和类型,参数传递方式和返回值类型等。 利用该数据结构可迅速找到一个标识符的记录,在此记录中存储和读取数据。 * 交叉编译:编译器可以生成用来在与编译器本身所在的计算机和操作系统(平台)相

文档评论(0)

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

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

1亿VIP精品文档

相关文档