Tiny C-kompilator | |
---|---|
| |
Sorts | kompilator |
Författare | Fabrice Bellard [1] |
Utvecklaren | Fabrice Bellard |
Skrivet i | C och assemblerspråk |
Operativ system | Linux , Microsoft Windows , KolibriOS |
Första upplagan | 2002 [1] |
Hårdvaruplattform | x86 , ARM och x86_64 |
senaste versionen | 0.9.27 (17 december 2017) |
Licens | GNU LGPL |
Hemsida | bellard.org/tcc/ |
Tiny C Compiler ( Eng. Tiny C Compiler - "tiny C compiler"), eller TinyCC , eller TCC - C - kompilator för x86- plattformen .
Fungerar i OS Linux , KolibriOS [2] , Microsoft Windows . Det finns även versioner för ARM , TMS320C67xx . Distribueras under GNU LGPL -licensen .
Dessutom tillåter närvaron av biblioteket libtccdynamisk kodgenerering. Med detta bibliotek kan användaren till exempel kompilera en sträng som innehåller ett C-program och sedan komma åt valfri global symbol (variabel eller funktion) definierad i programmet. [fyra]
TCC stöder inte bara ANSI C- standarden , utan de flesta av den nya ISO C99-standarden och många GNU C-tillägg , inklusive montering inline. TCC har också sina egna tillägg, såsom en representation av tal i binärt format ( 0b101istället för 5), samt ett fördefinierat makro __TINYC__som kan användas för att avgöra om TCC används. [åtta]
TCC utvecklades ursprungligen för Linux OS , men från och med version 0.9.23 ( 17 juni 2005 ) fungerar det även i Microsoft Windows OS .
Den första versionen av TCC utvecklades som Obfuscated Tiny C Compiler (OTCC). OTCC är ett program skrivet av Fabrice Bellard för att delta i International Obfuscated C Code Contest (IOCCC) 2002 [9] (på tävlingens officiella hemsida är Fabrice Bellard med OTCC-programmet listad bland vinnarna av tävlingen för 2001 [10] .) Sedan dess har Bellar utökat programmets funktionalitet avsevärt och gjort det mer begripligt.
För tillfället fortsätter TCC-projektet att utvecklas. Det finns en aktiv e-postlista, och den aktuella versionen från Fabrice Bellard är tillgänglig via CVS . Den officiella utvecklingen av TCC har dock saktat ner på grund av Bellars sysselsättning med andra projekt. För tillfället (april 2012) hänger ett meddelande på utvecklarens webbplats att han inte längre är engagerad i kompilatorstöd.
Rob Landley, med hjälp av Mercurial SCM , har skapat en version av TCC som innehåller olika tredjepartspatchar.
Utöver de som nämnts ovan finns det andra TCC-modifieringar och patchar, såsom Dave Dodges inofficiella patchsamling , Debian- och kfreebsd -patchar och grischkas GCC - patchar.
I version TCC 0.9.23 upptäcktes en sårbarhet som fick numren CVE-2006-0635 [11] och sårbarhet i Open Source Vulnerability Database 22956 [12] . Rapporten angav att TCC "innehåller en bugg som kan orsaka säkerhetsproblem i program som kompileras med den. Kompilatorn kan inte returnera ett osignerat operatorvärde sizeof, vilket kan leda till heltalsspill i kompilerade objekt." Denna sårbarhet stängdes i version 0.9.24.
Baserat på TCC har starthanteraren TCCBOOT (TinyCC Boot Loader) (engelska) skapats , som låter dig kompilera och starta upp Linux-kärnan direkt från källan.
C programmeringsspråk | |
---|---|
Kompilatorer |
|
Bibliotek | |
Egenheter | |
Några ättlingar | |
C och andra språk |
|
Kategori:C programmeringsspråk |