都是一些基础的概念 便于理解, 了解下没有坏处 挺好的
主要的还是高深的编译方面的知识 我也不懂啊 hhhhhh…
用大白话讲 就是 把我们写的高级语言翻译为低级的语言
因为电脑就认识0和1
我们程序员不可能写这鸟玩意吧, 晦涩难懂
那么我们可以理解为 编译器 就是个 “翻译”
例如 把 c / c++ / java 等 翻译为 汇编 / 各个平台的机器码
颗粒度高一点就是两部分
1.前端
2.后端
展开一点
把我们c++代码 一行一行拆开 一个单词单词拆开
所以我们大部分的报错 都是前端编译器就给拦截了
比如少括号, 语法糖没过等等
那么前端的终极目标就是生成中间的代码
为啥要中间代码呢?
就可以理解为一种协议 各种语言各种平台 不可能每个编译器都做适配吧
举个例子就是 不管你什么样的汽车,奔驰宝马 还是夏利奥拓 都是要加油 就那么几种 #92 #95 #98 都是转为发动机需要的燃料嘛
看完上面就应该比较明确了,后端的输入就是中间代码
输出就是汇编/各种平台的机器码
不同的cpu架构,需要的目标代码也不同,
基础的流程应该就是下图
Copyright © 2002-2022 恩博-恩博娱乐沙盘模型研发站 版权所有 非商用版本 备案号:额ICP备5412147号">额ICP备5412147号