一、什么是编程语言
编程语言,就是和计算机沟通的语言,计算机作为一台机器,有他自己独特的运行方式,它并不能理解人类的语言。而我们想要利用计算机做一些事情,就需要用计算机可以理解的语言去和他沟通。假如你现在想要与一个英国人沟通,那么双方中必须要有一方会对方的语言。而计算机并没有学习能力,所以只能是你去学习计算机的语言,然后与计算机进行沟通。那为什么市面上有那么多的编程语言呢?这就需要从计算机的结构开始讲起了。
二、计算机简介
有很多人每天在使用电脑,对于大多数人来说,可以熟练的用电脑进行打字、听音乐、看视频、使用浏览器上网以及打游戏,这些操作就已经覆盖了大多人90%的需求。如果你可以彻底的删除某些流氓软件以及安装电脑驱动,那么你就是一名响当当的“电脑高手了”。但是一名从事计算机专业的程序员来说,这些远远不够,接下来我将带你揭开计算机的神秘面纱,探寻计算机背后的秘密。
我们现在日常使用的计算机,是采用了冯诺依曼结构的计算机。那么冯诺依曼结构有什么特点呢?它的主要特征是指令与数据都以二进制形式储存在储存器里;指令根据其储存的顺序执行。下面我将用一个小故事,通俗易懂的解释什么是二进制,以及什么是冯诺伊曼计算机。
小故事:小诺的“奇妙指令游乐场”
从前,有一个叫小诺的聪明工程师,他戴着一顶画满“0”和“1”的帽子,建了一座世界上最特别的游乐场——“奇妙指令游乐场”。这个游乐场有个神奇的秘密:它只听得懂一种“魔法语言”,那就是 “开开关关语” !
1. 什么是“开开关关语”?
这种语言只有两个词:
- “开!”(1) ——让机器动起来!
- “关!”(0) ——让机器停下来!
游乐场里所有的机器、灯光、音乐盒,都只认识这两个词!
为什么?
- 想象游乐场的每个小灯泡:
- 喊“开!”(1)→ 亮!
- 喊“关!”(0)→ 灭!
- 想象旋转木马的马:
- “开!”(1)→ 抬腿跑!
- “关!”(0)→ 停下来!
简单极了!就像你玩声控灯,喊“开”它就亮,喊“关”它就灭。游乐场里成千上万个这样的小开关,都只听“开”和“关”!
2. 怎么用“开关语”数数?
小诺在游乐场门口挂了一排神奇计数灯泡,专门数小朋友。但注意啦!灯泡的顺序要从右往左看(就像写数字时个位在最右边):
- 最右边灯泡:管 1(亮=1,灭=0)
- 中间灯泡:管 2(亮=2,灭=0)
- 最左边灯泡:管 4(亮=4,灭=0)
(如果需要更多灯泡,下一个会是管8,再下一个管16,以此类推!)
小诺开始数小朋友啦!
第一个小朋友来:
- 小诺点亮最右边灯泡(1): 亮!
- “开关语”记录:001(读作“零零一”)
- 实际数字:1(因为只有最右边的1亮着)
第二个小朋友来:
- 小诺想:“最右边灯泡已经是‘1’了,再加1怎么办?”
- 他聪明地操作:
- 关掉最右边灯泡(0)→ 灭!
- 点亮中间灯泡(2)→ 亮!
- “开关语”记录:010(读作“零一零”)
- 实际数字:2(因为中间的2亮着)
第三个小朋友来:
- 小诺想:“现在中间灯泡是2,再加1,可以点亮最右边的1!”
- 他操作:
- 点亮最右边灯泡(1)→ 亮!
- 中间灯泡保持亮着(2)→ 亮!
- “开关语”记录:011(读作“零一一”)
- 实际数字:3(因为中间的2 + 右边的1 = 3)
第四个小朋友来:
- 小诺想:“现在灯泡是011(3),再加1怎么办?”
- 他操作:
- 关掉最右边灯泡(0)→ 灭!
- 关掉中间灯泡(0)→ 灭!
- 点亮最左边灯泡(4)→ 亮!
- “开关语”记录:100(读作“一零零”)
- 实际数字:4(因为最左边的4亮着)
3. 为什么不用“亮几个灯泡=数字几”?
这时候,有个聪明的小朋友举手问: “小诺叔叔,为什么不用更简单的方法呢?比如让1个灯泡亮表示1,2个灯泡亮表示2,3个灯泡亮表示3……这样不是更容易数数吗?”
小诺笑着解释道: “啊,这真是个聪明的想法!但我们的游乐场有一个秘密规则:每个灯泡必须代表固定的‘魔法数字’!你看——”
问题:灯泡不够用!
- 如果用“亮几个灯泡=数字几”:
- 1 个灯泡亮 = 1✅
- 2个灯泡亮 = 2 ✅
- 3个灯泡亮 = 3 ✅
但数到4时……游乐场只有3个灯泡!不够用啦!
小诺的方法更强大!
- 用小诺的方法,3个灯泡能组合出8种数字(000=0,001=1,…,111=7)!
- 如果增加第4个灯泡(代表8),能数到15!第5个(代表16)能数到31……越加灯泡,能数的数字越大!
“所以,小诺喜欢这个规则,因为它能用最少的灯泡表示最多的数字!”
4. 游乐场怎么"听话"工作?——冯诺依曼魔法
小诺的游乐场最神奇的地方是:它能把 "怎么玩"的指令和 "玩什么"的东西,都变成 "开开关关语" ,写在一张巨大的 "魔法卡片墙" (存储器)上!
第一步:存旋转木马的指令
小诺想把"旋转木马转3圈"存进去。他需要两张卡片:
- 木马卡片(数据卡) :
- 写着"旋转木马"的名字 → 翻译成1101
- 贴在卡片墙的第5格
- (就像给旋转木马发了一张身份证)
- 转圈卡片(指令卡) :
- 写着"转圈" → 翻译成101(转圈)
- 贴在第6格
(就像给木马写的使用说明书)
第二步:CPU小精灵的工作
游乐场的小精灵小U(CPU) 是这样工作的:
-
看第6格的转圈卡片:
-
先看到101,知道要"转圈"
-
再看到"去找第5格的木马"
-
跑到第5格找木马:
-
看到1101,认出是旋转木马
-
执行命令:
-
对着旋转木马喊:
-
先喊101选中它
-
再喊1101转圈
木马就转了一圈!
为什么这样设计?
小诺指着卡片墙说: "看!指令和数据分开存,但都用同样的'开开关关语'写在同一个地方:
- 想改动作?只改指令卡!
- 想改项目?只改数据卡! 这样既灵活又不会乱!"
“所以,计算机就是这样,用‘开开关关语’(二进制)存储所有东西,然后让小U(CPU)飞快地执行!”
5. 为什么这个游乐场这么厉害?
因为小诺的“魔法卡片墙”设计(冯诺依曼结构)让游乐场变得超级聪明和灵活!
- 小U只要按顺序执行卡片(或卡片上写的“跳到哪里去看”)。
- 想换新游戏? 不用拆游乐场!只要在“魔法卡片墙”上贴新的“开开关关语”指令,小U就能玩新游戏!
- 所有秘密——游戏规则、小朋友名字、音乐、灯光——都变成了“开开关关语”,等着小U去读、去执行!
“所以,你天天玩的电脑,其实就是小诺的‘奇妙指令游乐场’!”
- “开开关关语” = 二进制(0和1)
- “魔法卡片墙” = 内存(存储器)
- “小精灵小U” = CPU(中央处理器)
- 冯诺依曼结构 = 小诺的聪明设计(指令和数据都用同一种语言存起来,按顺序执行)
“现在你明白了吗?计算机的世界,就是‘开开关关’的魔法世界!” ✨