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

本文探讨了代码从早期的二进制代码到汇编代码,再到现代编程语言的演变过程。代码文本主要包含CPU指令和预置数据,通过编译器转化为二进制代码,最终在内存中被执行。CPU读取指令并执行,形成运行时环境。重点讨论了代码的可读性、可复用性和性能提升等方面。

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

代码即文本


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

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

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

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

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

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

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

    • 等等

点击查看大图

5ece8ad4fcc8d4332937e49d224b7dc5.png

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

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

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

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


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

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

  • 数据部分:常量等

41f34937303777afa1c01e6dcbc3225f.png

代码逻辑类型对应CPU指令类型
传输数据逻辑:比如你平常写的代码一个变量的数据或者常量赋值到另个变量数据传输指令MOV
算术运算逻辑:代码文本里描述的四则运算等等运算指令
条件分支逻辑:代码文本里各种if的判断等等JMP跳转指令
函数调用逻辑:代码文本里各种的调用函数CALL/RETURN指令
等等...

1a1fb6164cdab83128c28017d3c28805.png

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

  • 指令被加载进内存

  • 预置数据被加载进内存

f6360d15e18a1837006e7f3488f6c53f.png

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

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

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

a7eb8c71523e638387765b693e912360.png

CPU读取指令


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

43c0f3d48adadefc843b25810fc2525d.png

总结


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

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

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

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

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

4e8381205d8bcb468dee1febc8f47aa1.png

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

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

预告


下篇文章我们就来看看:

程序是如何运行的?


Go轻松进阶系列 更多文章

a2fdb06e323bda99c50b5600b1eeed7c.png

cedc016dd8270e85c08392ecc089261c.gif

<think> 我们正在回答用户关于道家“守中”与儒家“中庸”核心区别的问题。根据要求,我们需要调用网络搜索工具进行检索,然后整合信息,生成清晰回答,并按照格式要求组织答案。 首先,我们需要明确用户意图:了解道家“守中”和儒家“中庸”的核心区别。因此,搜索词可以包括: - "道家守中与儒家中庸的区别" - "守中与中庸的核心差异" - "道家守中 vs 儒家中庸" 接下来,我们根据网络检索结果,整合信息: 1. 道家“守中”: - 源自老子《道德经》第五章:“天地之间,其犹橐龠乎?虚而不屈,动而愈出。多言数穷,不如守中。” - “守中”强调顺应自然,保持虚静,避免过度人为干预。它指的是守住内心的虚空,保持无为的状态,让事物自然发展。 - 道家认为,过度追求知识、言语、行动反而会带来困扰,因此要守住“道”的中虚状态。 2. 儒家“中庸”: - 源自孔子《论语》和《中庸》一书,强调“中庸之为德也,其至矣乎!”(《论语·雍也》) - 中庸是指不偏不倚,无过无不及,保持恰到好处的平衡。它要求人在行为、情感、道德上都要符合“中道”,避免极端。 - 中庸是一种实践智慧,涉及具体情境中的权衡和选择,以达到和谐。 核心区别: - 哲学基础不同:道家守中基于“道法自然”,强调无为;儒家中庸基于“仁”和“礼”,强调道德实践。 - 目标不同:守中追求与自然合一,达到虚静无为的境界;中庸追求社会人伦的和谐,实现道德完善。 - 实践方式不同:守中倾向于减少干预,回归本真;中庸则要求积极调整行为,符合礼仪规范。 整合以上信息,我们可以将回答组织为几个核心区别点,每个点单独成段,避免使用步骤词汇。 最后,按照要求生成相关问题部分。 注意:回答中不能出现引用内容集中末尾,所以我们在每个区别点中融入检索到的信息。 同时,由于问题不涉及代码和公式,我们不需要使用相关格式。 回答结构: - 开头简述两者来源和基本概念。 - 然后分点说明核心区别(每个区别点换行)。 - 最后添加相关问题部分。 下面开始生成回答: </think>### 道家"守中"与儒家"中庸"的核心区别 #### **1. 哲学根基差异** - **道家守中**:以"道法自然"为原则(《道德经》25章),主张顺应天道运行规律 示例:治国如"烹小鲜"(《道德经》60章),强调减少人为干预,保持万物自化 - **儒家中庸**:以"天人合一"为框架(《中庸》22章),要求通过道德修养实现人道与天道的贯通 示例:"致中和,天地位焉,万物育焉"(《中庸》1章),突出人伦秩序的建构 #### **2. 实践指向不同** ```text | 维度 | 道家守中 | 儒家中庸 | |------------|---------------------------|---------------------------| | 目标状态 | 虚极静笃(《道德经》16章) | 发而皆中节(《中庸》1章) | | 实现路径 | 损之又损的减法 | 克己复礼的加法 | | 社会关系 | 放弃仁义礼智(《道德经》38章) | 构建五伦十义 | ``` - **守中**:通过"致虚极"达到"万物并作"的自然状态,如庄子"坐忘"破除认知局限 - **中庸**:通过"博学之,审问之"(《中庸》20章)实现"从心所欲不逾矩" #### **3. 认知维度对比** - **守中的认知模型**: $$ \text{认知境界} = \frac{\text{破除知见障}}{\text{回归婴儿态}} $$ 主张"绝圣弃智"(《道德经》19章),否定知识积累的价值 - **中庸的认知模型**: $$ \text{道德实践} = \int_{a}^{b} (\text{仁} \times \text{礼}) \,dx $$ 强调"尊德性而道问学"(《中庸》27章),知识学习与道德修养并重 #### **4. 终极境界分野** - **守中**:追求个体与自然的本真合一,如"庄周梦蝶"的物化境界 - **中庸**:达成"赞天地之化育"(《中庸》22章)的参天地位,实现社会价值 > 关键区别:守中是"天道视角"的自我消解,中庸是"人道视角"的积极建构;前者如水流顺应地势,后者如工匠修正曲木。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值