Local C compiler
Encyclopedia
LCC is a small retargetable compiler
Retargetable compiler
In software engineering, retargeting is an attribute of software development tools that have been specifically designed to generate code for more than one computing platform.-Compilers:...

 program for the ANSI C
ANSI C
ANSI C refers to the family of successive standards published by the American National Standards Institute for the C programming language. Software developers writing in C are encouraged to conform to the standards, as doing so aids portability between compilers.-History and outlook:The first...

 programming language. It is available at no charge for personal use but is not free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

. It was developed by Chris Fraser and David Hanson
David Hanson (computer scientist)
David R. Hanson is a Software Engineer at Google, working in programming languages, compilers, software tools, and programming environments. Before joining Google, he was with Microsoft Research, Princeton, University of Arizona, and Yale...

. id Software
Id Software
Id Software is an American video game development company with its headquarters in Richardson, Texas. The company was founded in 1991 by four members of the computer company Softdisk: programmers John Carmack and John Romero, game designer Tom Hall, and artist Adrian Carmack...

's computer game Quake III relies on a modified version of LCC to compile source code for its virtual machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...

.

LCC

LCC is simple to understand and 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
Literate programming
Literate programming is an approach to programming introduced by Donald Knuth as an alternative to the structured programming paradigm of the 1970s....

 using noweb
Noweb
noweb is a literate programming tool, created in 1989–1999 by Norman Ramsey, and designed to be simple, easily extensible and language independent....

. 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, much smaller than many other compilers.
The Tiny C Compiler
Tiny C Compiler
The Tiny C Compiler is an x86 and x86-64 C compiler created by Fabrice Bellard. It is designed to work for slow computers with little disk space . Windows operating system support has been added in version 0.9.23...

 is one of the few compilers smaller than LCC.

LCC is frequently preferred over GCC --
on PC/Windows platforms because LCC-Win32 comes with a nice graphical IDE, and
on new platforms LCC is easier to port than GCC.

LCC can generate code for several processor architectures, including Alpha
DEC Alpha
Alpha, originally known as Alpha AXP, is a 64-bit reduced instruction set computer instruction set architecture developed by Digital Equipment Corporation , designed to replace the 32-bit VAX complex instruction set computer ISA and its implementations. Alpha was implemented in microprocessors...

, SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....

, MIPS
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...

, and x86 (PCs); there is also an LCC backend that generates Microsoft's Common Intermediate Language
Common Intermediate Language
Common Intermediate Language is the lowest-level human-readable programming language defined by the Common Language Infrastructure specification and is used by the .NET Framework and Mono...

.

Lcc-win32

The Lcc-win32 or LccWin32 system is a full featured C Development Environment for the Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

 operating system, written by Jacob Navia. He continued the work of Hanson and Fraser, who wrote the original LCC compiler.

It features:
  • Compiler
  • Linker
  • IDE with integrated resource editor
  • Diverse utilities like a profiler, browser, function call browser and a lot more

Lcc-win64

Under development - can currently successfully compile itself, the IDE (wedit64) and around 550 test files. lcc-win64 will also feature more advanced code optimizations.

License

LCC is free for personal use and may be redistributed with attribution. LCC may not be sold for profit, but it may be included with other software that is sold for profit.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK