BASIC大旗不倒 谭浩强 1996-08-16 选择何种语言要具体分析 选用什么高级语言,本来不是一个大的原则问题。因为语言只是一种编程工具,只要能解决问题,对培养学生有利即可。切忌版面性和“一阵风”。例如有人一听BASIC就认为“低级”,一听C就认为“高级”。不问什么专业、不管学生基础,一律要求学生学C甚至C++。我认为这种做法缺乏具体分析。高级语言的选择,应取决于语言的功能、专业的性质、将来工作岗位的需要、学生的基础以及设备条件等。不能简单地说哪一种语言“高级”,哪一种语言“低级”,只能说哪一种语言适合于哪个领域和哪类对象。正如马路上有小汽车、大卡车、公共汽车、摩托车、自行车、三轮车等,各有各的用途,决不能由于有了小汽车就取缔其它车辆。 我先后研究过多种计算机高级语言,也曾编著过BASIC、FORTRAN、COBOL、PASCAL、C等教材,并在中央电视台先后讲授过以上各种语言。常有人问,“你认为哪一种语言最好?”,或“你为什么介绍这么多种语言?介绍一种不就可以了吗?”,我的回答是:“谁也代替不了谁?各取所需。” 本文着重讨论BASIC语言问题。多年来,无论在国内和国外,BASIC语言一方面得到广泛的应用,又同时进行着激烈的争论。谁也不能否认,BASIC语言在我国计算机教育和普及中起了重要的作用,成千上万人从学习BASIC入手,迈进了计算机应用的大门。对于广大初学者来说,他们对BASIC语言的“易学易用”的优点感触至深。 许多人对BASIC语言的了解和指责仍然停留在早期的BASIC上,例如“功能差,只有17个语句”、“非结构化,养成不良好的编程习惯”等等。其实,从1964年BASIC语言诞生以来,BASIC已经历了四个发展阶段(或称之为BASIC的四代)。第一代BASIC指最早期(1964-70年代中)的、只有十几个语句的BASIC,常称为基本BASIC。第二代BASIC是指微机出现初期的BASIC(70年代中到80年代),其代表为GW-BASIC和Microsoft的BASIC。第三代BASIC是在八十年代中出现的结构化的BASIC语言,其代表为Ture BASIC、Quick BASIC、Turbo BASIC。第四代BASIC是在Windows环境下编程使用的BASIC(90年代),其代表为Visual BASIC、GFA-BASIC、CA-REALIZER等。第四代BASIC的特点是以图形界面取代过去的字符界面。 BASIC语言在发展过程中,在实现其先进性的同时,始终保持易学易用的特点。因而BASIC语言始终拥有最广泛的用户,这决不是偶然的。我建议那些动辄指责BASIC语言“低级”的同志,首先了解一下BASIC语言的发展状况,深入剖析每一代BASIC语言的特点与功能,把它与其它语言作全面的比较,然后作出符合实际的结论,切忌以偏概全。在学术问题上应采取“百花齐放,百家争鸣”方针,允许多种思路、多种风格并存,在实践中不断总结经验,实现推陈出新,切忌用简单的行政手段来处理有争论的学术问题。 有的地区宣布以后等级考试不考BASIC语言;有些学校道听途说“BASIC过时了”,未征求第一线教师的意见,就决定取消BASIC课程,改学BASIC语言(或其它语言),这在部门教师中引起波澜。许多学校(尤其是文科院校和部分非重点大学)的老师打电话给我,说“学生学BASIC,容易接受。现在不让学BASIC,学什么好?学生都学C语言,学起来有困难。”我曾接触一位重点大学的文科学生,学C语言学得稀里糊涂。看来不分对象普遍学习C语言,事与愿违。 我去年去北美访问,了解到:美国全国性的证书资格考试ICCP(Institute for Certification of Computing Professionals),把BASIC和FORTRAN、COBOL、PASCAL、C、ADA等并列作为开考的程序设计语言,应试者可以任选其中之一应试。我国国家教委组织的全国计算机等级考试的二级大纲中,仍然规定BASIC为可选语言之一。全国计算机软件人员水平考试初级程序员级,也包括考QBASIC。 有些同志对一些开BASIC的学校说:“怎么你们还在学BASIC?”言下之意是“太低级了”。但愿这样的误导不再出现。应该允许不同学校、不同专业根据情况自由选择。从培养沉重程序设计知识和基本应用能力的要求来看,学好第三代BASIC所取得的效果,并不亚于学习FORTRAN。 BASIC后继有人,BASIC大旗不倒。 BASIC语言仍然是“大众语言” 在过去九十年,BASIC语言在普及计算机知识和应用中起过重要的作用,这是任何人所不能否认的客观事实。现在已有了许多功能很强的计算机语言(例如有各种版本的PASCAL语言可供教学使用,有各种界面友好的C语言可供开发人员使用),历史悠久、曾风靡一时的BASIC语言还有它的优势和市场吗?如果认真地对各种语言的特点、发展历史以及其使用作深入的、实事求是的分析,答案应当是肯定的。 现在的BASIC语言已远非30年前的BASIC初期版本可比拟。它的主要功能与其它优秀的语言相比毫不逊色。而且BASIC语言无论如何发展,始终属守BASIC创始者的宗旨__为群众着想,因而,BASIC决不会“寿终正寝”,而是和其它现代语言一起迎接新的时代。 据了解,Microsoft公司仍然把BASIC语言作为其向用户推荐的软件。他们宣称:在不久的将来,微软公司将利用BASIC完成大部分应用程序的可视程序设计,同时要将BASIC语言作为一种中央控制语言使用,使用BASIC程序调用多种应用程序的数据与功能。此外,BASIC语言也将作为其它软件中的内嵌语言使用。他们认为“BASIC语言由于具有最高的知名度,将仍然是熟适经的专业程序设计人员和实力用户的首选语言”。当然,它指的是第三代和第四代的BASIC。 由于各种高级语言有许多共同的特点,因而无论学习哪一种语言都很容易举一反三地学习和掌握其它语言。由于BASIC语言既容易学习,又有广泛的应用价值,因而在21世纪,它仍然是“大众语言”。 QBASIC是当前普及BASIC的较佳版本 目前在我国,第二、三、四代BASIC都在流行,都有众多的用户。第一代简单的BASIC早已淘汰了,许多使用第二代BASIC的人逐渐转向第三代BASIC。由于条件限制,目前使用第四代BASIC的人还不多。 QBASIC是Microsoft公司开发的、作为MS_DOS 5.0版的一个组成部分免费提供给用户的,因此不存在版本问题,也不需要去购买软件。 QBASIC是BASIC语言不断发展的产物。它是第二代BASIC(如BASICA和GW_BASIC)的现代化超集。它与第二代BASIC语言兼容(用BASIC或GW_BASIC语言写的源程序可不加修改或只作少量修改就可在QBASIC环境下运行)。QBASIC是QuickBASIC的子集,但包含了QucikBASIC的主要功能。它采取解释执行方式。 QBASIC是一种现代化语言,是完全结构化和模块化的语言。与第二代BASIC相比,主要扩充了以下一些功能: 1.扩充了数据类型(除整型、实型、双精度型、字符型外,增加了长整型、定长字符串型变量)。 2.提供了新的选择结构IF-ELSE-END IF和多分支选择SELECT CASE结构。 3.进了循环结构,除了FOR-NEXT循环外,还增加了WHILE循环(WHILE-WEND结构)和DO循环(DO WHILE-LOOP,DO UNTIL-LOOP结构)。 4.子程序和函数作为单独的模块。区分全局变量和局部变量。 5.可以不设行号,也可以使用行号(为与第二代BASIC兼容),但行号与执行顺序无关。 6.可以实现递归。 7.具有良好的编辑环境,界面友好,可以使用键盘和鼠标。 8.提供“联机帮助”,经编辑过程中可以随时查询“帮助信息”。 9.提供了“分步执行”和“跟踪”等调试工具。 10.采用先进的解释程序,使程序运行比一般BASIC快许多。 除了没有指针外,其功能与PASCAL相仿,但学起来却容易得多。 学习使用QBASIC后,如果想开发应用程序,可以学习使用Quick BASIC。Quick BASIC采取编译方式,因而有更高的效率,能生成可执行文件和建立常用的过程库,提供更哟的调试工具,使用户对程序设计环境有更强的控制能力,增加一些新的菜单选项等。而这引起功能对大部分初学者来说,可能是暂时用不到的。因此,对广大初学者和学生来说,选学QBASIC是适宜的。许多学校用QBASIC进行教学都取得较好效果。学会了QBASIC,是很容易掌握Quick BASIC的(二者的内容和语法规则基本一样)。 再进一步说,在Windows环境下运行的Visual BASIC与Quick BASIC完全兼容,也就是说,用QBASIC、Qucik BASIC所写的程序可以在Visual BASIC环境下执行。 QBASIC不仅是供初学者训练用的,而且有很强的实用价值。投入学习的QBASIC的时间和精力不会白费。除了可以向Quick BASIC和Visual BASIC过渡以外,Microsoft的字处理应用程序Word for Windows以及Word for OS/2都附加了和QBASIC很相像的宏语言,称为Word BASIC。Microsoft还计划在它的一个或多个操作环境中将QBASIC的子集作为统一的语言。也就是说,用户将能用QBASIC控制计算机总体运作,用QBASIC编写的应用程序在新的环境下仍能工作。因此,学习QBASIC将使广大初学者迈入程序设计的大门,并为以后的计算机开发作好准备。 因此,我以为,BASIC,以QBASIC作为GW-BASIC和BASIC的更新版本,向广大计算机爱好者推荐是合适的。目前目的地来,QBASIC是没有程序设计经验的人学习程序设计的较佳起点。 当然,我并不认为所有人都应当学习QBASIC。近年来,学习计算机的入门方式呈现出多样化的趋势,不同的人可以从不同的入口迈入计算机大门。对于想学程序设计而又感到直接掌握PASCAL和C语言有些困难的许多初学者来说,学习QBASIC确实是较好的选择。推广QBASIC,对提高BASIC课程的教学质量将会起到积极的作用。 QBASIC是BASIC的天然传人,BASIC的大旗将永远飘扬。(完)