GW-BASIC

✍ dations ◷ 2025-11-14 00:49:53 #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及其相容机器的标准内建喇叭发出声音。

相关

  • 墨西哥墨西哥合众国(西班牙语:Estados Unidos Mexicanos,  聆听 帮助·信息)(英文:United States of Mexico ),通称墨西哥(西班牙语:México .mw-parser-output .IPA{font-family:"Charis
  • 阿巴斯·奇亚罗斯塔米阿巴斯·基亚罗斯塔米(波斯语:عباس کیارستمی‎ ,英语:Abbas Kiarostami,1940年6月22日-2016年7月4日),生于德黑兰,是伊朗革命后最有影响力和最引起争论的电影导演、编剧
  • 安塔瑞斯火箭安塔瑞斯运载火箭(英语:Antares)在早期发展阶段则又被称为金牛座Ⅱ号运载火箭(Taurus II),是由美国轨道科学公司所研发的一种一次性使用运载系统。其设计可以使到火箭发射质量5,00
  • 金妮·韦斯莱金妮·韦斯莱(英语:Ginevra "Ginny" Molly Weasley),台湾译名为金妮·衛斯理,生于1981年8月11日,婚后改夫姓为金妮·波特,是《哈利·波特》小说系列内的一个角色,罗恩·韦斯莱的妹
  • 陈佐东陈佐东(1965年4月-),吉林农安人,汉族,中国国民党革命委员会成员。中华人民共和国政治人物、第十三届全国人民代表大会黑龙江地区代表。2018年,被选为全国人大代表。
  • 阳光少女《阳光少女》新装版第一册封面《阳光少女》(日语:こもれ陽の下で…)是由日本漫画家北条司所创作的一部日本漫画作品。单行本全3卷。
  • 纽伦堡审判死刑执行纽伦堡审判死刑执行特指1946年10月16日对纽伦堡审判中判处死刑的10名纳粹德国首要战犯的行刑。1945年第二次世界大战结束后,同盟国设立国际军事法庭,对纳粹德国及纳粹党高级领导人的战争罪行进行审判。1946年10月1日法庭宣读判决刑罚,前纳粹德国空军总司令赫尔曼·戈林、纳粹党党务部部长(德语:Stab des Stellvertreters des Führers)马丁·鲍曼、纳粹德国外交部部长(英语:Minister for Foreign Affairs (Germany))约阿希姆·冯·里宾特洛
  • 天主教伊帕梅里教区天主教伊帕梅里教区(拉丁语:Dioecesis Ipameriensis;葡萄牙语:Diocese de Ipameri)是巴西一个天主教教区,位于戈亚斯州东南部,属戈亚尼亚总教区。教区成立于1966年10月11日。2006年有教友214,000人,占总人口75.1%。有十五个堂区、司铎十七人。现任教区主教为若瑟·方济各·罗德里格斯-多-雷戈(葡萄牙语:José Francisco Rodrigues do Rêgo)。
  • 安德森 (印地安纳州)安德森(英语:Anderson)是一个位于美国印地安纳州麦迪逊县的城市。根据2010年美国人口普查,该地人口为56,129人,而该地的面积约为110.77平方千米。同时该地也是麦迪逊县的县治。安德森的座标为40°06′00″N 85°40′53″W / 40.10000°N 85.68139°W / 40.10000; -85.68139,而该地的平均海拔高度为268米(即879英尺)。粗体字为超过10万人的县城‡该聚居地有部分隶属其他县份
  • 亚洲通吃《亚洲通吃》(英语:"All Eat Asia")是马来西亚歌手黄明志的第五张录音室专辑,由爱贝克思于2017年12月30日发行。本张专辑延续以往专辑中的多元亚洲风情,并邀请了来自马来西亚、新加坡、日本、泰国、越南等地的七组歌手进行合唱,呈现多元的音乐面貌。而此张专辑也是他开启《4896世界巡回演唱会》第一站后的首个音乐作品。发行专辑后,随即释出了主打歌《一起飙高音》MV,为2014年单曲《飙高音》的续作,并邀请了马来西亚歌手李佳薇合唱,再次以戏谑的口吻来诠释选秀节目的现象。注释