编程伊始:机器与人类沟通的桥梁

编程伊始:机器与人类沟通的桥梁

Wreckloud_雲之残骸 Lv3

提问!
除去任何特殊情况, 一盏正常的灯有几种状态?

毫无疑问, 有 通电的打开 和 断电的关闭 两种状态.

而在一台计算机中, 就有类似 数十亿计 的 “灯” . 它们以惊人的速度开启和关闭, 配合着计算机内的其他硬件设施, 使得计算机能够执行复杂的任务.

第一阶段: 与机器对话

人们为了方便描述和计算, 将
通电(高电平)状态 规定为 “逻辑 1”
断电(低电平)状态 规定为 “逻辑 0”

这就像是人类英语中的 26 个符号, 将其有序地排列, 就能组成一句又一句的富含逻辑的话.
0 与 1 就是组成 机器语言 的符号, 一串串由 0 与 1 组成的二进制代码, 控制着一个个的开关与电路, 就构建出计算机世界中的语言.

不同于人类既有理性又有感性的语言, 计算机的机器语言是纯粹理性的, 每一条指令都是给计算机的一个命令, 告诉它下一步应该做什么, 不能带半点含糊.

例如机器语言中最基础又常用的逻辑运算:

与(AND)

  • 规则:只有当当两个输入都为 1 时, 输出才为 1.
    或(OR)
  • 规则:只要两个输入中至少有一个为 1, 输出就为 1.

前人们根据这些规则设计出了具体的电路, 也就是逻辑门电路.
这些电路是计算机中最基础的元件, 它们封装在 CPU 中, 通过控制这些基础元件, 我们能够实现一些简单的计算.

第二阶段: 简化的符号

在早期, 程序员就像是翻译官, 他们需要将人类的思想转换成计算机能理解的语言.
最初的机器语言, 也就是 0 和 1 的序列, 直接控制着最基础的开关状态来控制复杂的机器, 非常低效且容易出错.

众所周知, 最懒的职业就属程序员了.
因为他们宁愿花一整天时间编写自动化脚本, 也不愿意做一次重复的工作.

汇编语言就此而生, 这种语言用一些简单的英文标签代替了复杂的二进制代码, 让它们更容易被记住和理解.

例如, 一个简单的汇编指令MOV AX, BX意味着将寄存器 BX 的值移动到寄存器 AX 中.
这样的指令比对应的机器语言更容易理解和记忆.

第三阶段: 语言的进化

随着时间的推移, 程序员们的“懒惰”并没有停止.
他们不断地寻找新的方法来简化工作, 让代码更加简洁、高效. 这种追求极致的懒惰催生了高级语言的诞生.

相比于只是用英文标签代替了复杂的二进制代码的汇编语言, 高级语言带来了更多的抽象和便利.
它们不仅让代码更容易编写和理解, 还提供了强大的工具和库来进一步提高开发效率.

在高级语言诞生的进程中,高级语言逐渐演化为两个主要流派,它们各自有着独特的特点和应用场景:

编译型语言

你写了一封信, 这封信是用一种特殊的语言写的, 收信人看不懂这种语言, 所以你需要一个翻译(编译器)来帮你把信翻译成收信人能懂的语言(机器语言).
这就是编译型语言的工作方式, 你写下代码, 然后编译器帮你把它转换成计算机能理解的指令.

编译型语言就像是提前准备好的指令集, 一旦编译完成, 就可以在没有编译器的帮助下独立运行. 这种方式让程序运行得非常快, 因为所有的翻译工作在编译后都已经完成, 计算机可以直接按照指令行动.

graph LR
    A[源代码] -->|编译| B[编译器]
    B -->|生成| C[机器语言]

但是, 编译型语言的缺点是, 每次你想要在不同的计算机上运行你的程序时, 你可能需要重新编译, 因为不同的计算机可能需要不同的指令集.
这就像是你给不同国家的人写信, 每次都需要重新翻译.

Java C/C++ C# 等都属于编译型

其特点包括:

  • 独立执行
  • 执行效率极高
  • 跨平台性差
  • 适合性能要求高的场合

解释型语言

你在一个即兴演讲中, 每说一句话, 就有一个翻译在旁边立刻帮你翻译给听众(解释器). 这就是解释型语言的工作原理.
你的代码被一句一句地翻译成计算机能理解的指令, 并且立即执行.

解释型语言的优点是它们非常灵活, 因为你不需要等待所有的代码都被翻译完成, 程序就可以开始运行.
这使得开发非常快速, 因为你可以随时调整你的“演讲”.
此外, 解释型语言通常可以在不同的计算机上运行, 因为翻译工作是即时进行的, 不需要针对不同的计算机重新翻译.

graph LR
    A[源代码] -->|解释| B[解释器]
    B -->|生成| C[机器语言]

但是, 解释型语言的缺点是它们可能运行得慢一些, 因为每执行一行代码都需要即时翻译.
这就像是在做即时翻译时, 说话的速度可能会慢一些, 因为翻译需要时间.

Python JavaScript BASH MATLAB 等都属于解释型

其特点包括:

  • 依赖解释器执行
  • 开发效率极高
  • 跨平台性好
  • 适合快速开发和脚本编写

第四阶段: 永无止境

“懒惰” 的大佬程序员们还能优化, 还能凹!
从文本编辑器到集成开发环境(IDE), 从版本控制系统如 Git 到各种自动化测试和部署工具, 这些工具极大地提高了开发效率, 减少了重复劳动, 让程序员能够专注于解决更复杂的问题.

而现在, 人工智能(AI)工具的出现, 更是让编写代码的门槛变得更低.
AI 可以帮助自动生成代码, 优化性能, 甚至修复 bug.
自然语言处理技术的进步使得人们可以用更接近自然语言的方式与计算机交流, 进一步降低了编程的入门难度.

计算机和人工智能将继续改变我们的世界, 感谢在前沿的科学家们为人类的生活带来的种种便利, 希望我能活久点看到更厉害的技术, 能看到这里的你, 也要活久点.
这些曾经只存在于科幻小说中的概念, 如今正在成为现实, 并且正在以惊人的速度发展.

  • 标题: 编程伊始:机器与人类沟通的桥梁
  • 作者: Wreckloud_雲之残骸
  • 此记初现于 : 2024-12-17 12:44:22
  • 此记变迁于 : 2024-12-17 14:41:05
  • 链接: https://www.wreckloud.com/2024/12/17/猎识印记-领域/编程语言/编程伊始:机器与人类沟通的桥梁/
  • 版权声明: 本幽影记采用 CC BY-NC-SA 4.0 进行许可。
影踪语