ofuscado C Compiler Tiny (OTCC) es un pequeño compilador de C que escribí con el fin de ganar el Internacional ofuscado C Código Concurso (IOCCC) en 2002.
Mi objetivo era escribir el compilador de C más pequeña que es capaz de compilar en sí. Elijo un subconjunto de C, que fue suficiente para escribir un pequeño compilador de C general. Entonces extendí el subconjunto C hasta que llegué el tamaño máximo autorizado por el concurso: 2048 bytes de fuente C con exclusión de los personajes;, '{', '}' y el espacio ''.
Elijo para generar código i386. El código original OTCC sólo podía ejecutarse en Linux i386 ya que se basó en endianness y acceso no alineado. Generó el programa en la memoria y lo lanzó directamente. Símbolos externos se resolvieron con dlsym ().
Con el fin de tener una versión portátil de OTCC, hice una variante llamada OTCCELF. Es sólo un poco más grande que OTCC, pero genera directamente un ejecutable ELF i386 vinculada dinámicamente desde una fuente de C sin depender de ninguna herramienta binutils! OTCCELF fue probado con éxito en i386 Linux y en Sparc Solaris.
NOTA: Mi otro proyecto TinyCC que es un ISOC99 compilador de C con todas las funciones fue escrito por partir del código fuente de OTCC!
Compilación:
gcc -O2 otcc.c -o OTCC -ldl
gcc -O2 otccelf.c -o otccelf
Auto-compilación:
./otccelf otccelf.c otccelf1
Detalles de software:
Versión: 1.0
Fecha de carga: 3 Jun 15
Licencia: Libre
Popularidad: 98
Comentarios que no se encuentran