1. 程式人生 > >我發起並創立了一個 C 語言編譯器 開源項目 InnerC

我發起並創立了一個 C 語言編譯器 開源項目 InnerC

語法 inner href 一點 類型 語言 ilb com htm

本文是 VMBC / D# 項目 的 系列文章,

有關 VMBC / D# , 見 《我發起並創立了一個 VMBC 的 子項目 D#》(以下簡稱 《D#》) https://www.cnblogs.com/KSongKing/p/10348190.html 。

VMBC 需要一個 內置 的 C 編譯器, 想來想去, 覺得還是自己寫一個,

計劃用 C 語言 寫, 因為 VMBC 的 C 編譯器 要求是一個 本地庫, 如果不要求是 本地庫, 我就用 C# 寫了, 呵呵呵 。

為什麽 是 庫 呢 ? 因為這是一個 內置編譯器, 是由 ILBC 運行時 來 調用的 (ILBC 見 《D#》), 所以 是一個 庫 。

這個 庫 最好 能 盡可能的 小 。

C 語言 寫的 代碼 是 最貼近 底層(匯編) 的, 所以 C 語言 寫的 庫 應該是 最緊湊 的, 所以用 C 語言 來寫 。

還有一個 原因 是, 我會的 語言 不多, C 算是 相對 更熟一點的, So 。

有 網友 說 C 語言 不適合 寫 編譯器, C 的抽象太低了, 建議用 函數式 語言寫,

又舉例 Rust 最早是用 OCaml 寫的, 然後又用 Rust 寫了一遍 。

好吧, 但 Rust 、OCaml 這些語言 的 名字 我都 沒怎麽聽過, 還是用 C 吧 。

另外用 C 的話, 應該不用擔心 操作系統 的 支持 的 問題 。

這個 項目 我只 實現 語法分析 和 類型檢查 的 部分, 語法分析 包含了 語法檢查 。

生成目標代碼 鏈接(鏈接外部庫) 這 2 個 部分 大家 如果有興趣, 對 匯編 和 操作系統 了解 的話, 可以來補充 。

我發起並創立了一個 C 語言編譯器 開源項目 InnerC