簡介
FreeBASIC是一個免費自由的 32位BASIC編譯器。可以運行在Windows(32位)保護模式的 DOS 和linux(x86)系統之上。它最初是作為一個代碼兼容,自由免費的微軟QuickBASIC的替代品而開發的,但是現在已迅速成長為一個強大的開發工具。默認安裝已經包含以下的函式館:Allegro, SDL, OpenGL, Gtk, Windows API 等等。
BASIC(Beginner's All-purpose Symbolic Instruction Code)是一種直譯式程式設計語言。名稱字面為意思“初學者的全方位符式指令代碼”,設計給初學者使用的程式語言,在完成編寫後不須經由編譯及連結等手續,經過解釋器即可運行,但如果需要單獨運行時仍然需要將其創建成執行檔。
發展歷史
BASIC語言早期是以直譯程式的方式創始,也演化出許多不同名稱的版本,如:BASICA, GW-BASIC, MBASIC, TBASIC。微軟公司也在MS-DOS時代即推出Quick BASIC,並逐漸將之改良為兼具直譯與編譯雙重翻譯方式,1988年在Windows開始流行的時候,微軟公司推出Visual Basicfor Windows成為Windows作業環境一枝獨秀的易學易用程式語言,微軟公司還特地為MS-DOS的使用者開發了Visual Basic for MSDOS。微軟在早期的崛起BASIC語言功不可沒。Quick Basic與Visual Basic發展過程如下:
Quick BASIC是微軟(Microsoft)公司1987年推出的。
1991年,伴隨著MS-DOS5.0的推出,微軟(Microsoft)公司同時推出了Quick BASIC的簡化版QBASIC,將其作為作業系統的組成部分免費提供給用戶。自從Windows作業系統出現以來,圖形用戶界面(GUI)的BASIC語言(即Visual Basic)已經得到廣泛套用。
2001年Visual Basic .NET推出。
2003年Visual Basic .NET 2003推出。
2005年11月7日在Visual Studio 2005內推出Visual Basic 2005。
2008年3月在Visual Studio 2008內推出Visual Basic 2008。
2008年10月微軟公司推出針對兒童市場的免費程式語言Small Basic。
2010年4月12日在Visual Studio 2010內推出Visual Basic 2010。
特點
1、構成簡單。 BASIC語言的最基本語句只有17種,而且它們都是常見的英文單詞或其變形,如READ、END等,很容易學習和掌握。
2、是一種“人機會話”式的語言。通過鍵盤操作,用BASIC語言編寫完的程式,可以在計算機上邊編寫、邊修改、邊運行。而且還可以在運行中向人們提示信息的指出錯誤,要求人去改正,即實現了人和機器的對話。
3、功能較全、適用面廣。BASIC語言除了能進行科學計算和數據處理外,還能進行字元處理、圖形處理、音樂演奏等。因此BASIC語言不僅適用於科學計算,也適用於事務管理、計算機輔助教學和遊戲編程等方面。
4、執行方式靈活。BASIC語言提供兩種執行方式,分別是程式執行方式和命令執行方式。程式執行方式把BASIC語言編寫成一個完整的程式送入計算機執行;命令執行方式不編寫程式,直接從鍵盤輸入某些命令(稱鍵盤命令),計算機能立即執行這些命令。
分類
行號類型(非結構化)
這是第一代的BASIC,例如早期BASICA、GW-BASIC……等,BASIC解釋器。這類的BASIC程式的特徵,就是每一行的代碼前面都有一個數字作為“行號”。由於這種類型的BASIC程式的寫法,很容易濫用GOTO的跳躍指令,以及代碼沒有辦法使用到縮進去區分區塊,因此很容易導致麵條式代碼。
無行號類型(結構化)
這是第二代的BASIC,例如QuickBASIC、PowerBASIC。這時期,同時有功能相近的解釋器與編譯器的版本出現。這類的BASIC程式的特徵,是不使用行號,改使用標籤作為跳躍點(仍有GOTO指令,但已可使用其他寫法可完全避開使用GOTO),與使用函式或副程式的方式,以及可使用縮進,將程式結構化 。
面向對象化
這是第三代的BASIC,例如Visual Basic、REALbasic、StarOffice Basic。這類的BASIC程式的特徵,是導入類別(Class)的套用,使用面向對象的繼承與代碼封裝的寫法。通常也使用“事件驅動”的寫法,雖然下面這個Visual Basic .NET的示例並不是用到“事件驅動” 。
語法規則
語句
基本BASIC的17種基本語句包括賦值(LET)語句,鍵盤輸入(INPUT)語句,讀數(READ)語句,置數(DATA)語句(配合讀數語句使用,稱讀數據(READ/DATA)語句),恢複數據區(RESTORE)語句,無條件轉移(GOTO)語句,條件轉移(IF~THEN或IF~GOTO)語句,注釋(REM)語句,循環說明(FOR)語句,循環終了(NEXT)語句,暫停(STOP)語句,自定義函式(DEF)語句,轉子(GOSUB)語句,返回(RETURN)語句,數組說明(DIM)語句,列印(PRINT)語句,結束(END)語句。
BASIC語言中常用的語句定義符及其含意:
LET 讓、令;GOTO 轉移到;STOP 暫停;IF 如果; THEN 則 ;DATA 數據;FOR 對於; TO 到; DIM 維數;STEP 步進值; NEXT 下一個; GOSUB 轉子;PRINT 列印; INPUT 輸入; DEF 定義函式;RESTORE 恢復 ;END 結束; REM 注釋;RETURN 返回; READ 讀。
詞法
一、數的表示方法
BASIC中有數值常數及字元型常數。字元型常數為用引號括起來的一串字元,也稱為字元串。引號不是字元串的一部分,僅作為字元串的起止界限。每個字元在機內占一個位元組。
在N-BASIC中數值常數分為整型、定點型、浮點型(單精度及雙精度)、十六進制常數及八進制常數等。
二、變數的表示方法
變數有數值變數及字元型變數,前者是存放數值的,後者存放字元串。變數的值在程式執行過程中是不斷變化的。當程式執行到某處賦予變數新的值就要“衝掉”它原有的值。
三、運算符
1.算術運算符:任一個數學表達式中的算術運算是按優先度進行運算的,相同優先度自左向右順序作。
2.賦值運算符:用“=”表示賦值時稱為賦值運算符, 用它來給數值變數賦數值常數或給字元型變數賦字元型常數。
3.關係運算符(亦稱比較算符):關係運算符是用來比較兩個表達式的,每個表達式都是算術表達式,在比較時,先算出表達式的值然後比較。用關係運算符也可以比較字元型變數,字元型常數及字元型函式等。
4.布爾運算符(或稱邏輯運算符):布爾運算符是對一個或兩個表達式進行邏輯運算。
四、標準函式
BASIC語言中配備了一些常用的函式,用戶可以自由調用,調用時寫好函式名後面加一括弧,括弧內X的位置寫上實在參數就可以了,實在參數可使用常數、變數、表達式或標準函式等。
五、BASIC表達式
用符合BASIC規定的運算符號將數、變數、函式、數組元素連線起來的複雜運算對象稱為BASIC表達式。注意BASIC表達式中每個符號都占一格,所有符號都必須一個接一個寫在一橫線上,不能出現在右上角或左下角。
freebasic編譯器
功能
FreeBASIC 是一個 self-hosting 編譯器(它的編譯器是用 FreeBASIC 語言寫的),FreeBASIC如同名字一樣,免費而且基於已建立的BASIC語法。除了語法上最大程度上兼容微軟QuickBASIC以外,FreeBASIC加入了一些新的特性,比如指針,無符號數據類型,內聯彙編,預處理器等等。
特點
1、幾乎支持所有QB的原指令,且有許多追加功能
2、產生快速高品質的機器碼,不依靠VM等虛擬機器
3、完全免費,包含原始碼,編譯出來的程式無授權問題
4、支持MS-DOS/Win32/Linux多平台,也可以編譯GUI程式
5、擁有眾多第三方函式館支持(Allegro/SDL..以及DirectX/Win32API)
6、支持Unicode,使用中文十分容易
7、編譯EXE/OBJ/LIB/DLL都很容易。