*** Welcome to piglix ***

LCC (compiler)

LCC
Developer(s) Dave Hanson and Chris Fraser
Initial release 1994; 23 years ago (1994)
Stable release
4.2 / September 4, 2002; 14 years ago (2002-09-04)
Written in C
Operating system Cross-platform
Type Compiler
License LCC License
Website sites.google.com/site/lccretargetablecompiler/

LCC ("Local C Compiler" or "Little C Compiler") is a small, retargetable compiler for the ANSI C programming language. Although its source code is available at no charge for personal use, it is not open-source or free software according to the usual definitions because products derived from LCC may not be sold. It was developed by Chris Fraser and David Hanson.

LCC is intended to be 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.

The source code for LCC is around 20,000 lines, which is much smaller than many major compilers. The Tiny C Compiler is one of the few compilers smaller than LCC.

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.

id Software's id Tech 3 engine relies on a modified version of LCC to compile the source code of each game module or third-party mod into bytecode targeting its virtual machine. This means that modules are oblivious to the system beyond the system calls and limited file system scope offered by the engine, which is intended to reduce the threat posed by malicious mod authors. Another consideration is that games and mods written for the engine are portable without recompilation; only the virtual machine needs to be ported to new platforms in order to execute the modules.


...
Wikipedia

...