Apró C fordító

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2018. november 18-án felülvizsgált verziótól ; az ellenőrzések 8 szerkesztést igényelnek .
Apró C fordító

Típusú fordítóprogram
Szerző Fabrice Bellard [1]
Fejlesztő Fabrice Bellard
Beírva C és assembly nyelv
Operációs rendszer Linux , Microsoft Windows , KolibriOS
Első kiadás 2002 [1]
Hardver platform x86 , ARM és x86_64
legújabb verzió 0.9.27 (2017. december 17.)
Engedély GNU LGPL
Weboldal bellard.org/tcc/

Tiny C Compiler ( Eng.  Tiny C Compiler  - "tiny C compiler"), vagy TinyCC vagy TCC  - C fordító x86 platformhoz .

Működik OS Linux , KolibriOS [2] , Microsoft Windows alatt . Léteznek ARM , TMS320C67xx verziók is . Terjesztve a GNU LGPL licenc alatt .

Jellemzők

#!/usr/local/bin/tcc -run [3]

Ezenkívül a könyvtár jelenléte libtcclehetővé teszi a dinamikus kódgenerálást. Ezzel a könyvtárral a felhasználó például lefordíthat egy C programot tartalmazó karakterláncot, majd hozzáférhet a programban definiált bármely globális szimbólumhoz (változóhoz vagy függvényhez). [négy]

Kompatibilitás

A TCC nem csak az ANSI C szabványt támogatja , hanem az új ISO C99 szabvány nagy részét és számos GNU C kiterjesztést , beleértve az inline összeszerelést is. A TCC-nek saját kiterjesztései is vannak, például a számok bináris megjelenítése ( 0b101helyett 5), valamint egy előre meghatározott makró __TINYC__, amely segítségével megállapítható, hogy TCC-t használnak-e. [nyolc]

Fejlesztési előzmények

A TCC-t eredetileg Linux operációs rendszerre fejlesztették ki , de a 0.9.23-as verziótól ( 2005. június 17. ) már Microsoft Windows operációs rendszerben is működik .

A TCC első verzióját az Obfuscated Tiny C Compiler (OTCC) néven fejlesztették ki. Az OTCC egy program, amelyet Fabrice Bellard írt, hogy részt vegyen a 2002 -es International Obfuscated C Code Contest (IOCCC) versenyen [9] (a verseny hivatalos honlapján Fabrice Bellard az OTCC programmal a 2001 -es verseny győztesei között szerepel [10] .) Azóta a Bellar jelentősen kibővítette és érthetőbbé tette a program funkcionalitását.

Jelenlegi állapot

Jelenleg a TCC projekt tovább fejlődik. Van egy aktív levelezőlista, és a Fabrice Bellard aktuális verziója elérhető a CVS -en keresztül . A TCC hivatalos fejlesztése azonban lelassult, mivel Bellar más projektekkel volt elfoglalva. Jelenleg (2012 áprilisában) egy üzenet lóg a fejlesztő honlapján, hogy már nem foglalkozik fordítói támogatással.

Rob Landley a Mercurial SCM segítségével létrehozta a TCC egy olyan verzióját, amely különféle harmadik féltől származó javításokat tartalmaz.

A fent említetteken kívül vannak más TCC-módosítások és javítások is, mint például Dave Dodge nem hivatalos javításgyűjteménye, Debian és kfreebsd javítások , valamint a grischka GCC javításai.

A TCC 0.9.23-as verziójában a CVE-2006-0635 [11] és a nyílt forráskódú sebezhetőségi adatbázis 22956 [12] számú biztonsági rését fedezték fel . A jelentés szerint a TCC „egy olyan hibát tartalmaz, amely biztonsági problémákat okozhat a vele fordított programokban. A fordító nem képes előjel nélküli operátorértéket visszaadni , ami egész számok túlcsordulásáhozsizeof vezethet a lefordított objektumokban." Ezt a biztonsági rést a 0.9.24-es verzió zárta be.

Lásd még

A TCC alapján elkészült a TCCBOOT (TinyCC Boot Loader)  (angol) rendszerbetöltő , amely lehetővé teszi a Linux kernel közvetlen forrásból történő fordítását és indítását.

Linkek

Jegyzetek

  1. 1 2 Obfuscated Tiny C fordító
  2. Tiny C Compiler - Téma megtekintése Archivált : 2014. augusztus 12. a Wayback Machine -nél [1]
  3. Tiny C Compiler referenciadokumentáció, 2.1 Gyorsindítás Archiválva : 2011. szeptember 27. a Wayback Machine -nél  
  4. Tiny C Compiler referenciadokumentáció, 7. A libtcc könyvtár archiválva : 2011. szeptember 27. a Wayback Machine -nél  
  5. Tiny C Compiler archiválva : 2011. április 8. a Wayback Machine -nél  
  6. A Tiny C Compiler fordítási sebessége archiválva 2011. április 8-án a Wayback Machine -nél  
  7. A Tiny C Compiler referenciadokumentációja, 8.8 Optimalizálás megtörtént Archiválva : 2011. szeptember 27. a Wayback Machine -nél  
  8. Tiny C Compiler referenciadokumentáció, 3.4 TinyCC bővítmények Archivált 2011. szeptember 27. a Wayback Machine -nél  
  9. Elhomályosult Tiny C fordító  
  10. Korábbi IOCCC-győztesek (downlink) . Hozzáférés dátuma: 2009. május 13. Az eredetiből archiválva : 2013. október 22. 
  11. CVE-2006-0635 . Letöltve: 2009. május 13. Az eredetiből archiválva : 2016. március 3.
  12. 22956 : A számítási gyengeség apró C-fordító mérete  (lefelé irányuló kapcsolat)