GW-BASIC

✍ dations ◷ 2025-08-27 02:56:38 #GW-BASIC

GW-BASIC是高级程式设计语言BASIC的一个方言版本。这个版本的BASIC最早是微软为康柏开发的,时间应该是在1984年,这一年11月,微软首次为IBM之外的计算机厂商提供OEM版本的DOS,GW-BASIC是作为MS-DOS的一个组成部分问世的。

GW-BASIC在MS-DOS发行版本中,于1991年6月由微软的QBasic所取代。应社群要求公开GW-BASIC源代码,因此2020年5月22日微软开源1983年2月10日的8088组合语言版本(体验) (页面存档备份,存于互联网档案馆)。

关于GW的含义,目前有三种说法,一种认为是以微软早期程序员Greg Whitten的名字命名的,一种认为是用微软创始人的名字Gates,William命名的,还有一种说法是开发人员给它取的一个戏称gee-whiz(两个英语的象声词,类似于中文里吆喝牲口的声音)。

GW-BASIC和微软提供给IBM PC的BASICA完全相容,所不同的是,后者依赖于ROM中的BASIC直译器,而前者并不需要,所以,GW-BASIC能在众多IBM PC相容机器上运行,这就使它的使用范围随着PC相容机器的推广而扩大。第一个流传范围较广的GW-BASIC版本号为2.0,而最后推出的GW-BASIC版本号为3.23,时间大概是1988年。从那时起,如果没有特殊说明,我们一般所说的GW-BASIC就是指的这个版本。

GW-BASIC运行速度较慢,这在很大程度上是因为它是一种互动式的开发工具——这种开发模式是BASIC的诞生地Dartmouth大学最早提出的。和很多早期的BASIC方言一样,GW-BASIC缺乏很多进行结构化编程所需的语法成分,但是它足够灵活,此外还拥有很多绘图语句和一些简单的发声语句,这就足以使一个程序员用它开发一个简单的游戏软件、商用软件或者诸如此类的东西。它能够在绝大多数PC上运行,这就给那些想要成为程序员的人提供了一个学习如何程式设计的廉价的途径。

GW-BASIC拥有一个简单的集成开发环境(IDE),所有的程式码都必须有一个行号,没有行号的语句被认为是需要立即执行的命令。用户界面中,除萤幕底部的功能快捷键描述和顶部的版权声明外,其他部分都用来显示和编写语句。源文件标准的保存格式是GW-BASIC特有的二进制压缩格式,不过它也提供了一个选项,使得开发者可以用ASCII纯文字格式保存原始文件。GW-BASIC的IDE提供了如下常用命令:RUN(执行目前的程式),LOAD(从磁盘载入源代码),SAVE(把程式储存到磁盘),LIST(显示已打开的程式码内容),SYSTEM(回到操作系统)。它们都可以出现在程式码上,不过除SYSTEM外,上述用法还相当少见。

前面提到,GW-BASIC对结构化程序设计方法的支持非常差,所以对GW-BASIC程式设计者来讲,能够用它写出具备良好结构的程式有很高的难度。在GW-BASIC里,IF/THEN/ELSE条件语句必须在一行内写完,尽管WHILE/WEND已允许包含多行代码;自行定义的函数只能用类似于DEF FNf(x) = <关于x的数学函数> 这样形式的一行语句来编写(例如,DEF FNLOG(base,number)=LOG(number)/LOG(base));变数通常是通过变数名末端的一个表示类型的符号来确定其类型的:A$表示是一个字串,A%表示是一个整数,等等;通过使用DEFINT,DEFSTR等关键字,可以为一组使用相同字首的变数定义预设类型;其他变数其类型预设是单精度浮点数。

尽管GW-BASIC本身不支持结构化的编程,但编程者自己可以利用GOSUB和RETURN语句来实现相当于C语言中的函数调用,同时用DIM语句定义的数组和一个下标变量(可能需要定义更多,以应对INTEGER、STRING等多种不同数据类型)来表示函数参数栈,再用另一个数组和下标变量,用于在调用子函数前保存本函数的本地变量。通过这种方法,即可实现函数调用。

