Obfuscated Tiny C Compiler (OTCC) is een zeer kleine C-compiler Ik schreef om de International Obfuscated C Code Contest (IOCCC) in 2002 te winnen.
Mijn doel was de kleinste C compiler die zichzelf kan compileren schrijven. Kies ik een subset van C die algemeen genoeg om een kleine C-compiler te schrijven was. Vervolgens uitgebreid ik de C deelverzameling totdat ik bereikte de maximaal toegestane door de wedstrijd grootte: 2048 bytes van de C source exclusief de ';', '{', '}' en spaties.
Ik kies ervoor om i386 code te genereren. De oorspronkelijke OTCC code kan alleen worden uitgevoerd op i386 Linux omdat het beroep op endianness en niet aangepaste toegang. Genereerde het programma in het geheugen en direct gelanceerd. Externe symbolen werden opgelost met dlsym ().
Om een draagbare versie van OTCC hebben, maakte ik een variant genaamd OTCCELF. Het is alleen een beetje groter dan OTCC, maar het direct genereert een dynamisch gekoppeld i386 ELF executable uit een C bron zonder een beroep op enige binutils gereedschap! OTCCELF werd getest met succes op i386 Linux en Solaris Sparc.
OPMERKING: Mijn andere project TinyCC dat is een volledig functionele ISOC99 C-compiler is geschreven door vanaf de broncode van OTCC!
Compilatie:
gcc -O2 otcc.c -o otcc -ldl
gcc -O2 otccelf.c -o otccelf
Self-compilatie:
./otccelf otccelf.c otccelf1
Software informatie:
Versie: 1.0
Upload datum: 3 Jun 15
Licentie: Gratis
Populariteit: 98
Reacties niet gevonden