當前位置: 華文世界 > 科技

BASIC語言的來世與今生

2024-08-26科技

BASIC,初學者通用符號指令程式碼,是一種設計給初學者使用的程式設計語言。本人就是透過BASIC編寫程式入門的而愛上編程的。在上世紀八十年代、九十年代,許多編程愛好者,透過BASIC,解決了大量的實際業務問題和難題,大大提高了工作效率和工作質素,有的成為了專業程式設計師。

BASIC語言的誕生

1964年,美國達特茅斯學院約翰·凱梅尼(J. Kemeny)和杜文·卡茨,研制出一種「初學者通用符號指令程式碼」,簡稱BASIC(Beginner's All-purpose Symbolic Instruction Code)。
最初,BASIC主要在小型機上使用,以編譯方式執行。上世紀70年代,BASIC語言發展成為一種廣泛使用的通用語言,也正是在這個年代,微型電腦誕生了,各種微機上都配備了BASIC語言,成為了必備的軟件。1973年,美國DEC公司,研制了BASIC的解釋程式,用它代替BASIC的編譯程式。這樣解釋性的BASIC就這樣誕生了。

BASIC的發展、百花齊放

BASIC的發展,離不開各大公司的積極參與。正是因為各大公司對BASIC的擴充套件、規範,才促使BASIC的快速發展。

1975年,比爾·蓋茨創立的Microsoft也把解釋性的Basic語言的編譯器移植到使用 Intel處理器的電腦中。

1985年BASIC的兩位創始人推出的True BASIC,對BASIC語言作了重大改進和發展,它嚴格遵循ANSI BASIC,目的是為了規範BASIC的發展,不僅完全適應結構化和模組化程式設計的要求,而且保留了BASIC語言的優點——易學易懂,程式易編易偵錯,它同時提供了解釋工作方式和編譯工作方式。

GW-BASIC是BASIC的一個另外版本,GW-BASIC是作為MS-DOS的一個組成部份問世的。GW-BASIC屬於非結構化basic,也就是最早期的basic語言,沒有loop和while迴圈語句,局限性很大。最後GW-BASIC版本為3.23。我還記得國產的長城0520微機的作業系統裏就內建GW-BASIC。

Quick BASIC由1987年Microsoft公司推出,提供了一個開發程式的整合環境,使用者在編程式、修改、編譯、偵錯、執行時均可透過選單進行操作、十分方便;提供了全域變量和局部變量的支持;程式模組化;編譯後產生一個可執行檔。

BASICA,屬於IBM PC上基於ROM中BASIC直譯器,與BASIC基本相容。

QBASIC是Quick BASIC的一個閹割版。1991年隨MS-DOS5.0推出,屬於解釋性,不能被編譯成獨立的可執行檔,原始碼在整合式開發環境(IDE)中先被編譯成中間程式碼,然後中間程式碼在IDE中被解釋執行。QBASIC基於微軟QuickBASIC 4.5,但去掉了後者的編譯和連結部份。

Turbo BASIC 是一個 BASIC 編譯器 與編輯器,最初由 Robert 、Bob、Zale 所開發,後來被 Borland買下。當 Borland 決定不再販售之後, Zale 從Borland 手中買回它, 並改名為 PowerBASIC 並創立 PowerBASIC 公司,以繼續支援與研發。今天仍然存在市面上。

在上世紀八十年代,在中國非常流行的PC-1500袖珍電腦,我記得裏面就是安裝的BASIC系統,就是以解釋工作方式執行。PC-1500在高校、氣象、水利、工程等行業套用非常廣泛。如【水利水電工程 PC-1500程式集】,實作了水利水電工程勘測設計多專業的分類,包括16個軟件包,共計100多個程式。氣象部門套用PC1500,實作了地面數據輸入編輯統計打印功能,編發地面報、農氣報和航危報等等。大大減少了人工量,減少了錯情,提高了工作質素。套用PC-1500,做長期預測、實作了回歸、時間序列、聚類分析等計算方法;在部隊使用,即時計算彈道;收購糧食打印小票;利用RS232介面,即時讀取傳感器的數據等等。

我還記得,當時BASAIC執行速度不高,為了提高執行速度,逼得我學會了組譯,組合語言可真是難學呀。曾經有個演算法,我用高級語言表達,非常慢,達不到業務需求,最後求教於組譯,花了一周琢磨出了演算法,18條指令達到要求,真是執行快呀,解決問題。

Visual Basic橫空出世

1991年4月,釋出的Windows 3.0版本,成就了VB。同年,Visual Basic 1.0 Windows 版本的推出,在當時,它是第一個「可視」的編程軟件。雖然那個時候的「可視」還只是個雛形,已經開始受到程式設計師的關註和喜愛。1992年推出了了VB2.0,1993年推出了VB3.0,增加了數據引擎,可以直接讀取 Access 數據庫。VB越來越受到了程式設計師的喜愛。Visual Basic發展迅速,於1995年釋出VB4.0,釋出了32位元和16位元的版本。其中包含了對類的支持;1997年釋出VB5.0,開始支持中文、可以自訂控制項;1998年釋出VB6.0,成為經典。直到2008年,微軟才結束對於 VB 6.0 的技術支持。這也是VB6.0的輝煌,更是微軟程式語言的經典輝煌時刻。

那個時候,利用VB6.0開發的套用軟件比較多。有許多行業的業務軟件就是它寫的。那時候書店裏到處都是VB6.0的書籍,培訓機構教編程,首選VB。雖然VB是解釋性語言,效能不高,是其短板,但是那時的電腦硬件快速發展升級,彌補了其不足。

VB.NET 的發展

.NET的成功推出,帶動了VB的發展,也緩解了VB6.0之後沒有後續版本的尷尬。.NET Framework 引入之後,2002年,推出了Visual Basic .NET 2002,一種簡單、高級、物件導向的程式語言。它是Visual Basic 6.0的繼承者,是在Microsoft .NET框架上實作的,支持物件導向的概念。可以說,這是一個全新的語言,由於其使用了新的核心和特性,所以很多 VB 的程式設計師都要覆寫程式。Visual Basic被擴充套件為支持受控代碼機制的開發環境,且Visual Basic .NET更是從 Visual Basic 脫胎換骨,徹底支持物件導向的編程機制。

2010年,Visual Basic .NET隨Visual Studio 2010釋出,不再提供單獨的Visual Basic .NET IDE。

VB .NET是構建於.Net framework之上,同屬Basic系列語言,又同為微軟所開發,語法上有一定的相似或沿襲,但不能簡單認為VB .NET是VB的升級版。

目前 ,可以查到,Visual Basic最新的版本是Visual Basic 16.9,也就是VB.NET2022, 它著重將更多 Visual Basic 執行階段 (microsoft.visualbasic.dll) 的功能提供給 .NET Core,且是第一個著重在 .NET Core 的 Visual Basic 版本。

VB,一直在發展,有了.NET的加持,到現在已經是功能很強大了,而且開發普通程式效率很高,除了有些語法與傳統的VB相似外,卻不是同系列語言VB的沿襲, 它的發展隨著微軟的.NET Framework的進步而進步,增加許多以前都沒有的東西,隨著.NET版本的更替,執行效率也在提高中,它的跨平台開發,也是當今的一種趨勢。

VBA

VBA(Visual Basic for Applications),Basic的衍生物。V BA是基於 Visual basic發展而來的,與VB具有相似的語言結構,是VB的一個子集,它們的語法結構是一樣的。但是,VB是獨立的開發工具,它不需要依附於任何其他應用程式,它有自己完全獨立的工作環境和編譯、連結系統。VBA卻沒有自己獨立的工作環境,目前VBA主要專門用於Office]的各應用程式中,可以透過VBA編寫指令碼來滿足特定的需要。

