BASIC 語言大家族 38類Basic語言,你沒見過這么多的吧?包括出名的 QBasic,O'Basic,FreeBasic,JavaBasic,RealBasic等,絕對全,值得一看●BASIC語言大家族 BASIC語言是我最初接觸的計(jì)算機(jī)語言,QuickBasic是我覺得最精致的語言開發(fā)環(huán)境(小巧,集編輯器、解釋器、調(diào)試器于一身)。QuickBasic(或者DOS 6.22的QBASIC)語法有些獨(dú)特的地方,對初學(xué)者或許不是很友好,但是使程序顯得非常簡潔,一旦熟悉之后可以提高程序編寫效率: - 調(diào)用sub或者function(以下統(tǒng)稱函數(shù)),既可以用aFunction(par1, par2),也可以用aFunction par1, par2。我只見過matlab中有這樣的用法。
- 內(nèi)建函數(shù)、語句支持缺省參數(shù),中間的缺省參數(shù)用","跳過,末尾的缺省參數(shù)當(dāng)然是不用寫出來。還沒有見過其它語言可以這樣處理函數(shù)的參數(shù),更不用提可以自己定義這樣的函數(shù)了。
- 自定義數(shù)組起始下標(biāo)。
除了由QuickBasic直接發(fā)展而來的VB、VBA、VB Script系列,BASIC語言的愛好者們開發(fā)了各種BASIC/類BASIC的語言和解釋/編譯器,這里列出一些free的: - FreeBASIC(簡稱fbc) 試圖在開源社區(qū)開發(fā)兼容QuickBasic語法的BASIC程序編譯器,添加了新內(nèi)容,但是對語法和語義都做了一些修改,開發(fā)過程中逐漸背離了最初的原則。fbc可以自己編譯自己的源程序,運(yùn)行在Windows、DOS和Linux平臺上。
- Cheesecake BASIC 一個(gè)可以解釋自己源程序的BASIC語言解釋器。語法與QB基本兼容。實(shí)際上,它自身的源程序混合了大量類似C語言的預(yù)處理,通過網(wǎng)站上的了一個(gè)程序,把這個(gè)源程序轉(zhuǎn)換成Qb45、Cheesecake BASIC或者PureBasic程序。可以把源程序包裹成exe文件,正在用C語言開發(fā)虛擬機(jī),將使Cheesecake BASIC程序能夠運(yùn)行在其他OS上。2007年1月編輯:可以從這個(gè)網(wǎng)站下載,但是看上去網(wǎng)站從2005年到現(xiàn)在都沒有更新過,C語言的虛擬機(jī)成為空話了。
- wxBasic 支持wxWidgets的解釋型BASIC語言,Linux、Windows雙平臺,可以發(fā)布包裹好的可執(zhí)行文件。Ducke的wxEditor是由wxBasic寫成的IDE,且?guī)Ш唵蔚膄orm editor。
- sdlBasic 基于wxBasic代碼,支持SDL的解釋型BASIC語言。已有程序可以把sdlBasic源代碼轉(zhuǎn)換成C代碼,這樣就可以發(fā)布可執(zhí)行文件了。比較討厭的是,sdlBasic的程序總是附帶2個(gè)字庫。
- Basic4GL 支持OpenGL的BASIC語言,解釋執(zhí)行,只支持win98及更高版本W(wǎng)indows??梢园言闯绦虬蒭xe文件發(fā)布。2006年8月20號的2.4.3版本,支持調(diào)用C++編寫的dll。難道它想做成通用的BASIC開發(fā)語言?
- SmallBASIC 解釋型BASIC語言,數(shù)學(xué)運(yùn)算和圖形功能比較強(qiáng),除了PC之外,PalmOS上也有移植。為了程序編寫方便等等原因,作者改動(dòng)了不少BASIC語言的關(guān)鍵詞,所以用SmallBASIC書寫的程序看上去怪怪的。
- Yabasic PC、PS2平臺都有出現(xiàn)。Windows、Linux下一樣可以發(fā)布可執(zhí)行文件。文檔中提到用于隱藏運(yùn)行腳本時(shí)出現(xiàn)的DOS窗口的RUN,可以用來發(fā)布所有的解釋執(zhí)行的腳本程序——我認(rèn)為用批處理的方式發(fā)布自己的程序看上去比較傻。
- Gambas 只支持Linux的解釋型BASIC,號稱Linux下的VB。從IDE到界面設(shè)計(jì),都是全的。
- KBasic 這個(gè)猛,支持Windows/Linux,據(jù)說是100%支持QB、VB的語法。從IDE到界面設(shè)計(jì),都是全的。不是開源的,個(gè)人版免費(fèi),專業(yè)版收費(fèi)。不支持win98,所以沒有試驗(yàn)。
- XBasic 支持Windows/Linux,帶IDE,可以編譯成可執(zhí)行文件。不過太久沒有開發(fā)了,語法與BASIC差距較大,而且IDE自身、編譯生成程序的界面古怪,不是Windows標(biāo)準(zhǔn)GUI的樣子。
- xblite 基于XBasic代碼開發(fā),只支持Windows平臺,并為開發(fā)Windows平臺應(yīng)用程序做了改進(jìn)。
有哥們?yōu)槠溟_發(fā)了界面設(shè)計(jì)工具。 - SheerPower 4GL 又一個(gè)自稱第四代語言的家伙(另一個(gè)是forth語言,結(jié)果現(xiàn)在就只有在嵌入系統(tǒng)中用的比較廣)。除了它的"精確的數(shù)字計(jì)算"之外,沒發(fā)現(xiàn)有什么優(yōu)于別的BASIC的地方。非商業(yè)運(yùn)用是免費(fèi)的,否則需要支付高的驚人的費(fèi)用購買使用權(quán)。只支持Windows,解釋執(zhí)行,可以編譯成偽代碼隨虛擬機(jī)一起發(fā)布。
- RapidQ 比Gambas還早的仿VB的BASIC開發(fā)環(huán)境,免費(fèi)軟件。多平臺,編譯成字節(jié)碼運(yùn)行,發(fā)布的程序只有單個(gè)的可執(zhí)行文件和一些數(shù)據(jù)文件,而不需要額外的動(dòng)態(tài)連接庫。軟件不錯(cuò),于是作者被挖,開發(fā)RealBASIC這個(gè)商品BASIC語言的IDE、跨平臺插件,RapidQ停止更新。很可惜RapidQ不是開源的 :(
這里是國人的一個(gè)RapidQ站點(diǎn),資料總在更新。 - Decimal BASIC 完全遵循ANSI標(biāo)準(zhǔn),運(yùn)行在windows上的BASIC解釋程序。比標(biāo)準(zhǔn)多提供了圖形函數(shù)、矩陣支持、復(fù)數(shù)支持。可以在一般的數(shù)字和有理數(shù)之間切換,這樣可以得到數(shù)學(xué)上的精確結(jié)果(比如1/3就是1/3,而不是0.33333)。好像可以扔掉SheerPower 4GL了,hiahia,第四代語言,笑死了。
- 99BASIC 日語自由軟件。老式的BASIC開發(fā)環(huán)境:F1是list,F(xiàn)5是run......。運(yùn)行在windows上,提供了一些圖片、文字、wav/mid媒體文件的支持,看上去很不錯(cuò)——至少在軟件發(fā)布的2002年。
- ActiveBasic windows上的日語軟件。特點(diǎn)?類似一整套VB??梢跃幾g成exe(但是我沒有實(shí)驗(yàn)成功,每次編譯,一個(gè)窗口一閃而過,看不清上面寫了什么,沒有exe輸出)。作者肯定是在里面添加了限制使用windows版本的代碼,他承諾的英文版也遲遲不見動(dòng)靜。
- O'Basic Windows上的BASIC,與標(biāo)準(zhǔn)BASIC不同,支持剪貼板、OLE......(感謝FatCatHu提醒)。
- JustBasic 商業(yè)軟件Liberty BASIC的 簡化版,運(yùn)行在windows系統(tǒng)上,可以產(chǎn)生、而不是編譯成可執(zhí)行文件(感謝FatCatHu提醒)。注意:在中文windows上,1.01版本的源程序只能IDE中解釋執(zhí)行,產(chǎn)生的TKN文件運(yùn)行報(bào)錯(cuò),開發(fā)者承諾1.02版改正這個(gè)bug。自帶了Form designer的源代碼,是學(xué)習(xí)這個(gè)語言的好參考文件。2006年過了大半了,還沒看到1.02。主頁上也把論壇連接放到了隱蔽的地方,我猜測Liberty BASIC的銷售不好了。
- LGP Light Game Programming,使用DirectX開發(fā)windows游戲,只有日語文檔。函數(shù)名中總是有@符號(比如G@SETUP,F(xiàn)@OPEN……),看上去好不習(xí)慣。自稱是編譯型的BASIC語言,不大可能!
- MoonRock 先把源程序翻譯成asm語言,然后通過匯編程序產(chǎn)生DOS下的可執(zhí)行文件,可執(zhí)行文件因此個(gè)頭很小。個(gè)人可以free使用源代碼。
- MediaBASIC 一個(gè)新的windows下的BASIC語言,用Delphi編寫,寫信給作者的話可以獲得源代碼。
- envelop 也是一個(gè)具有一定規(guī)模、可用的BASIC語言,IDE、layout俱全,可惜不開發(fā)了。官方在準(zhǔn)備專職其他方面的工作之后,打算轉(zhuǎn)讓envelop的版權(quán),但是只在軟件中留了電話信息。之后,版權(quán)被Janus Software獲得,但是他們也只是在很多年以前出了一個(gè)linux版,把軟件名字改成Phoenix Object Basic,就再沒有動(dòng)靜了,給他們寫信問詢,沒有消息,又一個(gè)軟件死亡了。
envelop,不會用,看不懂文檔、學(xué)不會,哈。 - SpeedBASIC 運(yùn)行于windows平臺,IDE(代碼折疊、高亮、提示、自動(dòng)完成)、form designer俱全。把BASIC代碼翻譯成C++代碼,因此需要一個(gè)C++編譯器。語言自身還有待完善。如果域名解析錯(cuò)誤,請?jiān)L問這里
- JavaScript BASIC Interpreter 網(wǎng)頁上的BASIC解釋程序。
- JavaBASIC 把類BASIC語言編譯到JAVA的class文件(這樣可以開發(fā)手機(jī)軟件),提供了游戲接口
 - RealBASIC 其實(shí)standard版本對Linux用戶免費(fèi),因?yàn)楣究吹搅薼inux下存在很好的類似VB開發(fā)工具(不知是不是指Gambas,難道還有其他我不知道的?),所以作出了明智的決定。優(yōu)點(diǎn)是一個(gè)源程序可以在Windows、Mac、Linux上通吃(標(biāo)準(zhǔn)版和專業(yè)版),而且在這3個(gè)平臺上其實(shí)也可以編譯到任何一個(gè)平臺上的可執(zhí)行文件(僅限專業(yè)版);相比VB,RealBASIC的開發(fā)工具是綠色的,編譯出來的可執(zhí)行文件也是綠色的;售價(jià)便宜。缺點(diǎn)是,編譯出來的可執(zhí)行文件的個(gè)頭比較大,都是2M以上的(因此我懷疑,它并不是如宣傳中所說的編譯到native code,而仍然只是對某種字節(jié)碼的打包),但是比使用.NET的怪獸小多了;調(diào)試不方便;編譯速度慢。
