stringtranslate.com

LCC (compilador)

LCC ("Local C Compiler" o "Little C Compiler") es un compilador pequeño y redirigido 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 no pueden venderse, aunque sí pueden venderse componentes no derivados de LCC. [1] Fue desarrollado por Chris Fraser y David Hanson .

CCL

LCC está pensado para ser muy sencillo 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 se escribió como un programa alfabetizado utilizando noweb . A julio de 2011, la versión actual de LCC es la 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 está en la interfaz del generador de código, que se describe en un documento independiente. [3]

El código fuente de LCC tiene alrededor de 20.000 líneas, lo que es mucho más pequeño que el de 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 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 bytecode dirigido a su máquina virtual . [6] Esto significa que los módulos son ajenos al sistema más allá de las llamadas del sistema y el alcance limitado del sistema de archivos ofrecido por el motor, lo que tiene como objetivo reducir la amenaza que plantean los autores de mods maliciosos. Otra consideración es que los juegos y mods escritos para el motor son portátiles sin recompilación; 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 amd64 llamada lcc-win64, que está 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 y C17 , compatibilidad con amd64, técnicas de optimización adicionales como expansión en línea [8] y un IDE .

Trabajos matemáticos

Para máquinas Windows de 32 bits, Lcc se utiliza como predeterminado si no hay 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 múltiples casos. LCC no puede venderse con fines lucrativos, pero puede incluirse con otro software que se venda con fines lucrativos, siempre que LCC se distribuya de forma gratuita. Hay licencias por usuario y de uso ilimitado disponibles poniéndose en contacto con Addison-Wesley, en particular para compiladores de lenguajes como C++, para el que un compilador de C puede constituir gran parte de su trabajo. [1]

Véase también

Referencias

  1. ^ abc "Licencia LCC". GitHub . Consultado el 5 de julio de 2011 .
  2. ^ "Repositorio oficial de Github". GitHub .
  3. ^ Fraser, Christopher W.; Hanson, David R. (julio de 2001). "La interfaz de generación de código lcc 4.x" (PDF) . Microsoft Research. Informe técnico MSR-TR-2001-64 . Consultado el 5 de julio de 2011 .
  4. ^ Sao-Jie Chen, Guang-Huei Lin, Pao-Ann Hsiung, Yu-Hen Hu. "Codiseño de hardware y software de una plataforma SOC multimedia". Sección 5.6.1: Infraestructura del compilador LCC. [1]
  5. ^ Hanson, David R. (marzo de 2004). "Lcc.NET: Targeting the .NET Common Intermediate Language from Standard C" (PDF) . Microsoft Research . Consultado el 22 de julio de 2012 .
  6. ^ "Archivo .plan de John Carmack, 24 de julio de 1999". Archivado desde el original el 12 de mayo de 2008.
  7. ^ lcc-win: Un sistema de compilación para Windows
  8. ^ Descripción general de Pelles C
  9. ^ "Crear archivos MEX". Archivado desde el original el 14 de septiembre de 2012. Consultado el 6 de noviembre de 2013 .

Enlaces externos

Bibliografía