FreeBASIC
FreeBASIC是一个 BASIC 語言的編譯器,可執行佇咧 Microsoft Windows、保護模式的 DOS(DOS 擴充器)、 Linux 以及 Xbox 上。
FreeBASIC 通過使用 " QB " 關鍵字會使佇進階別上支援咧用 QBASIC 編寫的程式。足濟用 QBASIC 寫的程式會當佇無需任何修改的情況下編譯佮執行佇這个模式下。毋過若準用預設的參數來編譯,大部份的程式猶是愛進行一寡修改的。
特性
平台支援
FreeBASIC 這馬會當執行佇六十四位元佮三十二位元的 Windows、GNU / Linux,FreeBSD , 以及十六位元的 DOS 系統。嘛會當替 Xbox 建立應用程式(Xbox 版本目前已經退後)。 執行的時庫予人設計做會當徙栽。所有第三方工具攏使用來自 GNU Binutils。系統上編譯器百分之一百用 FreeBASIC 代碼寫做,會當簡單的自舉毋免依賴傷濟的袂當移植工具。
現代程式語言特性支援
FreeBASIC 作為一種高階程式語言,支援程序導向、物件導向佮元程式設計。
除錯支援
完全支援 GDB(GNU 除錯器), 陣列越界檢查(干焦使用-exx 命令列選項), 空指標檢查(同上)。
圖形介面支援
該專案提供了佮常見程式庫的簡單的結束,比如講:C 執行時庫、Allegro、SDL、OpenGL、GTK +、Windows API 等,同時嘛提供一寡範例的程式。
伊使用 GNU Binutils 軟體開發工具作為後爿,除了動態佮靜態庫,閣會使製作控制台佮圖形/GUI 會當執行檔。FreeBASIC 完全支援 C 庫佮部份 C + + 庫。這使得程式設計師會使使用佮建立 C 佮真濟其他語言的庫。
FreeBASIC 閣毋是一个最佳化編譯器,但是伊的速度被認為接近主流工具,如 GCC。
語法
FreeBASIC 語法試圖盡量保持接近 BASIC 語法,特別是 QuickBASIC。雖然語法上試圖保持佮其前輩一致,FreeBASIC 嘛是遵循一寡現代的標準佮編碼實現。有標準的過程特性佮物件導向特性,如東西、運算子加載、函式加載和號名空間等等,已經加入來矣 FreeBASIC 中。
FreeBASIC 行佇拄著行尾字元抑是冒號的時陣結束。所以無需要使用特殊字元(如 C 語言內底的分號)來通知編譯器此行結束。濟條語句會當通過冒號 ` : ` 分割寫佇一行里。
FreeBASIC 支援塊注釋佮行章節附註釋。規途注釋使用一个撇號 `'`,塊注釋對 ` /'` 開始,到 `'/ ` 結束。
相容性
FreeBASIC 繼承自 QuickBASIC。為著使 FreeBASIC 佮現代的工具相容並且有進階編程特性,咧開發 FreeBASIC 的時陣猶閣進行一寡修改的。而且 _-lang _ 選項的設定予 FreeBASIC 編譯器嘛會當適應 GCC 和 QuickBASIC 相容語言。
- 當選擇 FB 語言設定的時陣(命令列參數為 _-lang fb _), 共所有的 FreeBASIC 新特性,並且無允准使用 QuickBASIC 的 " hackish " 特性(該特性無符合現代編程實踐)。
- FB-Lite 語言設定(_-lang fblite _)提供了存取大多數 FreeBASIC 中新的非物件導向的特性,但是允准使用佮老版本 BASIC 類似的代碼風格。語法規則,如允准隱變數、字尾、` GOSUB ` / ` RETURN `、行號等等。
- QB 語言設定(_-lang qb _)佮 _-lang fblite _ 類似,但是伊閣較專注重複製 QBASIC 式的行為。_-lang qb _ 予人設計用來做 QBASIC 寫的程式會當閣較容易來執行,佇咧有的狀況之下 _-lang fblite _ 彼相容性無夠好,這陣 _-lang qb _ 就會足有路用的。
範例代碼
和 QBasic 仝款,佇螢幕頂懸寫入一行文字的程式會當寫做是下底的簡單語句:
而且嘛加入一寡物件導向的性質,譬如講動態連接庫,運算子加載,以下是物件導向的例代碼:
圖形庫
FreeBASIC 有一个內建的二 D 軟體圖形庫,佮 QuickBASIC 相容,為使用者提供了簡單的圖形元素(如矩形,線佮圓)、 位塊傳輸佮一寡 QuickBASIC 的圖形庫內底無的附加特性。圖形庫本身並無依賴咧作業系統,所以會當平台用。
雖然圖形庫是內底起的,但是干焦咧選擇咧使用的時陣才會予人包含,這會當簡單共通過講叫 FBgfx ` SCREEN ` 命令來實現。通用庫(如 OpenGL +)為著硬體加速使用 API(Windows、Linux 等)來建立一个窗仔口會使無包含 FreeBASIC 的圖形庫。
未來的開發
FreeBASIC 猶原繼續開發,目標是成做一个 GCC 前端,這將帶來真濟 C + + 佮其他的物件導向程式設計語言中的新特性,進階最佳化技術,猶閣有會當徙栽去任何現代系統上的能力。
零操一七版內底已經加入物件導向程式設計的類,擴充了基本的資料類型。閣較濟新特性值得期待。
參考
外部連結
- FreeBASIC 官方網站
- FreeBASIC 官方文件
- FreeBASIC 官方論壇
- FreeBASIC 代管佇 SourceForge 的頁面
- FreeBASIC wiki