找回密碼
 註冊
查看: 2779|回覆: 59

當年今日: GW-BASIC

[複製鏈接]
發表於 2013-5-21 02:05:42 | 顯示全部樓層 |閱讀模式

登入後,內容更豐富

您需要 登錄 才可以下載或查看,沒有賬號?註冊

×

                               
登錄/註冊後可看大圖


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

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及其相容機器的標準內置揚聲器發出聲音。

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


http://zh.wikipedia.org/wiki/GW-BASIC


發表於 2013-5-21 08:30:37 | 顯示全部樓層
回應 littlepants9394 #1 的帖子

香江既同業/同學,
當年都喜歡稱呼佢做:
豬兜Basic.

你話若然有麥兜做代言人...
可能今天都仲流行都話唔埋!
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-21 12:13:54 | 顯示全部樓層
回應 jayzhou_2046 #2 的帖子

豬兜Basic ,好似有D印象
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-21 13:40:44 | 顯示全部樓層
littlepants9394 發表於 2013-5-21 02:05
GW-BASIC是高級程式設計語言BASIC的一個方言版本。關於GW的含義,目前有三種說法,一種認為是以微軟早期 ...

IF/THEN/ELSE 配合 GOTO , 都可以成為多行式, 亦使 DEBUG更容易.
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-21 13:45:07 | 顯示全部樓層
濫用GOTO語句的現象.....  我好贊同,
有似的人用ASSEMBLY 亂JUMP一樣.
執手尾要DEBUG真系好PK !  
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-21 19:09:12 | 顯示全部樓層
This was one of the earliest computer languages I taught decades ago!
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-21 21:14:51 | 顯示全部樓層
馬後砲 發表於 2013-5-21 13:45
濫用GOTO語句的現象.....  我好贊同,
有似的人用ASSEMBLY 亂JUMP一樣.
執手尾要DEBUG真系好PK !   ...

濫用到變左特色.....
你無GOTO,你會比人話唔識寫
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-22 00:17:39 | 顯示全部樓層
hshk 發表於 2013-5-21 21:14
濫用到變左特色.....
你無GOTO,你會比人話唔識寫

咁又唔怪得人既.
嗰陣真系有TEXT BOOK 教用 GOTO 來 SET INFINITE LOOP.

例如寫一個input menu,
中間加個 if xx=xxx then end
去到尾行加個 goto 0001

回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-22 00:33:04 | 顯示全部樓層
馬後砲 發表於 2013-5-22 00:17
咁又唔怪得人既.
嗰陣真系有TEXT BOOK 教用 GOTO 來 SET INFINITE LOOP.

好鬼在當年我無睇TEXT BOOK ,只係睇我位恩師比我的手寫notes
回覆 讚好 不讚 使用道具

舉報

 樓主| 發表於 2013-5-22 00:46:14 | 顯示全部樓層
回應 jayzhou_2046 #2 的帖子

豬兜Basic. 呢個簡直係我地嘅集體回憶!
回覆 讚好 不讚 使用道具

舉報

 樓主| 發表於 2013-5-22 00:48:36 | 顯示全部樓層
回應 馬後砲 #5 的帖子

Totally agree. 啲Goto jump到自己唔知去咗邊到
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-22 07:31:40 | 顯示全部樓層
hshk 發表於 2013-5-22 00:33
好鬼在當年我無睇TEXT BOOK ,只係睇我位恩師比我的手寫notes

你好彩冇學壞師

不過諗番嗰陣, text book 亦教寫左flow chart 先好寫program
如果有flowchart, goto 或 jump 都唔會死人。

不過10個著左9個我識既都唔會劃flowchart
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-22 07:37:25 | 顯示全部樓層
littlepants9394 發表於 2013-5-22 00:48
回應 馬後砲 #5 的帖子

Totally agree. 啲Goto jump到自己唔知去咗邊到

如果全部下向jump, 多數唔會死人, 最多行漏一段code
但偶然整個jump番上去,就好易set 左個 infinite loop,
hang 機 !   
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-22 10:28:53 | 顯示全部樓層
所以適當咁用Gosub,
真係幫到手架!
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-22 19:22:35 | 顯示全部樓層
馬後砲 發表於 2013-5-22 07:31
你好彩冇學壞師

不過諗番嗰陣, text book 亦教寫左flow chart 先好寫program

flowchart,咁高深野,唔好講啦

試過叫人整好個flowchart,想清楚先去寫,結果個幾條友講左同一句野,整好個flowchart,我已經寫好啦...........
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-22 23:42:28 | 顯示全部樓層
hshk 發表於 2013-5-22 19:22
flowchart,咁高深野,唔好講啦

試過叫人整好個flowchart,想清楚先去寫,結果個幾條友講左同一 ...

所以咪而家流行 structured programming 囉 !
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-23 08:24:47 | 顯示全部樓層
Structural programming也好,
Procedural programming也好,
做到就最好!  
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-23 11:41:56 | 顯示全部樓層
jayzhou_2046 發表於 2013-5-23 08:24
Structural programming也好,
Procedural programming也好,
做到就最好!

sp有佢優點,但有的挷手挷脚感,
而且exception handling 亦使 到 唔系 1 in 1 out
pp方便寫,而且efficient過sp , 不過高手冇問題,低手可以搞到好pk
回覆 讚好 不讚 使用道具

舉報

發表於 2013-5-23 20:58:55 | 顯示全部樓層
馬後砲 發表於 2013-5-23 11:41
sp有佢優點,但有的挷手挷脚感,
而且exception handling 亦使 到 唔系 1 in 1 out
pp方便寫,而且effici ...

SP定PP都好啦,個重點係比他人睇,一睇就知你寫D咩,唔洗估估下
回覆 讚好 不讚 使用道具

舉報

 樓主| 發表於 2013-5-23 23:49:16 | 顯示全部樓層
GW basic 之後嘅 trend 就係 Object Oriented programming such as C++ and Java.
回覆 讚好 不讚 使用道具

舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|聯絡我們|141華人社區

GMT+8, 2024-5-20 22:06

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回覆 返回頂部 返回列表