LCC (compiler)
Developer(s) | Dave Hanson and Chris Fraser |
---|---|
Initial release | 1994 |
Stable release | 4.2
/ September 4, 2002 |
Written in | Cross-platform |
Type | Compiler |
License | LCC License[1] |
Website | drh |
LCC ("Local C Compiler" or "Little C Compiler") is a small,
LCC
LCC is intended to be very simple to understand and is well-documented; its design is described in Fraser and Hanson's book A Retargetable C Compiler: Design and Implementation. The book includes most of the source code for version 3.6 of the compiler, which was written as a literate program using noweb. As of July 2011 the current version of LCC is 4.2, but much of the book still applies to this version. The major change since the book was published is in the code-generator interface, which is described in a separate document.[3]
The source code for LCC is around 20,000 lines, which is much smaller than many major compilers.[4]
LCC can generate code for several processor architectures, including Alpha, SPARC, MIPS, and x86; there is also an LCC backend that generates Microsoft's Common Intermediate Language.[5]
Projects incorporating LCC
Quake 3
lcc-win
lcc-win32 is an
Pelles C
Pelles C's compiler is a heavily modified version of LCC providing C11 as well as C17 support, amd64 support, additional optimisation techniques such as inline expansion[8] and an IDE.
MathWorks
For 32-bit Windows machines, Lcc is used as a default if no other compiler is installed for MathWorks MATLAB and related products.[9]
License
LCC is free for personal use and may be redistributed provided all distribution media and product documentation acknowledges it. The LCC license relies on examples in multiple cases. LCC may not be sold for profit, but it may be included with other software that is sold for profit, provided LCC itself is distributed for free. Per user and unlimited use licenses are available by contacting Addison-Wesley, in particular for compilers of languages such as C++ for which a C compiler may constitute much of its work.[1]
See also
- Tiny C Compiler
- Portable C compiler
- Small-C
- Comparison of integrated development environments
References
- ^ a b c "LCC License". GitHub. Retrieved 5 July 2011.
- ^ "Official Github Repository". GitHub.
- ^ Fraser, Christopher W.; Hanson, David R. (July 2001). "The lcc 4.x Code-Generation Interface" (PDF). Microsoft Research. Technical Report MSR-TR-2001-64. Retrieved 5 July 2011.
- ^ 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. [1]
- ^ Hanson, David R. (March 2004). "Lcc.NET: Targeting the .NET Common Intermediate Language from Standard C" (PDF). Microsoft Research. Retrieved 22 July 2012.
- ^ "John Carmack's .plan file, 24 July, 1999". Archived from the original on 2008-05-12.
- ^ lcc-win: A Compiler system for Windows
- ^ Pelles C Overview
- ^ "Build MEX-Files". Archived from the original on 14 September 2012. Retrieved 6 November 2013.
External links
Bibliography
- Fraser, Christopher W.; Hanson, David R. (1995). A Retargetable C Compiler: Design and Implementation. Addison-Wesley. ISBN 0-8053-1670-1.