一、引论

2 篇文章 0 订阅
订阅专栏

1、介绍程序设计语言编译程序构造的基本原理和基本实现技术。
2、编译程序:把高级语言等价地转换成另一种低级语言(如:汇编或机器语言)的程序。
3、解释程序:把源语言写的源程序作为输入,但不产生目标程序,而是边解释边执行。

4、编译步骤:

例如:In the room,he broke a window with a hammer.
词法分析:确定句子中各个单词的词性(名词、介词等)
语法分析:识别句子中的各类短语,获得句子的结构。
语义分析:根据句子的结构分析出各个短语在句子中充当的成分。从而确定各个名词性成分同核心谓语间的语义关系。
编译器结构:
在这里插入图片描述
语法制导翻译:语法分析的同时语义分析

5、词法分析:

从左向右逐行扫描源程序的字符,识别出各个单词,确定单词的类型。将识别出的单词转换成统一的机内表示——词法单元(token)形式。
token:<种别码,属性值>
在这里插入图片描述
词法分析后得到的token:
输入:while(value!=100){num++;}
输出:
1 while <WHILE,_ >
2 ( <SLP,_>
3 value <IDN,value>
4 != <NE,_>
5 100 <CONST,100>
6 ) <SRP,_>
7 { <LP,_>
8 num <IDN,num>
9 ++ <INC, _>
10 ; <SEMI,_>
11 } <RP,_>

6、语法分析:

语法分析器从词法分析器输出的token序列中识别出各类短语,并构造语法分析树。
例如:

1、赋值语句的分析树:
position=initial+rate*60;

在这里插入图片描述

2、变量声明语句的分析树:

文法:由一系列规则构成
<D> -> <T><IDS>;
<T> ->int | real |char |bool;
<IDS> ->id |<IDS>,id
D:declaration 的首字母,表示声明语句
T:type 的首字母,表示类型
IDS:identify sequence 表示标识符序列
一个声明语句D:是由一个类型T,连接上一个标识符序列 IDS和一个分号构成。T可以是int、real、char、或者bool。竖线表示或者的关系。一个id可以构成一个标识符序列,一个 IDS一个逗号一个id可以构成一个更大的标识符序列 IDS。

输入:

int a,b,c;
分析树:
在这里插入图片描述

7、语义分析:

主要任务:
(1)收集标识符的属性信息:(种属、类型(int、float、double…)、存储位置、长度、值、作用域、参数和返回值信息)
标识符的属性信息存放在符号表中。每个标识符对应一条记录。
(2)语义检查(变量未经声明就使用,运算分量类型不匹配)

8、中间代码生成:

常用的中间表示形式:三地址码、语法结构树(语法树)不同于语法分析树。

三地址码:由类似汇编语言的指令序列组成,每个指令最多有三个操作数。
在这里插入图片描述
说明:
x=y[i] i 是数组元素的偏移地址,不是数组的下标。
x[i] =y , 将变量的值赋给一个数组元素。
x=y op z:op 是二元运算符 ,y,z 是两个运算分量的地址。x是运算结果的存放地址
x=op y :op是一元运算符
if x relop y goto n :如果x、y满足关系relop 则跳转到地址n对应的指令
param x :将x设置为参数
call p,n : p是过程的名字,n是过程的参数的个数

三地址指令的表示(表示成数据结构):四元式(op,y,z,x)、三元式、间接三元式
在这里插入图片描述

在这里插入图片描述
由分析树转化为中间代码。 j (jump)表示跳转,冒号前的数字表示编号

9、代码优化:

为改进代码所进行的等价程序变换,使其运行的更快一些,占用的空间更少一些,或者二者兼顾。

10、目标代码生成:

目标代码生成以源程序的中间表示形式作为输入,并把它映射到目标语言。
目标代码生成的一个重要任务就是为程序中使用的变量合理分配寄存器。

