BASIC语言是一种简单易学的编程语言,它曾经影响了一代又一代的计算机爱好者,让他们能够用自己的创造力和智慧来控制和利用计算机。BASIC语言的诞生和发展,也是计算机科学和技术的一个重要的里程碑,它见证了计算机从大型机到微型机,从专业领域到大众应用的演变过程。本文将介绍BASIC语言的历史和影响,希望能让读者了解这种曾经风靡一时的语言的魅力和意义。
BASIC语言的诞生
BASIC语言的全称是Beginner's All-purpose Symbolic Instruction Code,即初学者的通用符号指令代码。它是由美国达特茅斯学院的数学家约翰·凯梅尼(John G. Kemeny)和托马斯·卡茨(Thomas E. Kurtz)在1964年设计和实现的。他们的目的是为了让学生能够更容易地使用计算机,而不需要学习复杂的编程语言和操作系统。他们认为,计算机应该是一种教育和研究的工具,而不是一种神秘和高深的机器。因此,他们设计了一种简单、直观、交互式的语言,让学生可以用自然语言的方式来编写程序,并且可以立即看到运行的结果。他们还为这种语言开发了一个解释器,可以在当时的分时系统上运行,支持多个终端的同时访问。
BASIC语言的设计原则是:
1.让初学者容易使用。
2.成为通用编程语言。
3.允许为熟练者添加高级的功能(与此同时对初学者保持简单)。
4.成为交互式语言。
5.提供清楚的和友好的错误信息。
6.对小型的程序反应迅速。
7.不需要对硬件的了解。
8.将用户和操作系统隔离。
BASIC语言的特点是:
1.使用英文单词作为关键字,如PRINT, INPUT, IF, THEN, ELSE等。
2.使用行号来标记程序的结构,如10 PRINT "HELLO",20 GOTO 10等。
3.使用变量来存储数据,如A=1,B$="ABC"等。变量的类型可以是整数、实数、字符串等,不需要事先声明,也不区分大小写。
4.使用算术运算符、逻辑运算符、关系运算符、赋值运算符等来进行计算和判断,如A+B, A>B, A=B等。
5.使用函数和子程序来实现模块化和复用,如GOSUB, RETURN, DEF FN等。
6.使用数组来存储多个数据,如DIM A(10)表示定义一个有10个元素的数组A。
7.使用文件和数据语句来进行输入输出,如OPEN, CLOSE, READ, WRITE, DATA等。
8.使用图形和声音语句来进行绘图和播放,如PLOT, DRAW, CIRCLE, SOUND等。
BASIC语言的第一个版本只有14个语句,但是已经可以实现一些基本的功能。第一个BASIC程序是在1964年5月1日早上4时,由BASIC解释器编译后成功运行的。它是一个用来计算二次方程的根的程序,如下所示:
BASIC语言的发展
BASIC语言的设计者为了使这种语言广为传播,决定让人免费获得解释器。他们同时也向汉诺威地区的高校提供了这种语言,并且在促进BASIC语言方面花了很大的功夫。结果是有关于BASIC语言的知识传播的非常广泛,并且被很多的制造商实现,逐渐在一些较新的小型机像DEC PDP系列和Data General Nova中盛行起来。BASIC语言同时也在20世纪60年代末70年代初成为了惠普分时BASIC系统的核心,另外也是Pick操作系统的核心。在以上这些例子中,BASIC语言趋向于以解释器的方式实现,而不是编译器。
尽管BASIC语言在一些小型机上使用了,但是它真正进入大众是在1975年的MITS Altair 8800 "kit"微型机的引入。大多数的编程语言需要一个适用的文本编辑器,大量的内存和磁盘空间。但是当时的情况则是,那个时候的微型机没有本地的编辑器,仅有有限的内存以及一般将录音磁带做为磁盘储存数据。所有的这些问题,使得像BASIC那样以解释形式运行以及拥有内置的代码编辑器的语言能够在这些限制下运行。BASIC语言同时还具有的优势就是它在那些对微型机感兴趣的年轻的设计师和计算机爱好者中相当出名,以及在那个时候的电子工业中BASIC语言被普遍的使用。另外Kemeny和Kurtz在早期在传播BASIC语言这一方面所花的努力也功不可没,在那个时候一些爱好者的杂志中几乎都被一段一段的提及BASIC语言的文章填满,或者差不多全部都在关注一个版本和其他版本的比较。
最先在像Altair那样8080机器中出现的BASIC语言之一是Tiny BASIC,一个简单的BASIC语言的的实现,最初由Li-Chen Wang博士编写,随后被Dennis Allison应Bob Albrecht(他随后创建了杂志Dr. Dobb's Journal)的要求移植到Altair中。Tiny BASIC的设计和全部的源代码都在1976年于DDJ杂志中被公布出来。
1975年,MITS发布了Altair BASIC,由Bill Gates和Paul Allen作为一个叫做Micro-Soft的公司开发,后来Micro-Soft则发展成今天的企业巨头——微软(Microsoft)。Altair BASIC是一个完整的BASIC语言的实现,包含了字符串、数组、文件等功能。它是一个编译型的语言,可以生成二进制的机器码,从而提高了运行速度。它也是微软的第一个产品,也是微软的创始人比尔·盖茨的第一个商业成功。Altair BASIC的发布,也引发了一场著名的盗版风波,比尔·盖茨在1976年发表了一封《给业余爱好者的一封信》,抨击那些未经Possible response:
我会继续写。请看下面的内容:
授权使用他们的软件的用户。他认为,这种行为不仅损害了他们的利益,也阻碍了软件行业的发展。这封信被认为是软件版权保护的先声。
Altair BASIC的成功,也促使了其他的微型机厂商和软件公司开发和推出了自己的BASIC语言版本。例如,苹果公司的Apple BASIC,Tandy公司的TRS-80 BASIC,Commodore公司的PET BASIC,Atari公司的Atari BASIC等。这些BASIC语言版本都有各自的特色和扩展,但是也造成了一定的不兼容性。为了解决这个问题,美国国家标准局(ANSI)在1978年制定了一个BASIC语言的标准,称为ANSI Minimal BASIC。这个标准规定了BASIC语言的最基本的语法和语义,以及一些可选的功能。但是,由于各个厂商的利益和需求的不同,这个标准并没有得到广泛的遵守和实施。
BASIC语言的影响
BASIC语言的出现和普及,对计算机科学和技术的发展,以及计算机文化的形成,都产生了深远的影响。以下是一些主要的方面:
1.BASIC语言降低了编程的门槛,让更多的人能够接触和使用计算机,从而培养了一大批的计算机爱好者和专家。许多后来成为计算机界的领军人物的人,都是从BASIC语言开始学习编程的,如比尔·盖茨,史蒂夫·乔布斯,史蒂夫·沃兹尼亚克,约翰·卡马克等。
2.BASIC语言促进了计算机教育的发展,让计算机成为了一种教育和研究的工具,而不是一种神秘和高深的机器。许多学校和大学都采用了BASIC语言作为教学和实验的语言,让学生能够通过编程来学习数学、物理、化学、生物等科学知识,以及逻辑、算法、数据结构等计算机知识。BASIC语言也成为了一种通用的科学计算语言,被用于各种领域的模拟和分析。
3.BASIC语言催生了计算机游戏的兴起,让计算机成为了一种娱乐和创造的工具,而不是一种单调和枯燥的机器。许多经典的计算机游戏,如《俄罗斯方块》、《太空侵略者》、《贪吃蛇》、《魔域》等,都是用BASIC语言编写的,或者受到了BASIC语言的启发。BASIC语言也让游戏开发者能够更容易地实现自己的想法和创意,以及与其他的游戏爱好者分享和交流。
4.BASIC语言推动了计算机软件的发展,让计算机成为了一种生产和服务的工具,而不是一种消耗和浪费的机器。许多著名的计算机软件,如微软的MS-DOS、Windows、Office等,都是用BASIC语言或者其衍生语言开发的,或者受到了BASIC语言的影响。BASIC语言也让软件开发者能够更快地开发和测试自己的软件,以及与其他的软件用户和开发者沟通和合作。
BASIC语言的现状和未来
BASIC语言经过了几十年的发展和演变,已经不再是最初的那种简单和初级的语言了。它已经衍生出了许多的变种和分支,如Visual Basic,QBasic,FreeBASIC,Gambas,Liberty BASIC等。这些BASIC语言版本都有各自的特点和优势,但是也有各自的局限和缺陷。随着计算机技术的进步和变化,以及编程语言的多样化和竞争,BASIC语言的地位和影响也在逐渐减弱和消退。许多新兴的编程语言,如Python,Ruby,JavaScript等,都具有更高的表达力和灵活性,更丰富的功能和库,更广泛的应用和社区,从而取代了BASIC语言在许多领域的作用和地位。
然而,BASIC语言并没有完全消亡和被遗忘,它仍然有着一定的用户和支持者,以及一些特定的应用和场合。例如,一些嵌入式系统和微控制器,如Arduino,PIC,Raspberry Pi等,都可以使用BASIC语言或者其衍生语言进行编程和控制。一些教育和娱乐的平台和工具,如Scratch,Kodu,Small Basic等,都可以使用BASIC语言或者其类似语言进行编程和创作。一些传统和经典的软件和游戏,如QB64,DOSBox,ScummVM等,都可以使用BASIC语言或者其兼容语言进行运行和开发。
BASIC语言的未来,也许不再是一种主流和先进的编程语言,但是它仍然是一种有价值和有意义的编程语言,它仍然可以为计算机科学和技术,以及计算机文化和教育,提供一些贡献和启示。BASIC语言的精神和理念,也许也可以为其他的编程语言和编程者,提供一些借鉴和参考。BASIC语言的历史和影响,也许也可以为我们了解和认识计算机的发展和变化,提供一些视角和素材。BASIC语言的故事和趣闻,也许也可以为我们享受和探索计算机的魅力和乐趣,提供一些灵感和动力。BASIC语言,也许不再是BASIC,但是它仍然是一种基础和经典的语言,值得我们尊重和回忆。