跳至內容

LCC(編譯器)

出自Taiwan Tongues 台語維基
於 2025年8月23日 (六) 06:05 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

LCC(意指「在地 C 編譯器」抑是「小型 C 編譯器」)是一種為 ANSI C 程式語言而設的小型會當重新導向編譯器。雖然其原始碼以免費方式供個人使用,但是一般的定義來講,伊並毋是一款開源抑是自由軟體,攏因為 LCC 衍生的產品可能為非賣品(即使毋是衍生自 LCC 的元件抑是會當賣)。 該編譯器是由克里斯 ・ 霆雷澤(Chris Fraser)佮大衛 ・ 漢森開發。

LCC

LCC 旨在換理解,抑若檔案件維持擋咧好好(well-documented); 其設計佇克里斯 ・ 鋪雷澤佮大衛 ・ 漢森的著作《A Retargetable C Compiler : Design and Implementation》中有講著。該冊包括 LCC 三允六版本絕大部份的原始碼,這个等代碼是以 noweb 寫做的一款文學程式(literate program)。 節甲二空一一年七月,LCC 的上新版本做四配二,毋過冊內底大部份的內容猶是適用。編譯器佇這个冊出版主要的變化點佇咧代碼生成器(code-generator)的介面,該介面另外一份獨立的檔案內底。

LCC 的原始碼約有兩萬行,較袂少大型的編譯器誠短。

LCC 可為 Alpha、SPARC、MIPS 佮 x 捌十六等處理器架構生成代碼;另外嘛有一款會當生做微軟仔用中央語言的 LCC 後端。

包含 LCC 的計畫

Quake 三

id Software 推出的 id Tech 三 ia̋n-jín 依賴佇咧經修改的 LCC 版本,以共各遊戲模組抑是第三方的模組(mods)的原始碼編譯做機器的位元組碼。所以意味著除系統呼叫和 ia̋n-jín 提供的有限檔案系統作用域外,這寡模組對系統來講並毋知影情,攏因為按呢舉旨佇減低可能因為惡意模組編者引起的威脅。另外一考慮就是基於 ia̋n-jín 咧編寫的遊戲佮模組攏會當徙栽毋免重新編譯;只需要共虛擬機器徙栽去新平台,以確保模組會當運行。

lcc-win

lcc-win 三十二是一款為 Microsoft Windows 猶閣設的整合式開發環境套裝,內底包括一款 LCC 的分叉仔。市場上亦同時存在一款名做「lcc-win 六十四」的 amd 六十四對應版本,佇二空一二年四月十五推出。

Pelles C

Pelles C 的編譯器是 LCC 的一款重度修改版本,支援 C 十一、C 十七、amd 六十四,並且提供行內展開等額外最佳化技術。

邁斯沃克

佇咧三十二位元 Windows 機器當中,若是無為著邁斯克 MATLAB 佮相關的產品安裝其他的編譯器,著會使 LCC 當做預設的編譯器。

授權

LCC 會當免錢來使用,會當重新分發(頭前提是需要所有分發媒體佮產品文件中鳴謝該軟體)。 LCC 授權佇濟種情況下依賴佇範例。LCC 袂使共賣圖利,會當包括講其他的用圖利的軟體當中,鑑於 LCC 家己是以免費的方式分發。用家會當透過聯絡艾迪生韋斯利取得揤使用者抑是無限使用的許可,特別是對著 C + + 等語言的編譯器來講,C 編譯器抑是變成其工課的一大部份。

參見

  • Tiny C Compiler
  • 會當徙栽 C 編譯器
  • Small-C

參考資料

參考書目

  • Fraser , Christopher W . ; Hanson , David R . A Retargetable C Compiler : Design and Implementation . Addison-Wesley . 一千九百九十五 . ISBN  空九八千空五十三五一千六百七十五一 .   有的內容需要登入檢視的頁面 ( link )