很多GW-BASIC程式设计者都是没有经过训练的,他们往往不明白编写结构简单的程式所能带来的好处,因此就导致滥用GOTO语句的现象,他们往往不愿意使用能完成同样功能的结构化的语句。参见面条式代码。

GW-BASIC支援摇杆和光笔输入设备(英语:Light pen),但不支持鼠标。它能够读写磁盘档案、LPT埠和COM埠,也能处理埠事件触发,不过不能处理磁带设备。它还能通过使用PLAY语句或SOUND语句来驱动IBM PC及其相容机器的标准内建喇叭发出声音。

相关

  • 肽聚糖肽聚糖,存在于真细菌中的革兰氏阳性菌和革兰氏阴性菌的细胞壁中。肽聚糖的骨架是由两种糖衍生物:N-乙酰葡糖胺(GlcNAc)和N-乙酰胞壁酸(MurNAc)交替相连而形成的多糖链,这些链相互交
  • 卷积云卷积云(Cc),拉丁文学名Cirrocumulus。似鳞片或球状细小云块组成的云层或云片,多成群、成行出现,排列规则。色白无暗影,有柔丝般光泽。卷积云只有一类云状。天空中辐射状的卷积云。
  • 亚丁斯克期亚丁斯克期(英语:Artinskian)是二叠纪的第三个时期,年代大约位于290.1–283.5百万年前。
  • 哈德森莱斯特·哈德森(英语:Lester Hudson,1984年8月7日-),美国篮球运动员,现效力于辽宁衡润飞豹篮球俱乐部,身高1.91米,体重86公斤,司职位置后卫。在2009年NBA选秀中第二轮第58顺位被波士顿
  • 冬瓜美女冬瓜美女,是台湾噶玛兰族传说中出生在冬瓜里的美丽女性,因为被村子中的其他男性纠缠着而被其父亲安置在家里,却也因此而死。有个农夫在去田里工作的时候捡到一颗冬瓜种子,将它种
  • 周祖衔周祖衔(?-1853年),字鹤侪,河南商城(现属安徽金寨县汤家汇镇)人,祖籍江西婺源,清朝官员。道光十八年(1838年)戊戌科进士。选翰林院庶吉士,散馆改知县。官至湖北武黄水利同知。咸丰二年十二
  • 鞍马天狗鞍马天狗(くらまてんぐ)是传说中住在鞍马山的奥之僧正谷的大天狗。别名鞍马山僧正坊。以传授牛若丸(源义经)剑术的传说广为人知。也和鬼一法眼被视为同一人。从天台宗独立的鞍马
  • 韩惪洙韩惪洙(朝鲜语:한덕수/韓惪洙 ,1949年6月18日-),韩国政治家,开放国民党成员。韩惪洙在全罗北道的全州出生,之后移居京畿道,并在京畿高等学校就读高中毕业。韩惪洙毕业于韩国汉城国立
  • 戈特洛布·贝格尔戈特洛布·克里斯蒂安·贝格尔(德语:Gottlob Christian Berger,1896年7月16日-1975年1月5日),德国纳粹党高级官员,党卫队上级集团领袖及武装党卫队上将(相当于陆军上将),二战期间担任党卫队行政部部长,负责为党卫队招募新兵。战后被判为战犯,在监狱里服刑六年半。贝格尔于一战期间在德意志帝国陆军中服役,因四次受伤获一级铁十字勋章。一战后,贝格尔成为老家北符腾堡民兵组织“居民卫队”(德语:Einwohnerwehr)领袖。1922年,加入了纳粹党,但不久对右翼政治失去兴趣后,退出
  • 本头妈庙本头妈庙,俗称“谷鸡妈”,它位于泰国的首都曼谷之挽叻县的石龙军路1614/1号,邻近郑皇桥。此处亦为挽叻本头公妈慈善会。