LCC (編譯器)

LCC（意指「」或「」）是一種為ANSI C編程語言而設的小型。雖然其源代碼以免費方式供個人使用，但據一般定義而言，它並非一款開源或自由软件，皆因LCC衍生的產品可能為非賣品（即使不是衍生自LCC的元件或會供出售）。該編譯器由克里斯·弗雷澤（Chris Fraser）及開發。

 LCC 
LCC旨在易於理解，而其文件亦存檔完好（well-documented）；其設計於克里斯·弗雷澤及大衛·漢森的著作《A Retargetable C Compiler: Design and Implementation》中有述及。該書包含LCC3.6版本絕大部份的源代碼，而該等代碼是以寫成的一款文學程式（literate program）。截至2011年7月，LCC的最新版本為4.2，但書中大部份內容仍適用於該版本。編譯器於該書出版的主要變化點在於代碼生成器（code-generator）的介面，該介面另述於一份獨立的文件中。

LCC的源代碼約有2萬行，較不少大型編譯器甚短得多。Sao-Jie Chen, Guang-Huei Lin, Pao-Ann Hsiung, Yu-Hen Hu. "Hardware software co-design of a multimedia SOC platform". Section 5.6.1: LCC Compiler Infrastructure.

LCC可為Alpha、SPARC、MIPS及x86等處理器架構生成代碼；另亦有一款能生成微軟通用中间语言的LCC後端。

 包含LCC的計畫 

 Quake 3 
id Software推出的id Tech 3引擎依賴於經修改的LCC版本，以將各遊戲模組或第三方模組（mods）的源代碼編譯成基於自身虛擬機器的字节码。這意味著除系统调用和引擎提供的有限文件系统作用域外，這些模組對系統而言並不知情，皆因此舉旨在減低可能因惡意模組編者引起的威脅。另一考慮是基於引擎而編寫的遊戲和模組均可移植而毋須重新編譯；只需將虛擬機器移植至新平台，以確保模組能夠運行。

 lcc-win 
lcc-win32是一款為Microsoft Windows而設的集成开发环境套裝，當中包含一款LCC的分叉。市場上亦同時存在一款名為「lcc-win64」的amd64 對應版本，於2012年4月15日推出。

 Pelles C 
Pelles C的編譯器是LCC的一款重度修改版本，支援C11、C17、amd64，並提供内联展开等額外最佳化技術。

 邁斯沃克 
在32位元Windows機器中，若沒有為迈斯沃克MATLAB及相關產品安裝其他編譯器，則會以LCC作為預設的編譯器。

 授權 
LCC可供個人免費使用，並可重新分發（前提是需於所有分發媒體和產品文檔中鳴謝該軟體）。LCC授權在多種情況下依賴於範例。LCC不能轉售圖利，但可包含於其他用以圖利的軟體當中，鑒於LCC自身是以免費方式分發。用家可透過聯絡艾迪生韦斯利取得按用戶或無限使用的許可，特別是對於C++等語言的編譯器而言，C編譯器或成為其工作的一大部份。

 參見 

 Tiny C Compiler
 可移植C編譯器


 參考資料 

 參考書目 


Category:C編譯器