歷史地位
Basic的發展經歷了三個階段:
非結構化Basic語言,如:gw-Basic、MS Basic
結構化Basic語言,如:True Basic、Turbo Basic、Quick Basic
gw-basic屬於非結構化basic,也就是最早期的basic語言,沒有loop和while
循環語句,局限性很大。
特性
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程式設計師都是沒有經過訓練的,他們往往看不到編寫結構簡單的程式所能帶來的好處,因此就導致濫用GOTO語句的現象,他們往往不願意使用能完成同樣功能的結構化的語句。參見
麵條式代碼。
GW-BASIC支持遊戲操縱桿和
光筆輸入設備,但不支持滑鼠。它能夠讀寫磁碟檔案、LPT連線埠和COM連線埠,也能處理連線埠事件陷阱,不過不能處理磁帶設備。它還能通過使用PLAY語句或SOUND語句來驅動IBM PC及其
兼容機的標準內置揚聲器發出聲音。