GW-BASIC

维基百科,自由的百科全书
跳转至: 导航搜索
GW-BASIC
发行时间 1983
實作者 Microsoft (for Compaq)
最新发行时间 3.23 / 1988
啟發語言 IBM Cassette BASIC, IBM Disk BASIC, IBM BASICA
影響語言 QBasic, QuickBasic
作業系統 DOS

GW-BASIC是高級程式設計語言BASIC的一個方言版本。關於GW的含義,目前有三種說法,一種認為是以微軟早期程式設計師Greg Whitten的名字命名的,一種認為是用微軟創始人的名字Gates,William命名的,還有一種說法是開發人員給它取的一個戲稱gee-whiz(兩個英語的象聲詞,類似於中文裏吆喝牲口的聲音)。有一點是肯定的,這個版本的BASIC最早是微軟為康柏開發的,時間應該是在1984年,這一年11月,微軟首次為IBM之外的計算機廠商提供OEM版本的DOS,GW-BASIC是作為MS-DOS的一個組成部分問世的。

GW-BASIC和微軟提供給IBM PCBASICA完全相容,所不同的是,後者依賴於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程式設計者都是沒有經過訓練的,他們往往看不到編寫結構簡單的程式所能帶來的好處,因此就導致濫用GOTO語句的現象,他們往往不願意使用能完成同樣功能的結構化的語句。參見面條式代碼

GW-BASIC支援控制桿光筆輸入設備,但不支持鼠標。它能夠讀寫磁碟文件、LPT端口和COM端口,也能處理端口事件陷阱,不過不能處理磁帶設備。它還能通過使用PLAY語句或SOUND語句來驅動IBM PC及其相容機器的標準內置揚聲器發出聲音。

GW-BASIC在MS-DOS發佈版中的地位最終於1991年6月由微軟的QBASIC所取代。