简介:与电脑对话

欢迎!在本章中,我们将探讨如何与电脑进行真正的沟通。由于电脑本质上只是一堆微型开关的集合,它们天生无法理解英语甚至是 Python。我们需要程序语言(Programming Languages)来架起人类思想与电脑电脉冲之间的桥梁。理解这些语言的分类,能帮助你为工作选择合适的工具,并深入了解软件如何在硬件上运行。

1. 大局观:语言的层次

程序语言通常分为两大类:低级语言(Low-Level Languages)高级语言(High-Level Languages)。你可以把这视为一种“接近程度”的量尺。一端非常接近电脑的“大脑”(硬件),而另一端则更贴近人类的思考与表达方式。

低级语言

低级语言与特定电脑的处理器(CPU)架构紧密相连。你需要掌握两种类型:
机器码(Machine Code):这是最基本的层次,完全由二进制(Binary)(即 1 和 0)组成。这是电脑唯一能“理解”并直接执行的语言。
汇编语言(Assembly Language):这是比机器码高一阶的语言。它不再使用 1 和 0,而是使用称为助记符(Mnemonics)的简短文字指令。例如,与其写一长串二进制代码,你可以写 ADD 来进行加法运算,或写 MOV 来移动数据。

高级语言

高级语言(如 Python、C# 或 Java)使用类英语的单词和数学符号。它们的设计初衷是让人类更容易阅读和编写。AQA 课程大纲特别聚焦于指令式高级语言(Imperative High-Level Languages)。这类语言要求你向电脑提供一系列步骤式的指令来执行任务(就像食谱一样)。

快速回顾区

低级:接近硬件,使用二进制或助记符,针对特定类型的 CPU。
高级:接近人类,使用类英语单词,可在不同类型的 CPU 上运行。

重点总结:低级语言是为机器设计的;高级语言则是为程序员设计的。

2. 深入探讨:机器码 vs. 汇编语言

别担心,这些听起来可能有点吓人!大多数现代程序员很少需要直接撰写这些代码,但了解它们的运行方式对于理解电脑系统至关重要。

机器码(“真正”的语言)

机器码中的每一条指令都是一种二进制模式。例如,CPU 可能看到 10110000 01100001,并精确地知道要开启或关闭哪些电路。因为它是纯粹的数字,人类在编写时极易出错,且更难进行除错(Debug)!

汇编语言(“秘密代码”)

汇编语言的诞生是为了让低级编程变得更容易。它使用助记符作为机器码的速记法。
例子:程序员会写 LDA(代表 "Load into Accumulator",即“载入到累加器”),而不是写 00000110
关键点:由于 CPU 依然只懂二进制,汇编语言必须通过一个名为汇编器(Assembler)的程序翻译成机器码。

你知道吗?

因为汇编语言与硬件连接极深,所以它是处理器专用的。这意味着为笔记本电脑的 Intel 处理器编写的汇编语言程序,无法在智能手机的 ARM 处理器上运行!

重点总结:汇编语言是人类可读版的机器码,但仍需通过汇编器转为二进制,CPU 才能执行。

3. 高级指令式语言

“指令式(Imperative)”一词源于“命令”。在指令式高级语言中,程序员编写一系列改变程序“状态”(即内存中存储的数据)的指令。

为什么我们使用高级语言?

你们在课堂上写的大多是高级语言。它们具备可移植性(Portability),意味着你可以编写一次代码,并在多种不同类型的电脑上运行。此外,它还提供了抽象化(Abstraction)——你无需了解 CPU 如何管理寄存器(Register),只需学会如何写出 total = price + tax 即可。

与低级语言的关系

电脑仍然无法直接执行高级代码,必须将其翻译为机器码。这通常由编译器(Compiler)解释器(Interpreter)完成。单行高级代码(如 print 语句)可能会转换成数十甚至数百条机器码指令!

记忆法:“H”与“L”规则

High-level(高级) = Human-friendly(人类友好)。
Low-level(低级) = Linked to hardware(与硬件挂钩)。

重点总结:指令式语言关注的是程序如何通过一连串指令达成结果。

4. 层次比较:优缺点分析

这是考试中的热门考题!让我们看看为什么要选择其中一种语言。

高级语言的优点

易于学习:代码看起来更像英语。
开发速度快:能更迅速地编写复杂的程序。
可移植性:代码可在不同类型的 CPU 架构上运行。
易于除错:在高级代码中寻找和修复错误要简单得多。

低级语言的优点

速度:程序可针对特定 CPU 进行优化,运行速度极快。
内存效率:占用极少的内存(RAM)空间。
直接硬件控制:对于编写设备驱动程序(Device Drivers)(如告知电脑如何与打印机或显卡沟通的软件)至关重要。
无需翻译(针对机器码):机器码可立即执行,无需等待编译。

常见误区

学生常误以为汇编语言就是“机器码”。这是不对的!汇编语言是文字;机器码是二进制。你需要汇编器来跨越这条鸿沟。

重点总结:编写通用应用程序或追求开发效率时,请使用高级语言;当你需要极致效能或直接控制硬件时,则使用低级语言。

最终总结清单

在继续学习前,请确保你能:
• 将机器码定义为二进制,且是 CPU 唯一能执行的语言。
• 解释汇编语言使用助记符,并需要汇编器
• 将高级语言描述为类英语且具可移植性
• 将指令式定义为改变程序状态的一系列指令序列。
• 列举至少两个低级语言及高级语言的优点