编译原理概述.ppt

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

例子1C语言的源程序a=b*c+b*d的四元式序列(赋值语句形式的四元式):(1)t1=b*c(2)t2=b*d(3)t3=t1+t2(4)a=t3第30页,共53页,星期日,2025年,2月5日例子2源程序:if(a=b)a=a-c;c=b*c;四元式:t1=abIft1gotolt2=a-ca=t2l:t3=b*cc=t3翻译成——第31页,共53页,星期日,2025年,2月5日(4)代码优化优化(在理论上不是必须的)输入中间代码输出优化后的中间代码对中间代码进行处理,期望得到高效的代码删除无用代码减少冗余目前不要对优化寄予过高的期望现在不能优化算法将来也许能在一定范围内自动选择算法或重构第32页,共53页,星期日,2025年,2月5日(5)目标代码生成目标代码生成输入中间代码输出目标代码涉及的知识包括目标机器指令的选取、寄存器的分配、运行时存储空间组织等可以根据目标机的模型,对目标代码进一步进行优化第33页,共53页,星期日,2025年,2月5日符号表管理记录源程序中使用的名字(标识符)收集每个名字的各种属性信息类型、作用域、分配存储信息名字信息……第34页,共53页,星期日,2025年,2月5日出错处理 检查错误、报告出错信息、排错、恢复编译工作词法错误和语法错误可由编译程序在编译时刻查出。语义错误常采用下列方式查出:静态模拟检查:动态调试检查:第35页,共53页,星期日,2025年,2月5日编译程序的结构词法分析程序语法分析程序语义分析程序中间代码生成程序代码优化程序目标代码生成程序符号表管理程序出错管理程序第36页,共53页,星期日,2025年,2月5日编译程序的结构框图编译的各个阶段第37页,共53页,星期日,2025年,2月5日概念:趟(遍)一个编译程序的工作分成若干个阶段来完成。每个阶段读入整个输入并进行处理的过程称为趟(或遍,pass)。一个编译系统可以看成是一个变换系统进行一系列的变换,即(SL,L1),(L1,L2),….(Lk,TL)其中SL为源语言,TL为目标语言几趟编译程序:第38页,共53页,星期日,2025年,2月5日第1页,共53页,星期日,2025年,2月5日本书结构第一章语言程序概述第二章文法与语言第三章词法分析第四章语法分析第五章编译程序的数据结构和符号表第六章语法制导翻译第七章编译程序第2页,共53页,星期日,2025年,2月5日课程要求基础理论:熟悉基于形式语言理论的编译程序构造原理和高级语言的实现原理。基础知识:全面掌握词法分析、语法分析和语法制导翻译方法等计算机处理技术,了解高级语言中各种语言成分的实现方法。基本技能:掌握计算机语言处理系统中各种通用的分析和翻译技术,以及自动生成系统的运用。第3页,共53页,星期日,2025年,2月5日本课程的目的构造编译器基本知识编译的阶段和相关的活动相关数据结构和算法计算机科学中相关的基础理论形式语言与自动机进一步加深对软件开发的认识第4页,共53页,星期日,2025年,2月5日第一章概述【课前思考】

什么是编译程序?

编译过程和编译程序的结构?【学习目标】

介绍语言翻译的基本概念程序和语言翻译和解释介绍翻译的步骤和相关的活动介绍编译器的开发方法第5页,共53页,星期日,2025年,2月5日知识结构第6页,共53页,星期日,2025年,2月5日课前说明基于形式语言理论中的有关概念来讨论编译实现问题。即编译原理=形式语言理论+编译技术本书主要内容涉及:高级程序设计语言形式语言理论的基本概念构造编译程序的基本概念、原理和技术第7页,共53页,星期日,2025年,2月5日基本观念

——程序、语言计算机、程序、语言计算机接受指令,然后执行指令指令组成的序列,称为程序符合一定规则(文法)的程序的集合,称为语言语法(形式)语义(意义)//形式与意义之间的对应关系?讨论:C语言与C语言程序之间的关系第8页,共53页,星期日,2025年,2月5日基本观念

——语言与程序语言的作用设计程序(选出特定的程序——构造程序)程序的作用由计算机执行在人之间的交流想法,由于程序没有歧义如何定义语言——本课程要学习的内容以有限的规则,定义无限多的程序。第9页,共53页,星

文档评论(0)

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

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

1亿VIP精品文档

相关文档