编译原理学习 一 什么是编译程序
一 什么是编译程序
从功能上看,编译程序就是一个语言翻译程序。语言翻译程序把一种语言书**(称作源语言)写的程序翻译成另一种语言(称作目标语言)**的等价程序。
一个程序设计语言的典型处理过程:
编译程序的结构
编译过程
编译过程可以划分为: 词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成 6个阶段。
词法分析
从左到右一个字符一个字符的读入源程序,对构成要换程序的字符流进行扫描和分解,从而识别出一个个单词。
语法分析
在词法分析的基础上将单词序列分解成各类语法短语。语法短语也成为语法单位,可以表示成语法树。
以 id1 := id2 + id3 * 10 为例,语法树如下:
语义分析
语义分析是审查源程序有无语义错误,为代码生成阶段收集类型信息。
中间代码生成
在完成语法分析和语义分析之后,将源程序编程中间代码,所谓中间代码就是一种结构简单、含义明确的记号系统,这种记号系统可以设计成多种多样的形式。遵循原则:容易生成,容易翻译成目标程序。
代码优化
对中间代码进行变换和搞糟,使生成的目标代码更为高效。 就是化简
目标代码生成
把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令代码。
解释程序
编译原理学习 一 什么是编译程序相关推荐
- [编译原理学习笔记2-2] 程序语言的语法描述
[编译原理学习笔记2-2] 程序语言的语法描述 文章目录 [编译原理学习笔记2-2] 程序语言的语法描述 [2.3.1] 上下文无关文法 [2.3.2] 语法分析树与二义性 [2.3.3] 形式语言鸟 ...
- 编译原理学习笔记20——符号表
编译原理学习笔记20--符号表 20.1 符号表的组织与操作 20.2 符号表的内容 20.3 利用符号表分析名字的作用域 20.1 符号表的组织与操作 符号表 符号表的作用与组织 符号表的整理和查找 ...
- 计算机编译原理有必要学吗,计算机程序编译原理学习心得
计算机程序编译原理学习心得 <编译原理>是计算机专业的一门重要课程,正如教材:第一章的引论所述,"编译程序是现代计算机系统的基本组成部分之一"."一个编译程序 ...
- 编译原理-学习指导与典型题解析
<编译原理-学习指导与典型题解析>这本书的pdf版本 是刘春林版本,应该是和陈火旺的是配套的,出版社一样 点击下载
- 编译原理学习笔记2——高级程序设计语言概述
编译原理学习笔记2--高级程序设计语言概述 2.1常用的高级程序设计语言 2.2程序设计语言的定义 2.2.1语法 2.2.1语法 2.2.3程序语言的基本功能和层次机构 2.2.4程序语言成分的逻辑 ...
- 编译原理学习笔记一(待续)
这几天忙着学英语,同时在学习编译原理,对这门课很感兴趣,已经制作了词法分析器,同时还在补充这个分析器的功能,也准备着手开始写语法分析器,看到最后能不能连在一起,我想如果能够将整套编译器的流程跑下来真的 ...
- [编译原理学习]词法分析
此前一直没能系统完整地学过编译原理,只有很粗浅的理解,虽然其实对工作里的任务也没啥影响,但总觉得缺了一大块知识,加上对所谓程序员三大浪漫(编译器,操作系统,图形学)的向往,所以最近跟着网易云课堂推出的 ...
- 编译原理 - 学习/实践
1.应用背景 编译技术,与我们的工作[很多编程语言的工作原理]息息相关, 同时, 除了丰富的应用场景,学习编译技术对于提升程序员的竞争力也很重要. 2.学习/实践 文档阅读 JointJS - Jav ...
- 编译原理学习(到LL1文法部分)
今天终于开始着手把一年前学的编译原理整理一下啦!打败拖延症 #*# 机器语言:计算机只认识由0和1构成的机器语言,每台机器自己独特的指令系统即机器语言. 机器语言->汇编语言->高级语言 ...
最新文章
- 史上最强 NIO 框架,没有之一!!!
- aaaaaaa……aaa(n个)%p的值 (矩阵快速幂)
- CMU 11642 Search Engines - 大纲梳理
- Qt Creator使用自定义着色器
- 让威胁管理跟上数据中心奔跑的速度
- C语言 通用工具库 stdlib.h
- 【Docker】Mac下Docker启动Kubernetes
- SQL中的CONSTRAINT用法总结
- sql server2012 第一次访问慢_【共同学习】第1章 数据库和SQL (续)
- 如何实现python连续输入
- 怎样修复电动车电瓶。
- 爬虫mm131明星照片
- xshell添加vbs脚本
- hexo博客next主题6.0版本个性化设置
- Unity中加载倾斜摄影模型、dem叠加卫星影像做真实地形
- 线性空间里的线性映射
- Kafka 客户端 org.apache.kafka:kafka-clients:2.4.1
- 如何修复损坏或损坏的照片呢?
- 【同一电脑原win用户信息迁移到新Win用户下python interpreter显示 no interpreter问题】
- 线性表的应用——多项式的计算