简介:与电脑沟通
你有没有想过,当你点击按钮或玩游戏时,电脑是如何准确知道该做什么的?电脑并不懂英语或任何人类语言,它们只懂电力——即“开”或“关”。为了拉近我们与电脑之间的距离,我们会使用程序语言。在本节中,我们将探讨这些语言的不同级别,以及那些将我们的指令转化为电脑能理解的“翻译官”。
高级语言与低级语言
程序语言的设计各不相同。有些旨在方便人类阅读,而另一些则专门为电脑处理器(CPU)的运作需求而设计。
1. 高级语言
你在学校编写的大多数程序(例如使用 Python)都是高级语言。它们的设计目标是“对人类友好”。
- 特点: 它们使用类似英语的词汇(例如 print, if, while),并遵循逻辑结构。
- 可移植性: 它们具有可移植性(Portability),这意味着同一段代码通常可以在不同类型的电脑上运行(例如 Mac、Windows PC 或 Linux 机种)。
- 用途: 它们让程序员能快速编写复杂的程序,而不必担心电脑硬件运作的细节。
例子:Python, Java, C++, 和 Javascript。
2. 低级语言
低级语言非常接近电脑硬件真正能理解的模式。主要分为两类:
- 机器码: 这是最底层的语言,完全由二进制(0 和 1)组成。这是 CPU 唯一能直接“阅读”和执行的语言。
- 汇编语言: 这是比机器码高一级的语言。它使用短小的助记符(记忆辅助),如 ADD, SUB, 或 MOV。它通常用于特定的硬件任务,例如编写微波炉或电子手表的软件。
低级语言的特点:
- 对人类来说非常难以阅读和编写。
- 不具备可移植性;为某种特定 CPU 编写的代码,换了另一种 CPU 可能就无法运行。
- 它们赋予程序员对电脑内存和硬件的完全控制权。
别担心,一开始觉得难是正常的!
试着这样想:高级语言就像用英语跟朋友聊天;低级语言则像给机器人一份清单,详细说明它需要转动的每一个齿轮和触发的每一根电线。
快速回顾:主要差异
高级语言:易于阅读,具可移植性,需要转换,运行速度较慢。
低级语言:难以阅读,依赖特定硬件,运行速度非常快。
重点总结: 高级语言偏重人类的理解,而低级语言则偏重电脑硬件的执行效率。
翻译官:编译器与解释器
由于 CPU 只能理解机器码(0 和 1),任何用高级语言编写的程序都必须经过翻译。主要有两种方式:使用编译器(Compiler)或解释器(Interpreter)。
1. 编译器
编译器会将整个源代码(你写的指令)一次过翻译成一个可执行文件(例如 .exe 文件)。
- 运作方式: 它会扫描整个程序,并生成一个完整的机器码版本。
- 速度: 翻译过程需要时间,但一旦完成,程序执行速度非常快。
- 隐私: 你不需要将源代码发送给用户,只需提供“编译后”的机器码即可。
- 错误处理: 如果程序中存在哪怕一个错误,编译器也会停止,直到你修正所有问题后才能完成翻译。
2. 解释器
解释器会将源代码逐行翻译,并立即执行。
- 运作方式: 它读取第 1 行,翻译并执行它,然后再进行第 2 行。
- 速度: 程序能立即开始执行,但因为它是“实时”翻译,整体运行速度较慢。
- 调试(Debugging): 这对初学者非常友好!如果第 10 行有错误,程序会完美运行第 1-9 行,然后刚好在出错的地方停止。
- 需求: 用户的电脑必须安装相应的解释软件才能运行该程序。
你知道吗?
Python 就是一种解释型语言!这就是为什么你可以在集成开发环境(IDE)中立即执行代码,并逐行看到结果的原因。
两者比较:一个比喻
想象你有一份法文食谱,但你只会说英语。
- 编译器就像一位专业翻译员,他将整份法文食谱翻译成一本完整的英文食谱。之后你随时可以使用这份英文版本,翻译员不必在场。
- 解释器则像一位坐在你厨房的朋友。他读法文的一行,告诉你英文意思,等你做完该步骤,再继续下一行。如果他遇到不懂的单词,他就会立刻停下来!
常见误区
学生常误以为编译器会“执行”程序。事实并非如此!它只是创建了一个之后可以执行的独立文件。是解释器才会在翻译的同时执行代码。
重点总结: 编译器一次过翻译所有内容以生成快速、独立的文件。解释器则逐行翻译,因此更适合测试和寻找错误。
第 3.3 单元总结
- 高级语言(如 Python)类似英语,并可在不同电脑间移植。
- 低级语言(机器码和汇编语言)对人类来说很难,但对 CPU 来说运作很快。
- 机器码是 CPU 唯一能理解的东西(二进制)。
- 编译器将整个程序一次过翻译,产生执行速度快的文件。
- 解释器逐行翻译,速度较慢,但让寻找错误(调试)变得容易得多。