公司很會做市場,在微軟準(zhǔn)備停止支持VB6以便讓新語言VB.NET殺死老VB、Borland將出售旗下IDE業(yè)務(wù)消息出來以后,馬上在網(wǎng)站上為VB6和Delphi用戶推出免費(fèi)獲得標(biāo)準(zhǔn)版RealBASIC的活動(dòng),而實(shí)際上活動(dòng)期間任何人都可以同樣地獲得該產(chǎn)品。然而,我認(rèn)為RealBASIC要想真正達(dá)到VB或者Delphi的程度,還有很長的路要走(比如在2006年才支持了UDT)。 順便一提,我無意間找到了RealBASIC中國代理公司頭頭的blog。在國內(nèi)一年銷售¥20萬還是有點(diǎn)困難的,祝他好運(yùn)吧 :) 還得說一下,MSN等等地方的blog空間都需要注冊用戶才可以回復(fù),真是垃圾。 - BCET Basic Compile to Expression Tree,把BASIC源代碼編譯到匯編語言,然后用MASM編譯成可執(zhí)行文件,可以寫gui程序。作者打算兼容QuickBASIC/QBasic/PDS/VBDOS的源程序,不過有段時(shí)間沒有更新了。
- BCX 將BASIC源代碼編譯到C代碼,這樣就可以用C編譯器(比如LCC、Pelles C,而不是在TC世界考古)編譯了。
- ExtremeBasic 作者Andrew Barry不滿意現(xiàn)在的BASIC越來越強(qiáng)大的時(shí)候,丟棄了易用性,于是寫了這個(gè)軟件,試圖在IDE中解決所有的問題(換句話說,還是再造一個(gè)VB)。目前還是很初級,而且ExtremeBasic使用的是自己定義的一種BASIC方言,所以看上去有些奇怪。提供的例子中,編譯IDE的時(shí)候ExtremeBasic crash了。
IDE本身使用了QT庫,所以是跨平臺的(Windows/Linux/Mac os);可以說它定義的BASIC語言也是跨平臺的,因?yàn)樗袯ASIC翻譯為C/C++,然后借助MingW(ExtremeBasic自帶)編譯成可執(zhí)行文件,編譯好的可執(zhí)行文件不依賴于QT。只需要把MingW目錄整個(gè)放到IDE可執(zhí)行文件相同的目錄(因?yàn)檐浖腷ug,不能是中文目錄、長文件名目錄中)中,就會自動(dòng)尋找編譯器,而不需要設(shè)置環(huán)境變量。 八卦一下,是Andrew Barry編寫了上面提到的RealBASIC,但是不曉得他為什么離開這個(gè)公司、然后新開發(fā)免費(fèi)的ExtremeBasic。 順帶說一下,受ExtremeBasic等等軟件的影響,有人在開發(fā)banteng - Cross Platform Visual Javascript??凑f明,似乎是要借助GCJ,開發(fā)可編譯到本地代碼的、運(yùn)行庫小巧(<10M)的JAVA開發(fā)環(huán)境。說實(shí)話,我很討厭JRE、.NET framework,覺得它們都是又丑又大的東西,它們之上的的程序除了程序員用用之外,不適合普通用戶。 - 中文VB6 Working Model Edition 回到我最喜歡的VB。這個(gè)版本很特殊,它是為一些VB學(xué)習(xí)書籍專門制作的,只能夠解釋運(yùn)行程序,不能編譯到exe。據(jù)說是全功能的,不過似乎debug都不能用?;旧鲜蔷G色的,而且不過超過15M。有空看看能不能把VB專業(yè)版的編譯工具提取出來。微軟曾經(jīng)的產(chǎn)品多么地小巧,這個(gè)特殊版本的VB證明它仍然具有制作小巧綠色軟件的能力,可是為什么非要制作現(xiàn)在越來越大的windows、.NET和開發(fā)工具呢?蓋子腦袋壞了。
- CoolBasic 面向游戲開發(fā)的Basic語言,在我的機(jī)子上運(yùn)行太慢了(不論是IDE還是編譯之后的exe)。更新似乎停滯了。
- thinBasic 使用商業(yè)軟件Power Basic開發(fā)的免費(fèi)BASIC解釋程序。TBGL是為它專門開發(fā)的、基于OpenGL的3D引擎,版權(quán)未知。
- Euphoria 自3.0.0起,這個(gè)曾經(jīng)的商業(yè)開發(fā)軟件是開源的了。它可以開發(fā)DOS、Windows、Linux下的程序。這是解釋型的語言,但是自稱其解釋器比Perl、Python快了至少30倍。附帶工具可以把Euphoria轉(zhuǎn)換成各種WATCOM C、LCC、Pelles C、MingW等等C語言編譯器支持的源代碼和項(xiàng)目文件,自稱這樣編譯的可執(zhí)行文件,速度比解釋執(zhí)行快至少2倍。
如果你只開發(fā)Windows上的程序,那么可以使用Win32Lib(但是注意,它這里面封裝的函數(shù),和VB、VC使用的那一套的命名不一致)。這樣的話,你有2個(gè)包含界面功能的IDE:Andy Drummond的EuVIDE 0.22.0 Setup Program(這個(gè)似乎沒有主頁,不開源)或者Judith Evans的EuVide(這個(gè)開源,但是它的鼠標(biāo)操作在我的計(jì)算機(jī)上似乎失效了),他們都基于David Cuny的代碼改寫,所以很相象。順便一提,這2個(gè)是少有的(無論商業(yè)軟件還是freeware),雙擊控件會自動(dòng)添加事件綁定代碼的IDE。 - QuickerBasic 比FreeBASIC還早的、打算兼容QB的編譯器,我覺得它對QB語法的改變比FreeBASIC還大。但是作者的開發(fā)一直不順,在距第一個(gè)公開版本(解釋器)2年之后的2006年10月才公布另一個(gè)版本。FreeBASIC的論壇上有人宣稱“我們有了競爭對手”,在這個(gè)帖子里,v1ctor宣布在fbc 0.17發(fā)布之后,因?yàn)樯眢w等原因(唉,我就是不想走程序員這條路?。┧麑簳r(shí)退出開發(fā),項(xiàng)目交由社區(qū)熱心人士管理;在這個(gè)帖子里,QuickerBasic的作者someone42表示愿意參與FreeBASIC的開發(fā),加速FreeBASIC使用GCC后臺的過程(也就是說,QuickerBasic會死去)。
- GFA-BASIC 32 曾經(jīng)的商業(yè)軟件,開發(fā)dos或者windows平臺的有用程序。附帶界面設(shè)計(jì)器;自身是綠色的,編譯出來的程序也較小,似乎也是綠色軟件。2001年公司破產(chǎn)之后,愛好者花了近5年的時(shí)間(佩服國外這些愛好者的執(zhí)著),終于獲得了其源代碼,并公之于眾。
幾個(gè)問題: - 我沒有看到它的源代碼下載連接
- 下載的可執(zhí)行文件,不要放在含中文的目錄中,否則出錯(cuò)
- 調(diào)試不方便
- 漢字支持不好
- GUI古怪,不符合windows風(fēng)格
- 只有德文文檔,缺乏英文的
- 代碼清理力度不夠,有的例程編譯出來居然說需要老版本的GfaWin20.ocx
- FBSL (Freestyle Basic Script Language) 運(yùn)行在windows平臺。按作者的說法,它混和了VB、QB、PHP、Pascal和C++的風(fēng)格。有用自身編寫的界面設(shè)計(jì)器(未公開,目前僅限于開發(fā)者內(nèi)部使用)。提供了打包到exe的腳本。
- Quite BASIC 使用js編寫、基于web的的老式BASIC(需要行號、使用LET賦值、GOSUB/RETURN方式調(diào)用/定義函數(shù))語言解釋程序。提供了幾個(gè)現(xiàn)成的例子,程序跑得相當(dāng)慢,要有耐心才行。
- RunBASIC 基于Liberty BASIC語法,使用Liberty BASIC實(shí)現(xiàn)的、web上的BASIC語言解釋程序。提供了幾個(gè)現(xiàn)成的例子,程序跑得比Quite BASIC快得多,可以輸出圖形?!?
38 發(fā)表于2004年、旨在紀(jì)念BASIC語言40歲生日(5月1日)的兩篇文章回顧了BASIC的歷史,簡介了龐大的BASIC家族的部分成員,讀起來饒有趣味:《BASIC四十年》和《BASIC萬花筒》。 另外,一直渴望獲得一份QB/QBasic自身的源程序,《BASIC萬花筒》一文中提到有MS Qbasic 1.1自身的源代碼下載,我很懷疑是否有這種可能,可惜連接是壞的 :( 順便B4一下仍然說BASIC語言只能解釋執(zhí)行的人,hiahia 主要更新記錄: 2005年9月,http://basic./有很多的BASIC開發(fā)工具的比較和下載 2006年2月16日,添加RealBASIC 2006年3月2日,OOP、消息驅(qū)動(dòng)、GUI,這些概念的出現(xiàn),使得一般用戶書寫、調(diào)試程序的難度加大了。不清楚那些開發(fā)者使用上面某些不提供調(diào)試手段的語言(應(yīng)該說語言+IDE吧)書寫應(yīng)用程序時(shí),是如何調(diào)試、排錯(cuò)的。一頭霧水 2006年8月30日,添加CoolBasic?,F(xiàn)在收集了31款軟件了,哦~ 2006年10月28日,添加Euphoria PS:第一次聽說這么多的BASIC語言,感覺都不錯(cuò)的,呵,下載試用中。。。
|