编译原理 第一章 编译概述1.1 翻译程序翻译程序扫描输入的源程序,将源程序转换成目标程序。
输入源程序的分为两种,高级语言源程序和汇编语言程序。
强化记忆:源程序编写分两类,汇编语言和高级语言,都能生成目标程序机器语言,但是高级语言还可以生成机器语言,翻译程序各不相同,汇编对应汇编程序,高级对应编译程序。
在高级语言程序的编译和运行过程中,源程序和数据是在不同时间处理的。
1.2 解释程序有一种高级语言翻译程序(编译程序) ,从源程序的编译到执行只有一个阶段-解释执行阶段,同时处理源程序和数据。这种翻译程序叫解释程序。
解释方式和编译方式的根本区别:不生成目标程序
优点:易于调试
缺点:执行效率低
1.3 翻译程序的过程翻译程序的过程包括:词法分析,语法分析 语义分析等,注意:代码优化和目标代码生成阶段不是必需的。
1.3.1 词法分析与语法分析词法分析:输入是源程序 输出是单词流
语法分析:输入是单词流 输出是语法树
词法分析,又称扫描器,根据词法规则分析和识别单词,并表示为机内形式。
语法分析,根据语言规则,分析并识别出各种语法成分(如表达式,语句),并进行语法正确性检查,常用语法树表示结果。
1.3.2 语义分析语义分析:确定源程序的语义是否正确,注意识别的是部分错误。
语法分析主要能识别的语义错误有:
1.有变量未经声明就使用。
2.变量重复声明。
3.运算对象类型是否匹配。
语义分析程序通常将源程序生成一种中间表示形式,即中间代码,包括三元式,四元式,逆波兰式
1.3.3 代码优化提高目标程序的执行效率,首先在中间代码上进行。
1.3.4 目标代码生成目标代码的形式(分为三种):
1.绝对指令代码
2.可重定位的机器指令代码
3.汇编指令代码
三种指令代码要记住!!
1.3.5 符号表管理符号表用来记录有关标识符的各种信息。
标识符的各种属性是在编译的==不同阶段==填入符号表。
1.3.6 错误处理编译的各个阶段都可能发现源程序中的错误,贯穿编译的多个部分。
1.4 编译程序的结构1.4.1 单遍编译程序单遍编译程序只对源程序进行一遍扫描。往往以==语法分析程序==为中心。
单遍编译程序,产生目标代码,但不产生中间代码。
1.4.2 多遍编译程序多遍编译程序,每遍只完成部分任务。
1.4.3 编译程序分遍的优缺点编译程序分为多遍的优点如下:
:one:可以减少内存容量的需求
:two:可使各遍的编译程序相互独立,结构清晰
:three:可以编译程序分为“前端”和“后端”,有利于编译程序的移植。
减少内容容量,结构更加清晰,便于分端,利于移植
1.4.4 端的概念前端主要与源语言有关,包括词法分析,语法分析 ,语义分析和中间代码生成等等操作。
前端是在分析阶段
后端主要与目标机器有关,包括代码优化,目标代码生成等
后端在综合阶段
“端”的优点:
便于移植和编译程序的构建
习题部分M种高级语言程序,N类目标机器,编译程序分为前后端和不分情况下,各需多少种编译程序。
不分前后端,M*N
分前后端,M+N
- 迷你世界胡萝卜怎么找 胡萝卜获得教程迷你世界胡萝卜怎么找 胡萝卜获得教程 2022-06-07 15:24:25来源:未知编辑:漫步 在游戏迷你世界中很多玩家还不清楚胡萝卜怎么找,下面小编给大...
- 借呗多久到账?如何查看借款到账时间借呗如今是我们常用的借款平台,它的审核条件比较宽松,门槛比较低,只要我们资信条件达标,就很容易通过审核。那么我们在使用借呗之后...
- 【保姆级教程】免费域名注册 & Cloudflare 域名解析 & Ngnix端口转发前段时间,带大家搞了两台云服务器: 玩转云服务:Oracle Cloud甲骨文永久免费云服务器注册及配置指南玩转云服务:手把手带你薅一台腾讯云服...
- 微信电子合同为什么没有签名字,微信电子合同为何缺失签名字迹?微信电子合同缺少签名字迹的原因可能包括技术限制、法律效力、安全性考量等。下面将详细介绍微信电子合同为什么没有签名字迹: 1. 技术限...
- 为什么女生喜欢个子高的男生很多女生在找男朋友时,总是会把“身高”作为一个重要的标准?为什么女生会喜欢个子高的男生?是因为安全感,还是因为社会文化的影响?今天...
- web前端开发如何应聘Web前端开发如何应聘? 掌握扎实的技术基础、准备完善的作品集、优化简历和求职信、练习面试技巧、利用网络和社交资源。掌握扎实的技术基...
- 中公教育公务员培训机构价格收费一览表中公教育公务员培训机构价格收费在15800元至31800元不等,除了线上培训班,基本上线下课程的学费都在15000元以上,费用高的班型甚至达到了3万...
- 漂流瓶怎样查看被投诉(漂流瓶被投诉了怎样解除)微信漂流瓶被投诉了怎么办 微信漂流瓶被投诉后的解决办法如下:通过微信官方渠道进行反馈 登录微信:首先,确保你的微信账号已经登录。...
- 树莓产业助力乡村振兴共同富裕树莓产业助力乡村振兴共同富裕中国树莓委员会作为国际树莓组织中国代表、中国官方单位,负责树莓的种植技术、保证成活率、保证产量、保...
- dnf贪食领哪个二、正文: 一、贪食系列装备简介 在《地下城与勇士》这款游戏中,贪食系列装备是角色成长中不可或缺的一部分。贪食系列装备共有四件,...