Free Basic的發展

Free Basic的版本,是2004年之後發展起來的。它是一個完全免費,跨平台(Windows Linux Dos),開源,物件導向的BASIC編譯器。FreeBASIC是BASIC語言的一種變體, 與QuickBASIC的語法類似 ,但和多數BASIC方言不同的是它以編譯方式執行,而且它能產生速度很快的機器碼。它支持指標、行內組譯等C語言特性,也能使用C庫函數,新版本還能支持物件導向。 它在教育、軟件開發、跨平台、嵌入式系統等有套用。最新版本更新2023年12月。

PowerBASIC

PowerBASIC 由位於美國佛羅裏達州威尼斯的 PowerBASIC 公司所制作,為一種 BASIC 編譯器,分別擁有 DOS 版本及Windows 版本。DOS 版本使用的語法類似 QBasic 和 QuickBASIC,而 Windows 版本則類似其他程式編譯器,結合標準 BASIC 語言和 API 呼叫。

PowerBASIC與熟悉的BASIC語言一樣,但有兩個重要的差別:通常PowerBASIC 編譯的程式碼在效能上比VB 編譯的程式碼好3到23 倍; 以及由PowerBASIC 產生的可執行檔比VB生成的可執行檔小4 到40 倍!使用PowerBASIC,原始碼將被編譯為本機可執行程式碼檔,並且不需要額外的外部執行時元件。目前最新版本是 PowerBASIC 10.03 。

盡管在當今科技飛速發展的時代,BASIC 語言確實已經逐漸淡出了主流程式語言的舞台。然而,回首往昔,它曾經所斬獲的輝煌成就,無疑是編程領域中一段璀璨而美好的珍貴記憶。它讓我們走上的編程之路,開啟了編程之旅,也讓我們留下的美好的回憶。

歡迎粉絲們在評論區討論和回憶。