[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-basic09-llvm-compiler-foss-dev-zh":3,"article-related-basic09-llvm-compiler-foss-dev-zh":32,"series-tools-7fe38988-1b7a-4987-bdf7-94900b6b0b16":75},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":24,"views":28,"created_at":29,"published_at":30,"topic_cluster_id":31},"7fe38988-1b7a-4987-bdf7-94900b6b0b16","basic09-llvm-compiler-foss-dev-zh","BASIC09 迎來 LLVM 編譯器","\u003Cp data-speakable=\"summary\">Boisy Pitre 做出 basic09c，這是給 OS-9 上 Microware BASIC09 用的獨立 LLVM 編譯器。\u003C\u002Fp>\u003Cp>說真的，這種案子很有味道。\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fboisy\u002Fbasic09c\" target=\"_blank\" rel=\"noopener\">basic09c\u003C\u002Fa> 不是懷舊玩具，而是能真的編譯程式的工具。\u003C\u002Fp>\u003Cp>它瞄準的是 \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBASIC09\" target=\"_blank\" rel=\"noopener\">BASIC09\u003C\u002Fa>，而且底層靠 \u003Ca href=\"https:\u002F\u002Fllvm.org\u002F\" target=\"_blank\" rel=\"noopener\">LLVM\u003C\u002Fa>。這代表老語言不用卡死在老工具鏈裡。\u003C\u002Fp>\u003Cp>更妙的是，BASIC09 原本跑在 \u003Ca href=\"https:\u002F\u002Fwww.microware.com\u002Fos-9\u002F\" target=\"_blank\" rel=\"noopener\">OS-9\u003C\u002Fa> 上。這套系統曾出現在 \u003Ca href=\"https:\u002F\u002Fwww.tandy.com\u002F\" target=\"_blank\" rel=\"noopener\">Tandy\u003C\u002Fa> Color Computer 和 \u003Ca href=\"https:\u002F\u002Fwww.dragon-data.co.uk\u002F\" target=\"_blank\" rel=\"noopener\">Dragon 32\u003C\u002Fa> 這類 6809 平台。\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>項目\u003C\u002Fth>\u003Cth>內容\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>專案\u003C\u002Ftd>\u003Ctd>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fboisy\u002Fbasic09c\" target=\"_blank\" rel=\"noopener\">basic09c\u003C\u002Fa>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>目標語言\u003C\u002Ftd>\u003Ctd>\u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBASIC09\" target=\"_blank\" rel=\"noopener\">BASIC09\u003C\u002Fa>\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>底層技術\u003C\u002Ftd>\u003Ctd>\u003Ca href=\"https:\u002F\u002Fllvm.org\u002F\" target=\"_blank\" rel=\"noopener\">LLVM\u003C\u002Fa> 作為 library\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>原始提案\u003C\u002Ftd>\u003Ctd>LLVM Discourse 的 BASIC09 frontend RFC\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>作業系統\u003C\u002Ftd>\u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.microware.com\u002Fos-9\u002F\" target=\"_blank\" rel=\"noopener\">OS-9\u003C\u002Fa>\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>老語言接上現代編譯路線\u003C\u002Fh2>\u003Cp>LLVM 和 GCC 本來就不是拿來直接支援 BASIC 的。你如果想做一個像樣的編譯器，就得自己處理語法、語意，還要接上後端。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782932579210-3c66.png\" alt=\"BASIC09 迎來 LLVM 編譯器\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>Pitre 的做法很務實。他沒有硬塞進主編譯器，而是把 BASIC09 做成獨立 frontend。這樣一來，專案可以自己走自己的節奏。\u003C\u002Fp>\u003Cp>講白了就是，BASIC09 這種小眾語言，最怕被大專案的節奏拖死。獨立工具反而比較能活下來，也比較好維護。\u003C\u002Fp>\u003Cul>\u003Cli>原始討論出現在 \u003Ca href=\"https:\u002F\u002Fdiscourse.llvm.org\u002F\" target=\"_blank\" rel=\"noopener\">LLVM Discourse\u003C\u002Fa>。\u003C\u002Fli>\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fboisy\u002Fbasic09c\" target=\"_blank\" rel=\"noopener\">basic09c\u003C\u002Fa> 已經不是提案，而是實作。\u003C\u002Fli>\u003Cli>LLVM 只當 library，用來處理後段工作。\u003C\u002Fli>\u003Cli>BASIC09 是結構化 BASIC，不是只有行號那種版本。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>為什麼 BASIC09 不是普通 BASIC\u003C\u002Fh2>\u003Cp>很多人聽到 BASIC，腦中會跳出 10 PRINT 那種畫面。但 BASIC09 不是那種東西。它支援 named procedures、local variables，還有 IF...THEN...ELSE。\u003C\u002Fp>\u003Cp>這代表它是拿來寫正經程式的。不是只能打幾行小腳本，也不是只能當教學語言。\u003C\u002Fp>\u003Cp>這件事很重要。因為語言越有結構，越適合做現代化編譯器。你不用把一堆混亂習慣硬塞進設計裡。\u003C\u002Fp>\u003Cblockquote>\u003Cp>“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.”\u003C\u002Fp>\u003C\u002Fblockquote>\u003Cp>這句話很直白，也很準。BASIC09 本來就比很多人想的更像「正式語言」。\u003C\u002Fp>\u003Cp>所以 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fboisy\u002Fbasic09c\" target=\"_blank\" rel=\"noopener\">basic09c\u003C\u002Fa> 不是硬救一個老玩具，而是在替一個本來就有規格的語言找新出口。\u003C\u002Fp>\u003Ch2>Boisy Pitre 不是第一次玩老系統\u003C\u002Fh2>\u003Cp>Pitre 的背景很\u003Ca href=\"\u002Fnews\u002Fclaude-privacy-location-retention-truth-zh\">關鍵\u003C\u002Fa>。他早年待過 Microware，對 OS-9 和 BASIC09 都熟。這不是外人亂猜，而是老手回頭做自己懂的東西。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782932574620-829a.png\" alt=\"BASIC09 迎來 LLVM 編譯器\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>他以前也做過 \u003Ca href=\"https:\u002F\u002Fwww.bytecellar.com\u002F\" target=\"_blank\" rel=\"noopener\">Liber809\u003C\u002Fa>。那個案子把 Atari 8-bit 機器改成 6809 架構，目標是跑 \u003Ca href=\"https:\u002F\u002Fwww.nitros9.org\u002F\" target=\"_blank\" rel=\"noopener\">NitrOS-9\u003C\u002Fa>。\u003C\u002Fp>\u003Cp>這種經歷會影響做法。你會比較在意相容性，也比較知道哪裡可以改，哪裡不能亂動。\u003C\u002Fp>\u003Cul>\u003Cli>Liber809 針對的是 \u003Ca href=\"https:\u002F\u002Fwww.atari.com\u002F\" target=\"_blank\" rel=\"noopener\">Atari\u003C\u002Fa> 8-bit 硬體。\u003C\u002Fli>\u003Cli>它想跑的是 \u003Ca href=\"https:\u002F\u002Fwww.nitros9.org\u002F\" target=\"_blank\" rel=\"noopener\">NitrOS-9\u003C\u002Fa>。\u003C\u002Fli>\u003Cli>核心 CPU 是 Motorola 6809。\u003C\u002Fli>\u003Cli>這和 BASIC09 的歷史平台是同一條線。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>老實說，這類專案最怕的是只剩情懷。Pitre 的案子比較像工程延續，不是表面復古。\u003C\u002Fp>\u003Ch2>這對 retrocomputing 社群有什麼用\u003C\u002Fh2>\u003Cp>重點不只是 BASIC09。重點是，老語言如果有現代編譯路線，社群就比較容易做新工具。\u003C\u002Fp>\u003Cp>LLVM 在這裡很像萬用底座。它讓小語言不用自己從零做 code generation，也不用自己養一整套後端。\u003C\u002Fp>\u003Cp>這點對\u003Ca href=\"\u002Ftag\u002F台灣開發者\">台灣開發者\u003C\u002Fa>也有參考價值。你如果在做 DSL、內部語言，很多時候也會碰到同樣\u003Ca href=\"\u002Fnews\u002Fbineval-binary-questions-llm-evals-zh\">問題\u003C\u002Fa>：語法很小，但工具鏈很重。\u003C\u002Fp>\u003Cul>\u003Cli>LLVM 已經變成很多 niche frontend 的基礎。\u003C\u002Fli>\u003Cli>獨立 compiler 比塞進主專案更容易迭代。\u003C\u002Fli>\u003Cli>小眾語言最缺的通常不是語法，而是工具。\u003C\u002Fli>\u003Cli>能不能和 emulator、測試器一起用，會決定 adoption。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我覺得這篇新聞最有意思的地方，是它把「保存」講成工程問題，而不是博物館問題。能編譯，才有下一步。\u003C\u002Fp>\u003Ch2>老語言活下來，靠的是工具不是口號\u003C\u002Fh2>\u003Cp>你可能會想問，這種東西有多少人會用。答案大概不多，但這不代表沒價值。\u003C\u002Fp>\u003Cp>很多技術的生命週期，最後都不是靠聲量，而是靠工具是否還能跑。能 build、能 test、能移植，語言就還有空間。\u003C\u002Fp>\u003Cp>接下來真正\u003Ca href=\"\u002Fnews\u002Fai-coding-subscriptions-predictable-value-2026-zh\">值得\u003C\u002Fa>看的，是 basic09c 會不會出現文件、範例和跨平台支援。如果這些補齊，BASIC09 就不只是 6809 時代的回憶。\u003C\u002Fp>\u003Cp>我會先觀察兩件事。第一，編譯器本身好不好裝。第二，社群會不會開始拿它寫新程式。這兩點比喊口號實際多了。\u003C\u002Fp>\u003C\u002Fh2>","Boisy Pitre 做出 basic09c，這是給 OS-9 上 Microware BASIC09 用的獨立 LLVM 編譯器，讓老語言有了現代化編譯路線。","www.theregister.com","https:\u002F\u002Fwww.theregister.com\u002Fpersonal-tech\u002F2026\u002F06\u002F25\u002Ffoss-dev-builds-a-basic-compiler-using-llvm\u002F5262171",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782932579210-3c66.png","tools","zh","cb384f83-17c8-4bad-966a-6b1b9801619a",[17,18,19,20,21,22,23],"BASIC09","LLVM","OS-9","retrocomputing","編譯器","Microware","6809",[25,26,27],"basic09c 是給 BASIC09 用的獨立 LLVM 編譯器。","這個專案讓老語言有了現代工具鏈。","Pitre 的 Microware 背景，讓這案子很有延續性。",0,"2026-07-01T19:02:28.619628+00:00","2026-07-01T19:02:28.61+00:00","c3c88dd2-a940-438a-b359-0e5a24562273",{"tags":33,"relatedLang":34,"relatedPosts":38},[],{"id":15,"slug":35,"title":36,"language":37},"basic09-llvm-compiler-foss-dev-en","BASIC09 gets a new LLVM-based compiler","en",[39,45,51,57,63,69],{"id":40,"slug":41,"title":42,"cover_image":43,"image_url":43,"created_at":44,"category":13},"2ffaf5e5-e155-47dd-80cd-af62c3705516","databricks-ai-gateway-inference-tables-served-models-zh","Databricks 為模型服務加上 AI Gateway 推論表","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782939770301-2a9e.png","2026-07-01T21:02:20.660434+00:00",{"id":46,"slug":47,"title":48,"cover_image":49,"image_url":49,"created_at":50,"category":13},"380bf473-a8ae-434e-8368-a9225bfcbf28","9-cursor-alternatives-that-beat-lock-in-zh","9 個 Cursor 替代把鎖定感拆掉","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782914601997-id3i.png","2026-07-01T14:02:56.526005+00:00",{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":13},"deda75f1-0424-44df-88d3-9e38aa714011","ai-video-tools-full-pipeline-wins-zh","AI视频工具的胜负手，已经不是单次生成而是全流程生产","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782912777256-4tyy.png","2026-07-01T13:32:23.499397+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":13},"31c694b9-74b0-4609-829b-ed7e72cae838","go-makes-backend-scale-easier-in-production-zh","Go 讓後端擴充少踩雷","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782910122046-y1lz.png","2026-07-01T12:48:16.572103+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":13},"61fb9cdc-fc82-4660-a4cf-acd9e00a6543","boot-dev-go-playground-teaching-tool-zh","Boot.dev 的 Go Playground 是教學工具，不是完整 IDE","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782909173713-8ndy.png","2026-07-01T12:32:24.645869+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":13},"2fb45a80-d9a5-4758-b2c1-3765e2fe63b1","zhihe-a210-risc-v-soc-dev-kit-breakdown-zh","Zhihe A210 把 RISC-V 變成開發板","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1782905601189-7chv.png","2026-07-01T11:32:57.489041+00:00",[76,81,86,91,96,101,106,111,116,121],{"id":77,"slug":78,"title":79,"created_at":80},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":82,"slug":83,"title":84,"created_at":85},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":87,"slug":88,"title":89,"created_at":90},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]