飲水思源追溯 BASIC 程式語言
曾慶潭 Ching-Tang Tseng
ilikeforth@gmail.com
Hamilton, New Zealand
16 August 2025
慣用電腦上網看書,很久沒去過圖書館,我家附近就有圖書分館,但沒光顧過幾次。有幾個原因不去:
一是館中沒有什麼我願意看的書,小說居多,還都不是名著,是暢銷小說。
二是老了,視力不好,看書有點吃力,網上瀏覽的資訊,能自由放大縮小,都可以調整到滿意為止。
三是我不喜歡讀書期限被限制,借閱時間到了就得還書不自由,真有需要的書,我寧可自己買來用。
這半年來,我陪著小外孫長大,從脖子還需要扶著開始,現在剛滿一歲會走路了,我們每星期花四天,以他為主的方式過著生活,我搞創作受到影響,吸收新知則不受影響。
七月中,因為天氣很冷,外出時只宜在室內活動,我帶著小外孫在圖書館內走動,順便看看架上書籍,見到有兩本談論 Raspberry pi 的書籍,毫不猶豫的就借回家看了。不幸,是過時的書籍,介紹到 pi 2 而已。書籍我還是快速讀了一遍,想知道 Raspberry pi 的輸出/輸入機制,結果,沒有幫助,書中採用了兩種程式語言寫範例程式,一是 Python ,另一是 BBC Basic 。他們執行輸出/輸入的方式都得另外加裝驅動軟體,執行方法也只能跟著規定方法使用,不能更動。這樣的用法,連硬體實質位址的訊息都得不到,我很失望的把書還了,真想用 Forth 設計輸出/輸入程式的話,得另外設法從網上學習獲得硬體位址訊息,我估計只宜透過組合語言之類的程式才能從軟體訊息中受益。
開卷都是有益的,我也是讀了過時的舊版書後,才知道 Raspberry pi 電路板上有可以進行硬體重置(Reset)的開放式接點,只是出廠時都未安裝按鈕而已。在 pi 2 的舊書中提到,接點在 HDMI 影像輸出插座旁邊,有文字標示。我的板子是 pi 3 與 pi 4 的版本,找不到這個接點,但在 40 腳的 I/O 插座旁邊有一個標示了 RUN 文字、露出銅泊的兩點,可以焊接重置按鈕。於是,我試用了這兩點,待系統啟動後,我只用迴紋針插在一個洞口上,板上電壓立刻就被降壓下來,重置了。看來,不用再裝按鈕,想重置時,小心以導電金屬碰一下接點就能達到目的。由於單板電腦確實經常會碰到當機情況,需要重置系統,此前,我是買了帶有開關的插座,採用直接切除電源的方式來解決問題。看了舊書,得了訊息,自己親自動手做過幾遍,重置問題就解決了。
pi 2 的舊書中展示了 BBC Basic 系統,我也想加裝,但 pi 3 與 pi 4 的板子都不提供這個系統的下載安裝服務。我試用通配字元星號(*)置於 basic 前面,訊息顯示有 *basic 可安裝,是 bwbasic ,叫 bywaterBASIC 。安裝需時稍久,因為安裝時必須對系統進行組態設定的關係,我耐心的看它正確無誤的執行出結果。倒過頭來,我順便也為作業系統是 Ubuntu 20.04 的桌機也安裝了 bwbasic ,幾乎是瞬間就完成了安裝。裝的全都是 V2.20 的版本,網上已有 V3.0 的版本,但缺人手協助系統進行組態設定的設計。我只下載了源碼,沒有安裝。從 GitHub 中顯示的訊息可以看得出來,這個 bwbasic 是五年前貼網的,換句話說,它能免費下載安裝的時間也只有五年而已,還算新。
在個人電腦的領域,我最早接觸的程式語言就是 BASIC, 那是 1982 年時在台灣使用之 TRS-80 個人電腦的 BASIC ,已有浮點數計算功能。它確實是影響了我一生使用電腦的走向,尤其是後來我透過 Forth 系統設計出 ABC Forth 的研發過程,完全是根據了早期使用過 BASIC 程式語言所獲得的經驗在設計系統。中國人講求飲水要思源,追溯最早的根源,是件有意義的事情,甚至於我還能強調,我的電腦個人筆記已有 20 幾本,第 1 本中,開頭就記錄了 TRS-80 BASIC 的操作步驟。80 年代,我在核能研究所工作期間,曾經在夜間開辦過教導員工使用 BASIC 語言設計程式的課程半年,學完者發給中華民國 FORTH 語言協會的結業證書,全球有效,因為當時我們是 Fig 總會的會員組織,有許多人在美國有效使用過這樣的證書。
熟悉 BASIC ,我才能自己設計 BASIC 。
不尊重前人的創作,就不可能有後來的發展。
我仔細鑽研過 BASIC ,ABC Forth 才能比較健全的擁有 BASIC 的性能。
我用它來進行複雜的數學計算程式設計,也用它完成許多數值分析方面的研究。
程式語言的數學表示式,BASIC 的語法最好。
我用 Forth 的編譯後直接執行之精神,解決 BASIC 因係一邊執行一邊編譯而跑得太慢的問題。
我用 Forth 自然叫用已經存在之前程式的精神,解決 BASIC 被詬病為麵條式程式碼的缺點。
我用 Forth 之延伸性,發展出可以處裡任意一種數系的 BASIC 程式寫法。
還有許多特點,都是這樣發展而成的。
bwbasic 源碼的現行貢獻者叫 Ted Campbell ,據他自稱,這個以 C 語言設計出來的 bwbasic 最原始的作者是他的祖母 Verda Spell 於 1982 年設計的。他還提到謝謝 Mr. David MacKenzie 協助了安裝時對作業系統進行組態設定的程式設計。這樣的作法展現了尊重前人的技術傳承方式,我也感謝最原始的創作者。我的三台 Linux OS 電腦都裝好了 bwbasic , 有空時,我必會試用 bwbasic ,因為我熟 BASIC ,可以直接設計程式解決問題。
可以自由下載 bwbasic V2.20 版本源碼的網址如下:
https://salsa.debian.org/debian/bwbasic
它雖與自動安裝 bwbasic 的操作無關,留下這份源碼的資料,將來想要更動系統改成倍精度運算或其他規格時會有用途,只是您必須熟悉 C 語言以及組態設定檔如何運作的方法才能辦到。安裝 bwbasic 的操作,簡單到只須輸入下列文字:
$ sudo apt-get install bwbasic
今年,Forth 被號稱是已有被使用了 55 年 ( 1970 )的歷史。 BASIC 與其他知名程式語言的年紀則如下圖所示,僅供參考。飲水思源就在思考這些根源。
今天,我們能夠這麼方便的書寫中文創作文章,必須感謝中國人的祖先創造了中文的文字,它的起源可以追溯到幾千年前獸骨、龜殼上的甲骨文,與刻在銅器、陶器上的印記,還有石材上的碑帖,這些東西都是中國經過了千年流傳下來的寶物。至於幾千年前當代的文字傳承,可以簡單到窮人家只靠柳條在沙盤上寫字來教育下一代。我們從小都聽過亞聖先師孟子的母親為了教育孟子,曾經『孟母三遷』才找到適合之教育環境的故事。兩千多年前,孟母就用柳條沙盤教出了能成聖人的子女。沒有文字,那就難辦到了。
紙張還沒有出現以前,中國人主要是靠竹簡或木牘來傳承文字。最近環球時報的新聞報導了一則清華大學對戰國時期大量簡牘文本進行系統性研究後的成果,這些文本是清華大學於2008年7月獲得的戰國時期(公元前475-221年)竹簡的一部分。這批寶藏包含70多部古代文獻,其中60多部已佚失兩千多年。這些文獻涵蓋了哲學、歷史、天文、法律、數學和醫學等眾多學科,為了解早期中國文明提供了寶貴的資料。
研究還發現,大家都以為標點符號是現代發明的,但在這些竹簡中,我們清楚地看到了2000多年前就有人使用標點符號的證據。這些竹簡上的標記,能幫助古代讀者理解論證文章內複雜敘述之結構和含義。清華大學飲水思源式的簡牘文本研究,給中國文字帶來許多從未有過的創新見解。隨文附貼一份在湖北出土的典型竹簡,它們是中國文化中的寶藏。
飲水思源是對前人創作的尊重,不只是中國人該如此,全世界人人都該這樣。最近我在 Twitter(X) 社群媒體中見到一個帳號的貼文串,出現了西方人出言不遜侮辱阿拉伯人的訊息,強說阿拉伯人沒有科學貢獻。結果,阿拉伯人豪不客氣的連貼幾則漫畫,教訓西方人。
要知道,數學是開啟科學之門的鑰匙,而整個數學的根基是代數與幾何,阿拉伯人發明了代數與幾何,甚至於阿拉伯數字,誰有資格嘲笑阿拉伯人對科學沒有貢獻?
飲水要思源,任何科學都該感謝阿拉伯人創建了數學的源泉,科學才得以發展。數目字中,連零的觀念都是來自阿拉伯人的數學創舉,下列漫畫能告訴你阿拉伯數字是怎麼形成的?有『數目之量』與『幾何夾角』的意義在其中。你飲了甘泉,要感謝源泉啊 ! 別再瞧不起阿拉伯人。