计算机基础
本节旨在为计算机初学者提供有关计算机组成和编程语言发展历史的背景知识,以便更好地理解计算机语言中的各种概念和设定。如果您已经熟悉计算 机的结构,可以跳过本节内容。
图灵机
自古以来,人们就不断探讨如何利用机器来辅助数学计算。比如算盘就是一种比较典型的辅助计算工具,它可以提高使用者的计算速度。然而,算盘的功能相对简单,仅能在基本的加减乘除运算中发挥作用。近两个世纪以来,人们设计出了功能更强大的计算机器。其中,对后世影响最大的当属图灵机(Turing Machine),由数学家艾伦·图灵(Alan Turing)在1936年提出。尽管图灵机并非实体机器,而是一种模型,但它从理论上证明了机器计算的可行性,为现代计算机的诞生与发展奠定了理论基础。
图灵机的基本构成如下:
- 无限长的纸带:纸带上有无数方格,每个方格中可以书写一个符号。
- 读写头:读写头可以移动到纸带上的任意方格,读取或修改符号。
- 操作规则:图灵机可以保存当前的状态,并根据当前状态和纸带上的符号决定下一步操作,例如移动到新的位置,进行读或写。
尽管图灵机的结构简单,但只要给定一个问题(根据规则写在纸带上的一串符号),它就能计算出问题的结果(更新后的纸带)。图灵证明了任何“可计算问题”都可以使用图灵机来求解。
图灵机是一种理论模型,而现代计算机可以视作这种模型的实际应用。现代计算机通过内存或硬盘读取和写入数据,并由中央处理器(CPU)控制读写过程。虽然现代计算机看起来比图灵机复杂得多,但它们在本质上是相同的。
冯·诺依曼架构
根据图灵机模型,制造一台实际的机器仍有多种方法。比如可以用磁芯或半导体电路替代纸带作为存储介质;数据在存储器中的组织方式也可以不同;可以用电子信号替代机械装置来读写数据等。
现代计算机的基本框架采用的是冯·诺依曼架构,由数学家约翰·冯·诺依曼(John von Neumann)于 1945 年提出。冯·诺依曼架构的核心思想是:使用二进制逻辑,将数据和程序指令(对数据的操作)存储在同一个存储器中,并由中央处理单元(CPU)按顺序读取和执行。这种相对简洁的设计为现代通用计算机奠定了基础。
冯·诺依曼架构的主要组成部分包括:
- 中央处理单元(CPU):负责解释和执行指令,协调计算机各部分的工作。
- 存储器:用于存放程序指令和数据。
- 输入输出设备:如键盘和显示器等,用于与计算机交互。
- 数据总线:用于传输数据。
除了以上硬件部分,计算机还需要配套的软件。每台计算机都安装有操作系统,用于管理计算机的硬件和软件资源。此外,还需要安装各种系统软件和应用软件来执行特定任务,例如浏览网页、播放视频等。
冯·诺依曼架构的一个主要问题是:CPU 与存储器之间的数据传输速度限制了系统性能。在存储器中读写数据的速度远慢于 CPU 的处理速度。为了应对这一问题,许多编程技巧和硬件优化方案被开发出来,这也会是我们在编程学习过程中经常遇到的挑战。