引论
tian__si的博客
09-08 254
详细内容参考编译原理绪论
编译原理(一、引论
jerryzhou的博客
03-06 2721
前言:最近学习编译原理,遂参照教材作以记录。各位读者若对本文所述有质疑,欢迎批评指正。 参考:《程序设计语言——编译原理》第3版 陈火旺 刘春林 谭庆平 赵克佳 刘越 编著 国防工业出版社 程序设计语言——编译原理(一、引论) 1.1 什么叫编译程序? 现代计算机系统一般都含有不止一个的高级语言编译程序,对于有些高级语言甚至配置了几个不同性能的编译程序,供用户按不同需要...
001.编译原理_引论
记录生活
01-11 778
1.1 语言处理器 一个集成的软件开发环境,其中包括很多种类的语言处理器,比如编译器、解释器、汇编器、连接器、加载器、调试器以及程序概要提取工具。 预处理器(preprocessor) 除了编译器外,创建一个可执行的目标程序还需要一些其他程序。一个程序可能被分割成为多个模块,并存放独立的文件中。 把源程序聚合在一起的任务由预处理器的程序独立完成。预处理器还负责把那些称为宏的缩写形式...
编译原理学习--编译以及编译过程
qq_33727884的博客
06-02 1117
转载:【龙书】编译原理(第二版)学习与理解: 1.也许我们这辈子都不会去实现一个编译器,但是我们至少要知道编译器是什么?为什么会需要编译器? ①编译器首先也是一种电脑程序。它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。 ②高级计算机语言便于人编写,阅读,维护。低阶机器语言是计算机能直接解读、运行的。编译器主要的目的是将便于人编写,阅读,维护的高级计算机语言所写作的源代码,翻译为计算机能解读、运行的低阶机器语言的程序。编译器将原始程序(Source program)作.
数据结构一 引论(王晓东版)
chensay的博客
02-16 590
一、数据结构引论 1.1算法以及复杂的概念 1.1.1算法与程序
第一章操作系统引论ppt课件.ppt
11-16
第一章 操作系统引论 第二章 进程管理 第三章 处理机调度与死锁 第四章 存储管理 第五章 设备管理 第六章 文件管理 考试: 理论考试:平时成绩30%(考勤、书面作业、课堂测验等)、期末考试70%(闭卷) 参考书籍: ...
第一章电子商务引论.ppt
11-21
**电子商务引论** 电子商务,简称E-commerce,是利用互联网技术和信息科技进行的商业活动,它涵盖了从产品生产、分销到销售的全过程。电子商务的核心在于商务,而现代信息技术则是实现商务活动电子化的工具。 广义...
第一章操作系统引论2022优秀文档.ppt
11-14
《第一章 操作系统引论》 操作系统是计算机科学中的核心组成部分,它扮演着连接硬件与软件、用户与计算机的桥梁角色。本章将深入探讨操作系统的目标、作用、主要功能、特征以及结构,同时也会概述其发展历史和分类...
算法引论:一种创造性方法.pdf
04-24
《算法引论:一种创造性方法》是国际算法大师乌迪.曼博(Udi Manber)博士撰写的一本享有盛誉的著作。全书共分12章,是按照领域进行分类的:第1章到第4章为介绍性内容,涉及数学归纳法、算法分析、数据结构等内容;第...
编译原理复习 第一章 概述
DespairC的博客
06-27 926
编译程序是现代计算机系统的基本组成部分功能:分类:编译逻辑过程:字符序列 -> 单词序列扫描、分解源程序,识别单词(记本子、标识符、常数、运算符、界限符),并给予种别(属性)和内部形式(值),构成单词的内部表示。从左到右读字符流的源程序,识别单词例子1: 词法分析:例子2:C 源程序片段 词法分析:分析器(Analyzer)功能:层次分析。依据源程序的语法规则把源程序的单词序列组成语法短语(表示成语法树) 语法树模板:举例: 画图:其他例子:语义审查(静态词义)例1: 例2: 便于代码优化,便于从逻辑上分出
编译原理 —— 绪论
m0_51976820的博客
04-14 1350
编译原理 —— 绪论
Go编译原理系列1(编译原理概览)
self_realian的博客
12-31 2036
Go编译原理系列文章,试图深入的搞清楚Go文本文件(.go)被编译器编译的整个过程
编译原理 1-4.语法分析概述
Unique_的博客
11-17 593
语法分析是编译的第二个阶段,语法分析的主要任务是从词法分析器输出的token序列中识别出各类短语,并构造语法分析树,语法分析树描述了句子的语法结构 例:赋值语句的分析树 例:position = initial + rate * 60 ; 序号<种别码 ,属性值 > 1 < id ,position > 2 < = , - > 3 < id ,initial > 4 < + , - > 5 < id ,rate > 6 <
编译原理引论
weixin_45480995的博客
04-27 229
编译原理引论 语言处理器 编译器 可以阅读以某一种语言(源语言)编写的程序,并把该程序翻译成为一个等价的、用另一种语言(目标语言)编写的程序 重要任务之一是报告它在翻译过程中发现源程序中的错误 解释器 直接利用用户的输入直接执行源程序中指定的操作 对比 解释器的错误诊断效果通常比编译器的好,因为解释器逐个语句的执行源程序 一个编译器的结构 分析部分——(称为前端) 把源程序分解成多个组成要素,并在这些要素之上加上语法结构 使用该结构来创建该源程序的一个中间表示 如果检查出源程序没有按照正常的语法构成,或者语
一、编译器构造一般原理
Calcular的博客
03-17 1895
一、编译器概述 1.翻译器(translator):把一种语言程序翻译成另一种语言程序。 2.编译器(compiler):高级语言变成低级语言。 3.解释器(interpreter):将语句一条一条直接执行,而不生成目标代码。 4.编译器阶段:源程序-&gt;词法分析-&gt;语法分析-&gt;语义分析-&gt;中间代码生成器-&gt;独立于机器代码优化器-&gt;代码生成器-&gt;依赖...
编译原理之绪论
编程之路
03-14 887
编译原理之绪论 既然是说编译原理,那么就可以提问: 什么是编译器 编译器就是一个程序,它读入用某种语言编写的源程序,并翻译成一个与之等价的另一种语言编写的源程序。编译器身上还有一个任务,就是发现编译前和编译时源程序中的错误。 当目标程序是一个可执行的机器语言程序时,那么它就可以被用户调用,产生输出。 Java处理器结合了编译和解释过程,如下图所示。一个Java源程序首先被编译成一个称...
编译原理笔记-01绪论
笔记|思路|总结
03-19 1200
什么是编译 编译就是将高级语言翻译成汇编语言或机器语言的过程。 高级语言也叫源语言,汇编或机器语言叫目标语言 编译系统的结构 词法分析概述 词法分析就是从左向右逐行扫描源程序的字符,识别出各个单词,确定单词的类型。将识别出的单词转换成统一的机内表示——词法单元(token)形式 token:<种别码,属性值> 种别码:表示单词的种别,对应自然语言中的词性。 属性值:由于标识符和常量不可能事先全部枚举,所以使用属性值来区别标识符和常量值。 每个关键字都有一个种别码,所以叫一词一码
2024最新版手把手教你入门vue+springboot开发SpringBoot + vue 管理系统
最新发布
09-22
2024最新版手把手教你入门vue+springboot开发SpringBoot + vue 管理系统2024最新版手把手教你入门vue+springboot开发SpringBoot + vue 管理系统2024最新版手把手教你入门vue+springboot开发SpringBoot + vue 管理系统2024最新版手把手教你入门vue+springboot开发SpringBoot + vue 管理系统2024最新版手把手教你入门vue+springboot开发SpringBoot + vue 管理系统2024最新版手把手教你入门vue+springboot开发SpringBoot + vue 管理系统2024最新版手把手教你入门vue+springboot开发SpringBoot + vue 管理系统2024最新版手把手教你入门vue+springboot开发SpringBoot + vue 管理系统2024最新版手把手教你入门vue+springboot开发SpringBoot + vue 管理系统2024最新版手把手教你入门vue+springboot开发SpringBoot
代数学引论第一卷pdf
12-29
《代数学引论第一卷》是一部介绍代数学基本理论和方法的书籍,主要内容包括代数学的基本概念、代数运算、多项式和方程、群、环、域等内容。该书以清晰的逻辑结构和丰富的例题,引导读者深入理解代数学的核心概念和...
写文章

热门文章

  • vs2015安装boost库 16704
  • vscode 配置 node.js 12059
  • com组件、对象、接口 9341
  • .idl文件解析 6128
  • 循环实现x的y次方 5928

分类专栏

  • 机器学习 17篇
  • 编译原理 2篇
  • node.js 4篇
  • git 2篇
  • c++ 14篇
  • 数据结构 6篇
  • 数据库 4篇
  • 编程工具 4篇
  • 网络编程 3篇
  • MFC 2篇
  • com 5篇
  • linux 16篇
  • python 7篇
  • java 9篇
  • docker 1篇

最新评论

  • vscode 配置 node.js

    倍笠: 感谢博主! 问题解决

  • vscode 配置 node.js

    m0_62870837: 为什么我右边没有三角符号

  • vscode 配置 node.js

    学习越学越多: 简洁明了,帮助很大

  • vs2015安装boost库

    weixin_44183720: 按照博主的方法安装测试成功了,感谢!

  • vs2015安装boost库

    Elylicery: 我也觉得?为什么这个命令里是x86呢????

大家在看

  • 基于黑猩猩算法优化的最小交叉熵图像多阈值分割
  • mysql数据库中各种锁归纳总结例子解析
  • web网页设计制作服装主题html网页源码文件分享?学生作品 1241
  • 算法学习之416周赛 790
  • (开题)flask框架蛋糕甜品商城的设计与实现(程序+论文+python) 867

最新文章

  • 眼睛状态识别
  • 识别验证码
  • 股票价格预测
2022年18篇
2020年12篇
2018年60篇
2017年17篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家仙林商场秋季美陈代理玻璃钢奶牛雕塑河北大型玻璃钢雕塑订做价格福州泡沫玻璃钢雕塑青岛市玻璃钢人物雕塑生产商玻璃钢花盆需要套盆不张家口玻璃钢仿铜雕塑玻璃钢人像雕塑哪个靠谱雕塑定制厂家玻璃钢张掖大型玻璃钢雕塑定做大连专业定做沈阳玻璃钢花盆天心玻璃钢卡通雕塑北海玻璃钢雕塑制作山东几何景观玻璃钢雕塑定制河源玻璃钢雕塑摆件红色玻璃钢卡通雕塑代理价格植物玻璃钢雕塑价格上海个性化玻璃钢雕塑销售电话潮州玻璃钢花盆户外玻璃钢卡通雕塑销售厂家秦淮五一商场美陈贵州玻璃钢小羊动物雕塑定制玻璃钢仿真梅花鹿雕塑制作商场美陈雕塑定制上海玻璃钢仿真水果雕塑定制广西玻璃钢海豚雕塑厂家江苏镜面玻璃钢雕塑在线咨询遂平玻璃钢雕塑价格陕西玻璃钢马雕塑制作郑州户外玻璃钢花盆花槽香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化