首页WIN11问题回到本真,代码到底是什么?

回到本真,代码到底是什么?

时间2022-12-21 08:15:23发布分享专员分类WIN11问题浏览101

本文特指Linux操作系统下和静态编译性语言

代码即文本

我们写的「代码」只是个普通的文本文件,因为编译器等方式得以转化为二进制代码c runtime library 。代码文本从最早期的「二进制代码」演化到现在“百花齐放”的「编程语言代码」,粗略演化路线:

二进制代码 :初期二进制代码文本并不具备可读性c runtime library ,假如让你直接编写二进制代码,“也许你一辈子都在调试代码错误?😏”

汇编代码 :为了让代码更易于人们编写和阅读c runtime library ,产生了「汇编代码」

编程语言代码 :然而编写汇编代码也不是一件简单的事情c runtime library ,随着编程技术的发展,诞生了众多编程语言,比如C、C++、Go等等,进一步提升了代码的:

可读性 (语法、面向对象等等)

可复用 (库、面向对象等等)

性能和效率等 (内存分配器、垃圾回收器、协程调度器等等)

等等

点击查看大图

回到本真,代码到底是什么?

现代编程语言语言,可以让我们更加高效编写程序c runtime library 。

以Go语言为例,最终Go代码汇编「编译器」转化为「汇编代码」,再到「二进制代码」文件c runtime library 。

我们的代码文本都包含了什么c runtime library ?

代码包含CPU指令和预置数据

为了简化理解c runtime library ,粗略来看代码主要分为两部分:

指令部分 :CPU可执行的指令

数据部分 :常量等

回到本真,代码到底是什么?

代码逻辑类型

对应CPU指令类型

传输数据逻辑:比如c runtime library 你平常写的代码一个变量的数据或者常量赋值到另个变量

数据传输指令MOV

算术运算逻辑:代码文本里描述的四则运算等等

运算指令

条件分支逻辑:代码文本里各种if的判断等等

JMP跳转指令

函数调用逻辑:代码文本里各种的调用函数

CALL/RETURN指令

等等

回到本真,代码到底是什么?

当二进制代码文件被执行时:

指令被加载进内存

预置数据被加载进内存

回到本真,代码到底是什么?

同样被加载到内存中的「代码」也主要分为两部分:

指令部分 :传输、算术、跳转JMP、函数调用CALL/退出RETURN等指令

数据部分 :文本代码中预置的数据c runtime library ,比如常量等

回到本真,代码到底是什么?

CPU读取指令

二进制代码被加载到内存之后,中央处理器CPU就可以从内存中读取指令、解析并执行指令c runtime library 。同时,如果当前指令操作了全局变量,执行指令过程中「中央处理器CPU」从内存中读取代码中预置数据(常量等)。其次,这里代码运行过程就是我们通常说到的「 运行时 runtime」。

回到本真,代码到底是什么?

总结

计算机自动运行核心 :CPU自动执行指令

指令来源 :CPU从内存读取指令

内存中指令来源 :内存中的指令来源于被执行的二进制文件

代码中指令来源 :二进制文件由源代码文本经过编译等方式转化而来

二进制文件来源 :程序员根据需求编写源代码文本

回到本真,代码到底是什么?

所以综上所述c runtime library ,我们写的代码到底是什么?

答:包含CPU指令和预置数据的文本文件c runtime library 。

预告

下篇文章c runtime library 我们就来看看:

代码是如何运行的c runtime library ?

Go轻松进阶系列更多文章

由浅到深c runtime library ,入门Go语言Map实现原理

为什么说Go的Map是无序的c runtime library ?

64位平台下c runtime library ,指针自身的大小为什么是8字节?

18张图解密新时代内存分配器TCMalloc

浅析Go内存管理架构

关于Go内存架构c runtime library ,一个有趣的问题

9张图轻松吃透Go内存管理单元

回到本真c runtime library ,梦回计算机发展史

爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。

Arrayc runtime library
超轻量!AI模型编译器MegCC开源,让推理引擎体积变小小小小小…… PDF转换器免费的是哪个?分享我常用的PDF转换器给你