【编译原理】绪论

1.计算机程序语言以及编译

编译是对高级语言的翻译

源程序是句子的集合可以较好的反应句子的结构

编译程序是一种翻译程序

2.编号器在语言处理系统中的位置

可重定位:在内存中存放的起始位置不是固定的

加载器:修改可重定位地址;将修改后的指令和地址放到内存中适当的位置

链接器:将多个可重定位的机器代码文件(包括库文件)连接在一起;解决外部内存地址问题

3.编译器构造

分析部分/前端:与源语言相关(从词法分析器到中间代码生成器)

综合部分/后端:与目标语言相关(从目标代码生成器到相关代码优化)

语法分析器接收以单词为单位的输入,语法分析器的任务是分析单词串是如何构成语句和声名的 , 语法分析所依据的是语法规则

4.词法分析概述

5.语法分析

语法分析器从词法分析器输出发token序列中识别出各类短语 ,并构造语法分析树

6 语义分析

7.中间代码生成以及编译器后端概述

常用中间代码的中间表示形式:

三地址码:本模块主要讨论这个

语法结构树/语法树
三地址指令的表示:

四元式

三元式

间接三元式

9 目标代码生成

目标代码生成以源程序的中间表示形式 作为输入,并把它映射到目标语言

目标代码生成的一个重要任务是为程序中使用的变量合理分配寄存器

10 代码优化

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

相关推荐
Roselind_Yi24 分钟前
云计算实验实操|Keystone安装配置+CloudSim仿真平台部署(超详细图文版)
java·经验分享·笔记·ubuntu·云计算·vim·虚拟机
zwenqiyu24 分钟前
zwq重链剖分学习笔记,从入门到过掉模板题
笔记·学习
云边散步32 分钟前
godot2D游戏教程系列二(25)
笔记·学习·音视频·游戏开发
深蓝轨迹34 分钟前
解决Redis排序后MySQL查询乱序问题:从原因到落地(通用版)
数据库·redis·笔记·mysql·bug
守护安静星空37 分钟前
ubuntu vscode 调试 at32f435vmt7基于AT32IDE
linux·运维·笔记·vscode·ubuntu
南境十里·墨染春水1 小时前
C++ 笔记 运算符重载(面象对象)
开发语言·c++·笔记
中屹指纹浏览器1 小时前
2026指纹浏览器故障排查与性能优化实战:从异常定位到环境稳定落地
经验分享·笔记
EQ-雪梨蛋花汤1 小时前
【存档笔记】二阶与三阶贝塞尔曲线详解(含 De Casteljau 与公式推导)
笔记
学工科的皮皮志^_^1 小时前
RS485学习
经验分享·笔记·单片机·嵌入式硬件·学习