• 编译器的作用和构成 (基础知识版)


    如题 本文说一下 编译器的作用和基本的构成

    都是一些基础的概念 便于理解, 了解下没有坏处 挺好的
    主要的还是高深的编译方面的知识 我也不懂啊 hhhhhh…

    编译器是干啥的?

    用大白话讲 就是 把我们写的高级语言翻译为低级的语言
    因为电脑就认识0和1
    我们程序员不可能写这鸟玩意吧, 晦涩难懂
    那么我们可以理解为 编译器 就是个 “翻译”
    例如 把 c / c++ / java 等 翻译为 汇编 / 各个平台的机器码

    编译器的基本构成

    颗粒度高一点就是两部分
    1.前端
    2.后端

    在这里插入图片描述

    展开一点

    1.前端

    在这里插入图片描述
    把我们c++代码 一行一行拆开 一个单词单词拆开
    所以我们大部分的报错 都是前端编译器就给拦截了
    比如少括号, 语法糖没过等等

    那么前端的终极目标就是生成中间的代码
    为啥要中间代码呢?

    就可以理解为一种协议 各种语言各种平台 不可能每个编译器都做适配吧
    举个例子就是 不管你什么样的汽车,奔驰宝马 还是夏利奥拓 都是要加油 就那么几种 #92 #95 #98 都是转为发动机需要的燃料嘛

    2.后端

    看完上面就应该比较明确了,后端的输入就是中间代码
    输出就是汇编/各种平台的机器码

    不同的cpu架构,需要的目标代码也不同,
    在这里插入图片描述

    总结:

    基础的流程应该就是下图
    在这里插入图片描述

  • 相关阅读:
    数据库笔记
    HTTP四大参数类型及请求参数的方式和如何接收
    说一下HTML5有哪些新特性?
    AppWidget(桌面小部件)
    MySQL Server层四个日志
    Mysql 主从复制与读写分离
    Vision Transformer学习
    Linux平台设备框架驱动
    图像分割:DeepLabV2网络简介
    分布式定时任务调度xxl-job
  • 原文地址:https://blog.csdn.net/weixin_42837024/article/details/126607766