BASIC万花筒 ——你所熟悉和陌生的BASIC
by thriller from http://www.vb61.com
你知道吗?BASIC四十岁了。
经常有网友问:要学编程,应该从哪种语言入手?作为一个热爱了BASIC 20年的人, 我会毫不犹豫的告诉你:当然是BASIC。 不管你过去对BASIC有何偏见和误解,你现在将对它有一个重新审视的机会。BASIC的诞生——一个传奇的开始
1964年,美国达特茅斯大学的Thomas E. Kurtz(1928–)和John G. Kemeny(1926.5.31-1992.12.26,原籍匈牙利)在Fortran II和ALGOL 60的基础上设计了一种新的计算机语言,命名为“Beginner's All-purpose Symbolic Instruction Code”,意为初学者通用符号指令代码,简称BASIC。这个简单易学的计算机程序设计语言当时只有17条语句,12个函数和3个命令,这就是BASIC始祖——Dartmouth BASIC。第一个BASIC程序(实际是一个编译器)于当地时间1964年5月1日凌晨4点在一台GE-265 (IBM 704) 主机中成功运行,操作者是Mike Busch和John McGeachie。从此Kurtz和Kemeny作为BASIC语言之父被永远载入史册。
BASIC语言自诞生起就显示出了强大的生命力,各种版本层出不穷。从APPLE-Ⅱ机上用的APPLE SOFT BASIC,到LASER-310上用的MSBASIC,到IBM-PC及其兼容机上用的BASICA和GW-BASIC,再到MS-DOS上的MS BASIC、QuickBASIC 和VisualBasic 1.0, 直至Windows下的Visual Basic和Linux下的XBasic、YaBASIC等等,BASIC无处不在,甚至许多电子游戏机(例如小霸王学习机)和微型电子词典(例如文曲星)中都实现了BASIC。从诞生之初,BASIC语言就以其简单、易学和对硬件要求低等特点受到了广大程序设计人员,特别是电脑初学者的青睐,历经四十载,显示了其顽强的生命力。如今BASIC语言在许多国家都作为一种计算机程序的教学语言和入门语言。谭浩强教授八十年代所著《BASIC语言》一书,曾经多次再版,现在的发行量已经超过千万之巨,BASIC语言在中国有着大量拥趸,许多编程爱好者和专业人士也一直对它情有独钟。
早期的BASIC
Dartmouth BASIC和True BASIC
我不想在这里详细回顾计算机的发展史,因为那是另一项大工程,但地球人都直道,计算机是从电子管到晶体管 进化到集成电路到大规模集成电路到超大规模集成电路,从大型机到小型机再到微型计算机的。BASIC也是伴随着这个进化而演变的。BASIC创始人J. Kemeny和T. Kurtz 1964年在Dartmouth学院使用的BASIC语言被称为Dartmouth BASIC,这个BASIC祖先经过七次以上的版本更新,到1983年时演变成了True BASIC。最早的True BASIC可以同时在IBM PC和Apple Macintosh计算机上运行,既能以解释方式执行,也能将代码编译成机器语言从而提高运算速度。True BASIC是一种真正的结构化程序设计语言,到今天已经发展出了DOS 、MacOS 、Windows 、Unix和Linux等各种操作系统下运行的多种版本,并提供了声音、图像、数学运算、多任务等丰富的功能库。True BASIC现在仍然是一种有强大生命力的语言,可以访问http://truebasic.com来进一步了解这种古老而正宗的语言。下载 Dartmouth BASIC -Just a joke.;-) |
IBM-704大型计算机 |
Tiny BASIC
Li-Chen Wang博士(华裔?)在二十世纪70年代中叶发表了第一个真正用于微处理器的BASIC版本,可以运行于任何Intel 8080及Zilog Z80 微处理器上, 需要2KB内存,使用纸带输入。最早版本Palo Alto Tiny BASIC于1976年5月发表在著名计算机杂志Dr. Dobb's。这是个自由版本,源代码中含有"All Wrongs Reserved"和"CopyLeft" 字样,表现出作者对金钱的不屑——致敬!
下载 Tiny BASIC for 808x |
一台真正的8080计算机 |
Microsoft BASIC
PC上的第一个BASIC——一个里程碑
BASIC语言虽然不是微软发明的,但谁也无法否认微软在BASIC的发展过程中做出的努力和取得的成就。1975年3月2日,微软公司发布了第一个真正意义上的产品:用于MITS Altair 8800——第一台商用个人计算机的BASIC编译程序,从而开始了微软的传奇之旅。MITS Altair 8800的寿命非常短暂,但却开创了一个历史。这个BASIC产品也为比尔·盖茨和保罗·艾伦的微软帝国奠定了基础,同样,这也是比尔·盖茨对BASIC情有独钟的原因之一。 记住这两个名字罢:比尔·盖茨(Bill Gates)保罗·艾伦(Paul Allen),正是他们创造了PC平台的BASIC和后来的微软神话。 具有讽刺意味的是,这个纸带上的著名产品本身也成了个人微型计算机历史上第一次大规模盗版的牺牲品——因为一份拷贝在正式发布前的一次展示会上丢失了,于是产生了大量复制品,这甚至影响到微软的产品策略,导致BASIC最终被免费随MS-DOS提供给用户。 这也是微软历史上第一次源代码泄漏事件;-)。
最初的微软公司 摄于1978年12月 左下角是比尔·盖茨,右下角是保罗·艾伦 |
纸带上的MS BASIC 1.0 |
Basic 解释器:
IBM发布的第一台PC机的ROM中包含了一个BASIC,而且它使用的由微软公司编写的PC-DOS里包含了一个扩展的磁盘版的BASIC,名为BASICA(高级BASIC),而微软自己的MS-DOS则包含了一个类似的版本,称为GW-BASIC。BASICA和GW-BASIC的区别在于BASIC 需要计算机内建ROM BASIC的支持。使用Basica/MS Basic/IBM Basic的IBM-PC如果没有启动软盘,ROM BASIC就会自动运行。
BASICA和GW-BASIC都是解释器,解释器相对容易实现而且不需要为结果代码保留内存,但与编译后的程序相比速度较慢。
下载 MS Basic 5.28 (1977-1983) 古老的MSDOS (1983)中所带的MS BASIC。 下载 IBM PC Basic A2.10 下载 IBM Basica 3.0 vers. 1 下载 GW-BASIC 2.01 (西班牙语版) 下载 GW-BASIC 2.02 下载 GW-BASIC 3.20 下载 GW-BASIC 3.22 下载 GW-BASIC 3.23 GW-BASIC 2.0包装盒 |
GW-BASIC 3.23运行屏幕 |
80年代中后期开始接触个人电脑的人大多对上面这几个版本非常熟悉,而且他们中有很多人对APPLE II、LASER 310和所谓“中华学习机(其实是一种OEM的APPLE II)”中的BASIC印象深刻,估计也大都可以随意写几行代码来显示一个圆圈,或是几条曲线。 当时国内曾经举办过编程大赛,影响颇大。不才鄙人区区在下笔者我也是在这个BASIC的吸引下开始热爱编程直至今日的。 可惜我怎么也找不到当年这些BASIC的身影,如果您有,请不吝赐予。
Laser 310,我的启蒙计算机,香港制造,1984年开始生产,CPU: Zilog Z80 A,速度3.54 MHz,内存16-64KB,带电视和视频接口,操作系统MS BASIC,1985年价格为257美元。 |
Apple II,美国制造,1983年开始生产,CPU: MOS 65c02,速度1.02 MHz,内存64KB,操作系统DOS 3.3 or ProDOS,1298美元。 |
Basic 编译器:
Microsoft QuickBASIC 1.0:
Basic解释器的优点显而易见,缺点也是一目了然:速度慢,不易重复使用。MS Basic 编译器于1982年开始随 磁盘提供,一直发展到5.0版。这个编译器后来改名MS QuickBASIC 1.0(这可不是后来的QBASIC1.0)。它只是使用GW-BASIC类似语言的命令行版本,要求256K内存,DOS 2.0以上,需要双面磁盘驱动器。
下载 MS Basic Compiler 1.0 下载 MS Basic Compiler 2.0
Microsoft QuickBASIC 2.XX:
Microsoft QuickBASIC 3.0:
QuickBASIC 3.0 - 5.25"磁盘版发布于1987.04.13. 3.5"磁盘版发布于1987.4.13,使用两张720K软盘,说明书595页。 需要320K内存和DOS 2.0 以上操作系统,完全兼容BASICA/GW-BASIC。包括了QB.EXE和QB87.EXE,既有解释器又有编译器,QB87.EXE支持数学协处理器。编辑器比较2.XX有长足进步。加入SELECT CASE, DO LOOP, CONST等等。 |