sotkettu Tiny C Compiler (OTCC) on hyvin pieni C-kääntäjä Kirjoitin voittaakseen kansainvälisen sotkettu C Code Contest (IOCCC) vuonna 2002.
Tavoitteenani oli kirjoittaa pienin C-kääntäjä, joka pystyy kokoamaan itselleen. Valitsen osajoukko C, joka oli yleinen tarpeeksi kirjoittaa pienen C-kääntäjä. Sitten minä laajennettu C osajoukko kunnes pääsin maksimikoko valtuuttama kilpailu: 2048 tavua C lähde pois ",", "{", "}" ja välilyöntejä.
Minä valitsen tuottaa i386 koodia. Alkuperäinen OTCC koodia voi vain ajaa i386 Linux, koska se tukeutui endianness ja suuntautumatonta pääsy. Se syntyy ohjelman muistiin ja käynnisti sen suoraan. Ulkoiset symboleita ratkaistiin kanssa dlsym ().
Jotta on kannettava versio OTCC, tein varianttia kutsutaan OTCCELF. Se on vain hieman suurempi kuin OTCC, mutta se tuottaa välittömästi dynaamisesti yhteydessä i386 ELF suoritettavan välillä C lähteestä turvautumatta mitään binutils työkaluja! OTCCELF testattiin onnistuneesti i386 Linux ja Sparc Solaris.
HUOMAUTUS: Toinen hanke TinyCC joka on täysin varustellun ISOC99 C-kääntäjä on kirjoittanut alkaen lähdekoodin OTCC!
Compilation:
gcc -O2 otcc.c -o otcc -ldl
gcc -O2 otccelf.c -o otccelf
Self-kokoelma:
./otccelf otccelf.c otccelf1
Ohjelmiston tiedot:
Kommentteja ei löytynyt