LCC ("Local C Compiler" o "Little C Compiler") es un pequeño compilador reorientable para el lenguaje de programación ANSI C. Aunque su código fuente está disponible sin cargo para uso personal, [2] no es software libre o de código abierto según las definiciones habituales porque los productos derivados de LCC pueden no venderse, aunque pueden venderse componentes no derivados de LCC. [1] Fue desarrollado por Chris Fraser y David Hanson .
Desarrollador (es) | Dave Hanson y Chris Fraser |
---|---|
Versión inicial | 1994 |
Lanzamiento estable | 4.2 / 4 de septiembre de 2002 |
Escrito en | C |
Sistema operativo | Multiplataforma |
Tipo | Compilador |
Licencia | Licencia LCC [1] |
Sitio web | drh |
LCC
LCC tiene la intención de ser fácil de entender y está bien documentado; su diseño se describe en el libro de Fraser y Hanson A Retargetable C Compiler: Design and Implementation . El libro incluye la mayor parte del código fuente de la versión 3.6 del compilador, que fue escrito como un programa alfabetizado usando noweb . En julio de 2011, la versión actual de LCC es 4.2, pero gran parte del libro todavía se aplica a esta versión. El cambio más importante desde que se publicó el libro se encuentra en la interfaz del generador de código, que se describe en un documento separado. [3]
El código fuente de LCC es de alrededor de 20.000 líneas, que es mucho más pequeño que muchos compiladores importantes. [4]
LCC puede generar código para varias arquitecturas de procesador, incluidas Alpha , SPARC , MIPS y x86 ; también hay un backend de LCC que genera el lenguaje intermedio común de Microsoft . [5]
Proyectos que incorporan LCC
Terremoto 3
El motor id Tech 3 de id Software se basa en una versión modificada de LCC para compilar el código fuente de cada módulo de juego o mod de terceros en un código de bytes dirigido a su máquina virtual . [6] Esto significa que los módulos son ajenos al sistema más allá de las llamadas al sistema y el alcance limitado del sistema de archivos ofrecido por el motor, que está destinado a reducir la amenaza que representan los autores de mod maliciosos. Otra consideración es que los juegos y mods escritos para el motor son portátiles sin recompilarse; solo la máquina virtual necesita ser portada a nuevas plataformas para ejecutar los módulos.
lcc-win
lcc-win32 es un paquete de entorno de desarrollo integrado para Microsoft Windows que incluye una bifurcación de LCC. Existe una contraparte de amd64 llamada lcc-win64, que ha estado disponible desde el 15 de abril de 2012. [7]
Pelles C
El compilador de Pelles C es una versión muy modificada de LCC que proporciona compatibilidad con C11 , compatibilidad con amd64 y técnicas de optimización adicionales como la expansión en línea . [8]
Mathworks
Para máquinas Windows de 32 bits, Lcc se usa como predeterminado si no hay ningún otro compilador instalado para MathWorks MATLAB y productos relacionados. [9]
Licencia
LCC es gratuito para uso personal y puede redistribuirse siempre que todos los medios de distribución y la documentación del producto lo reconozcan. La licencia LCC se basa en ejemplos en varios casos. LCC no puede venderse con fines de lucro, pero puede incluirse con otro software que se vende con fines de lucro, siempre que LCC se distribuya de forma gratuita. Las licencias por usuario y de uso ilimitado están disponibles poniéndose en contacto con Addison-Wesley, en particular para compiladores de lenguajes como C ++ para los cuales un compilador de C puede constituir gran parte de su trabajo. [1]
Ver también
- Pequeño compilador de C
- Compilador de C portátil
- Pequeña-C
Referencias
- ^ a b c "Licencia LCC" . Consultado el 5 de julio de 2011 .
- ^ "Repositorio oficial de Github" .
- ^ Fraser, Christopher W .; Hanson, David R. (julio de 2001). "La interfaz de generación de código lcc 4.x" (PDF) . Investigación de Microsoft. Informe técnico MSR-TR-2001-64 . Consultado el 5 de julio de 2011 .
- ↑ Sao-Jie Chen, Guang-Huei Lin, Pao-Ann Hsiung, Yu-Hen Hu. "Co-diseño de software de hardware de una plataforma SOC multimedia". Sección 5.6.1: Infraestructura del compilador de LCC. [1]
- ^ Hanson, David R. (marzo de 2004). "Lcc.NET: Apuntando al lenguaje intermedio común de .NET desde el estándar C" (PDF) . Investigación de Microsoft . Consultado el 22 de julio de 2012 .
- ^ "Archivo .plan de John Carmack, 24 de julio de 1999" . Archivado desde el original el 12 de mayo de 2008.
- ^ lcc-win: un sistema compilador para Windows
- ^ Descripción general de Pelles C
- ^ "Construir archivos MEX" . Archivado desde el original el 14 de septiembre de 2012 . Consultado el 6 de noviembre de 2013 .
Bibliografía
- Fraser, Christopher W .; Hanson, David R. (1995). Un compilador de C retardable: diseño e implementación . Addison-Wesley. ISBN 0-8053-1670-1.