你已经知道了,程序是将需要计算机执行的算法按照一定顺序写下来的一系列指令,那么用什么来“写”出计算机能够理解的指令呢?平时你写作文的时候,一般用的是汉语,这样大家都能读懂;而要写程序,那就得用计算机能够理解的语言对吗?这种计算机能够理解的语言,就是我们必须掌握的“编程语言”。
为了更好地理解“编程语言”,我们先来了解一下它的来龙去脉。
早期的编程语言
你玩过下图这种“八音盒”吗?它的输入是打孔的纸带,你只需要按照乐谱,在合适的位置打孔,再把纸带插入八音盒,转动发条,八音盒就能识别出你打孔位置是哪个音符,从而播放美妙的音乐。
与此类似,早期的程序员前辈们用纸带的穿孔与否来代表0、1,再用0、1组成指令,比如:0000 代表 加载,0001 代表存储,0010 代表 加法等。把这些0、1组成的命令发送给计算机,计算机就能按照这些指令运行程序了。
小贴示:
你可能会问,为什么非要是0和1呢?这是由于计算机的处理芯片是大规模的集成电路,这种底层实现使它只能识别“0”、“1”这两个数字编码组成的信息,你在计算机上看到的任何文字、图片、电影甚至游戏,其实都是以0、1组成的“二进制”编码存储和处理的,具体原理你将在未来学到。
这个时期的计算机编程语言,被称为“机器语言”。
编程语言的发展
用机器语言编写程序的前辈们一定个个都是记忆力超群的天才!因为早期的机器语言实在是太难识别、太难记忆了, 写起来也很麻烦。假设现在我们刚刚举行了一场考试,要计算每一个学生考试的总分(总分=语文+数学),那么对每一个学生都需要这么编写程序:
0000,0000,000000000001
0010,0000,000000000010
0001,0000,000000010000
这么一大串数字只做了一个操作,就是让两个数字相加——可以想象的是,你如果打错了其中任何一个数字,不小心把0少打了一个,这个程序就会出错,无法得到预期的结果了——我是不是太难啦?
幸好我们的程序员前辈们很聪明,他们很快发明了很多帮助记忆的符号来代表不同的指令和操作。这样上面的指令就可以写成:
LOAD A, 1
ADD A, 2
STORE A
是不是简单多了?这种语言称为“汇编语言”,它需要经过特定的程序处理一下,先转化为机器语言,再让计算机执行。在此基础上,前辈们又进一步发明了许多更接近于我们人类表达方式的编程语言,这类编程语言被称为“高级语言”,用高级语言来编写上面的程序,只需要写成这样:
Z=X+Y
好简单!(当然,这些程序也要经过特定的程序转换成机器语言才能被计算机执行)
感谢这些发明了高级语言的前辈吧,让我们不用去记忆那些大串大串的机器指令啦。
丰富多彩的编程语言
经过几十年的发展,编程语言种类越来越丰富,目前世界上的编程语言大概有六百种左右,比较常见的编程语言至少也有几十种。
为什么会设计这么多的编程语言呢?因为每种语言的应用场景不同。有的适合于做数据处理,有的适合于开发设备的控制程序,有的适合于编写游戏,有的适合于做手机App……可以说,每一种编程语言的产生,都是有它自己的用武之地的,并没有绝对的好坏之分。
这么多种编程语言,我们更适合学习哪一种呢?本书推荐的是 Scratch ,这是一种图形化、积木式的编程语言,你基本不需要记忆什么指令也能编程,就是简单易学,适合初学者入门使用。
准备你的编程环境
古人云:“工欲善其事,必先利其器”。要做好一件事,我们需要先把称手的工具准备好。Scratch 就是我们选择的编程工具,我们得先准备好 Scratch,才能开始编程。
要使用 Scratch 有两种方式:
在线使用:你可以直接访问https://scratch.mit.edu/这个网址,不需要安装任何软件就能开始编程,非常方便。这种方法的缺点在于如果没有网络,你就无法编程,有网络的情况下,你还可能受网速的影响,试想一下你摩拳擦掌想开始编程却半天打不开网站的场景吧!(为了提升访问速度,我们也为你提供了一个备用的网址实现在线编程:https://www.lycoding.com/scratch/
离线编辑器:你可以在https://scratch.mit.edu/download
下载适合自己设备的 Scratch 编辑器,官方提供了 Windows、MacOS、ChromeOS、Android 多个版本的程序,根据需要下载安装就能使用,使用的体验与网页版几乎完全一致。
小贴示:
如果你在安装过程中遇到问题,可以参考随书提供的视频教程,里面有关于安装的介绍。