第六十章 就这么简单
大概是在LUS十一岁的时候,他的外公终于抱回来第一台计算机,名称为VIC-20。这台计算机就是LUS接触的第一台真正意义上的计算机,他之后就完全沉迷在这个神奇的世界中。
VIC-20是最早的家用计算机之一,只有一个小盒子作为主机,需要连接上电视机作为显示器。LUS的外公只是将其作为一个升级版的计算器,而事实上这台计算机的功能也并不是很强大,但是这台计算机对于LUS来说,却有着非常重要的意义。
VIC-20虽然很简单,但是却可以使用BASIC语言编写程序,而这成为了LUS之后最大的乐趣。
BASIC语言是一种相对来说比较简单的高级编程语言,最适合初学者学习使用。
LUS至今还对他的第一个电脑程序印象非常深刻,那是不断循环在显示器上打印“HELLO(你好)”的小程序,是他按照编程手册上的范例而输入到BASIC编程器里面的,很简单,只有两行代码。第一行代码就是告诉计算机“打印HELLO”,第二行代码则让它跳转到第一行。
通常情况下,计算机执行程序的时候,是从前到后按顺序执行的,但是如果人为地指定了跳转的话,他就会乖乖地调到你指定的地方重新开始执行。
所以,LUS编写的第一个程序就是不断的在显示器上打印“HELLO”,后来他妹妹看到之后,就让他将这个程序进行了修改,将第一行打印的内容改成了“萨拉是世界上最棒的!”。
LUS很快就将BASIC语言用得很熟练了,他可以使用这种编程语言来帮助外公来解决一些比较复杂的计算问题,他成为了外公的得力助手。这个时候,他才深切的体会到,计算机编程对自己生活的改变。
从那以后,他用BASIC语言编写了好多程序,大多数都是一次姓的,写完之后删掉又重来。他将自己各种各样的奇思妙想都用编程实现出来,他享受到了无线电之外的乐趣。并且他开始尝试着将计算机和他的无线电台联系起来。毕竟都是电子产品,两者之间还是有着一些联系的,他将自己的零花钱省下来,购买了一些数据线和转换接口,将计算机和自己的电台连接起来。并且开始尝试使用BASIC语言编写一个程序,想用这个程序完成英文字符和摩斯电码之间的相互转换。
也就是说只要将需要发送的文字内容输入进去,这个程序就会自动将这些字符转化为摩“嘀嗒”模式的摩斯电码,然后通过连接在计算机上的电缆线传递给发报机,从而将信号发送出去。
这是一个非常实用的程序,有了这个,大大简化了他和别人进行通联的效率,将自己电键按钮中解放出来。
花了大概一个月的时间,他的程序的确是编写好了,英文字符可以顺利转换为“嘀嗒”信号,但是他遇到了一个比较头疼的难题,他不知道如何将这些信号通过数据线传递给发报机。
这需要搞清楚数据传输的底层原理,但是BASIC语言在这一块却根本没有这方面的内容。
他花了大量的时间来研究这个问题,但是却一直没有头绪。直到有一天,他从一位业余无线电朋友那里得到了这样一个程序。
这个程序的功能和LUS之前构想的功能是一样的,而且可以正常工作,顺利将CW等幅报发送出去。对LUS来说,最重要的并不是这个程序的功能,而是编写这个程序的语言。
在此之前,他一直以为计算机编程就是BASIC编程,以为计算机里面有且只有BASIC一种编程语言。对于计算机底层到底如何工作,他并没有一个非常清晰的理解。
而这小程序向他打开了计算机底层原理的大门。
那个火腿朋友不但将编译好的程序给了他,与之附带的还有这个小程序的源代码。
LUS惊讶地发现,这个程序并不是由BASIC语言编写的,而是一些奇怪的数字,刚开始的时候他一点儿也看不懂,但这并没有影响他对其进行深入研究的兴趣。后来他才知道,原来这些数字是一种十六进制的被称为“机器码”的语言。这些数字,按照固定的换算关系,可以很容易地将其转换为仅仅由“0”和“1”组成的数字串。
而“0”和“1”才是计算机中最本质的原理所在。
BASIC语言只是建立在“机器码”之上的一种高级语言,之所以发明出来,是为了让程序员能够更好的记忆,降低编程的难度。
这个道理,就如同那些成语典故一样,虽然只有短短的几个字,却可能包含着一大段的内容。程序员之前早就学过这些“典故”,所以他们编写程序的时候,就如同在写文章,随心所欲地使用着这些成语典故。但是计算机却比较“笨”,他无法直接理解这些典故,必须通过“编译器”这种工具翻译一下,将成语典故解释为一大段比较浅显易懂的文字,这样它才能理解。
程序员甚至不用关心这些典故的详细内容,如典故发生的时间地点和涉及到的具体人物,他们只需要大概知道这个典故可以在什么时候使用就行了。反正还有“编译器”这个翻译人员在,他最终会将具体的细节和计算机说清楚的。
这样的好处是显而易见的,程序员可以节省大量的时间和精力,通过使用“典故”,可以很迅速地就可以编写出字所需要的程序。
不过,这也有很大的弊端。因为如果程序员不了解这些“典故”的来龙去脉的话,就无法做一些比较细致的东西。就如同LUS之前那样,他只学过BASIC,而并不知道BASIC最终到底会被翻译成什么样的机器码,不了解其中数据传输的细节,所以也就无法编写出这个程序。
这实际上是BASIC的限制所导致的,它本身的设计缺陷导致了它无法艹作这些底层的东西。
而通过这个小程序,LUS知道了原来在BASIC语言下面,还存在一种被称之为“机器码”的东西,而在机器码的下面,更是有一种叫做“二进制码”的东西。
到了这个层面,这就完全是硬件方面的东西了。“0”表示一个开关的断开,而“1”则是表示开关的闭合。作为一个资深火腿,对这种简单的电路他最是熟悉不过。
他这个时候才发现,原来计算机就这么简单。
====
小强建了一个腾迅微.群,详细请访问【rockxie点com】查看,欢迎大家加入
;