[TOOLS] 4 分鐘閱讀OraCore 編輯部

BASIC09 迎來 LLVM 編譯器

Boisy Pitre 做出 basic09c,這是給 OS-9 上 Microware BASIC09 用的獨立 LLVM 編譯器,讓老語言有了現代化編譯路線。

分享 LinkedIn
BASIC09 迎來 LLVM 編譯器

Boisy Pitre 做出 basic09c,這是給 OS-9 上 Microware BASIC09 用的獨立 LLVM 編譯器。

說真的,這種案子很有味道。basic09c 不是懷舊玩具,而是能真的編譯程式的工具。

它瞄準的是 BASIC09,而且底層靠 LLVM。這代表老語言不用卡死在老工具鏈裡。

更妙的是,BASIC09 原本跑在 OS-9 上。這套系統曾出現在 Tandy Color Computer 和 Dragon 32 這類 6809 平台。

項目內容
專案basic09c
目標語言BASIC09
底層技術LLVM 作為 library
原始提案LLVM Discourse 的 BASIC09 frontend RFC
作業系統OS-9

老語言接上現代編譯路線

訂閱 AI 趨勢週報

每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。

不會寄垃圾信,隨時可取消。

LLVM 和 GCC 本來就不是拿來直接支援 BASIC 的。你如果想做一個像樣的編譯器,就得自己處理語法、語意,還要接上後端。

BASIC09 迎來 LLVM 編譯器

Pitre 的做法很務實。他沒有硬塞進主編譯器,而是把 BASIC09 做成獨立 frontend。這樣一來,專案可以自己走自己的節奏。

講白了就是,BASIC09 這種小眾語言,最怕被大專案的節奏拖死。獨立工具反而比較能活下來,也比較好維護。

  • 原始討論出現在 LLVM Discourse
  • basic09c 已經不是提案,而是實作。
  • LLVM 只當 library,用來處理後段工作。
  • BASIC09 是結構化 BASIC,不是只有行號那種版本。

為什麼 BASIC09 不是普通 BASIC

很多人聽到 BASIC,腦中會跳出 10 PRINT 那種畫面。但 BASIC09 不是那種東西。它支援 named procedures、local variables,還有 IF...THEN...ELSE。

這代表它是拿來寫正經程式的。不是只能打幾行小腳本,也不是只能當教學語言。

這件事很重要。因為語言越有結構,越適合做現代化編譯器。你不用把一堆混亂習慣硬塞進設計裡。

“BASIC09 is a structured BASIC: it has named procedures with local variables, supports constructs such as IF…THEN…ELSE, user-defined variable types — and no, it did not need line numbers.”

這句話很直白,也很準。BASIC09 本來就比很多人想的更像「正式語言」。

所以 basic09c 不是硬救一個老玩具,而是在替一個本來就有規格的語言找新出口。

Boisy Pitre 不是第一次玩老系統

Pitre 的背景很關鍵。他早年待過 Microware,對 OS-9 和 BASIC09 都熟。這不是外人亂猜,而是老手回頭做自己懂的東西。

BASIC09 迎來 LLVM 編譯器

他以前也做過 Liber809。那個案子把 Atari 8-bit 機器改成 6809 架構,目標是跑 NitrOS-9

這種經歷會影響做法。你會比較在意相容性,也比較知道哪裡可以改,哪裡不能亂動。

  • Liber809 針對的是 Atari 8-bit 硬體。
  • 它想跑的是 NitrOS-9
  • 核心 CPU 是 Motorola 6809。
  • 這和 BASIC09 的歷史平台是同一條線。

老實說,這類專案最怕的是只剩情懷。Pitre 的案子比較像工程延續,不是表面復古。

這對 retrocomputing 社群有什麼用

重點不只是 BASIC09。重點是,老語言如果有現代編譯路線,社群就比較容易做新工具。

LLVM 在這裡很像萬用底座。它讓小語言不用自己從零做 code generation,也不用自己養一整套後端。

這點對台灣開發者也有參考價值。你如果在做 DSL、內部語言,很多時候也會碰到同樣問題:語法很小,但工具鏈很重。

  • LLVM 已經變成很多 niche frontend 的基礎。
  • 獨立 compiler 比塞進主專案更容易迭代。
  • 小眾語言最缺的通常不是語法,而是工具。
  • 能不能和 emulator、測試器一起用,會決定 adoption。

我覺得這篇新聞最有意思的地方,是它把「保存」講成工程問題,而不是博物館問題。能編譯,才有下一步。

老語言活下來,靠的是工具不是口號

你可能會想問,這種東西有多少人會用。答案大概不多,但這不代表沒價值。

很多技術的生命週期,最後都不是靠聲量,而是靠工具是否還能跑。能 build、能 test、能移植,語言就還有空間。

接下來真正值得看的,是 basic09c 會不會出現文件、範例和跨平台支援。如果這些補齊,BASIC09 就不只是 6809 時代的回憶。

我會先觀察兩件事。第一,編譯器本身好不好裝。第二,社群會不會開始拿它寫新程式。這兩點比喊口號實際多了。