词条 | LCC (compiler) |
释义 |
| name = LCC | developer = Dave Hanson and Chris Fraser | released = {{Start date and age|1994}} | latest release version = 4.2 | latest release date = {{Start date and age|2002|09|04}} | programming language = C | operating system = Cross-platform | genre = Compiler | license = LCC License[1] | website = {{URL|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,[1] it is not open-source or free software according to the usual definitions because products derived from LCC may not be sold, although components not derived from LCC may be sold.[2] It was developed by Chris Fraser and David Hanson. LCCLCC 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.[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 LCCQuake 3id 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.[6] 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. lcc-winlcc-win32 is an integrated development environment package for Microsoft Windows which includes a fork of LCC. An amd64 counterpart named lcc-win64 exists, which has been available since April 15, 2012.[7]Pelles C[https://www.computerscienceai.com/2019/03/pelles-c.html Pelles C]'s compiler is a heavily modified version of LCC providing C11 support, amd64 support, and additional optimization techniques such as inline expansion.[8] MathworksFor 32-bit Windows machines, LCC is used as a default if no other compiler is installed for MathWorks MATLAB and related products.[9] LicenseLCC 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.[2] References1. ^{{cite web|title=Official Github Repository|url=https://github.com/drh/lcc}} 2. ^1 2 {{cite web |title=LCC License |url=https://github.com/drh/lcc/blob/master/CPYRIGHT |accessdate=5 July 2011}} 3. ^{{cite web |title=The lcc 4.x Code-Generation Interface |last1=Fraser |first1=Christopher W. |last2=Hanson |first2=David R. |date=July 2001 |publisher=Microsoft Research |id=Technical Report MSR-TR-2001-64 |url=http://storage.webhop.net/documents/interface4.pdf |accessdate=5 July 2011}} 4. ^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.[https://books.google.com/books?id=OXyo3om9ZOkC&pg=PA107&dq=LCC+compiler&hl=en&ei=m6rHTqjbKsnFsQKnk5xS&sa=X&oi=book_result&ct=result&resnum=3&ved=0CEMQ6AEwAg#v=onepage&q=LCC%20compiler&f=false] 5. ^{{cite web |title=Lcc.NET: Targeting the .NET Common Intermediate Language from Standard C |last1=Hanson |first1=David R. |date=March 2004 |publisher=Microsoft Research |url=http://storage.webhop.net/documents/msil-spe.pdf |accessdate=22 July 2012}} 6. ^{{cite web|title=John Carmack's .plan file, 24 July, 1999 |url=http://www.team5150.com/~andrew/carmack/johnc_plan_1999.html#d19990724 |archive-url=https://web.archive.org/web/20080512173031/http://www.team5150.com/~andrew/carmack/johnc_plan_1999.html |dead-url=yes |archive-date=2008-05-12 |df= }} 7. ^lcc-win: A Compiler system for Windows 8. ^Pelles C Overview 9. ^{{cite web |url=http://www.mathworks.com/help/matlab/matlab_external/building-mex-files.html |title=Build MEX-Files |accessdate=6 November 2013 |archiveurl=https://web.archive.org/web/20120914063120/http://www.mathworks.com/help/matlab/matlab_external/building-mex-files.html |archivedate=14 September 2012 }} Bibliography
1 : C compilers |
随便看 |
|
开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。