Lille C-kompiler | |
---|---|
| |
Type | compiler |
Forfatter | Fabrice Bellard [1] |
Udvikler | Fabrice Bellard |
Skrevet i | C og assemblersprog |
Operativ system | Linux , Microsoft Windows , KolibriOS |
Første udgave | 2002 [1] |
Hardware platform | x86 , ARM og x86_64 |
nyeste version | 0.9.27 (17. december 2017) |
Licens | GNU LGPL |
Internet side | bellard.org/tcc/ |
Tiny C Compiler ( Eng. Tiny C Compiler - "tiny C compiler"), eller TinyCC eller TCC - C compiler til x86 -platformen .
Virker i OS Linux , KolibriOS [2] , Microsoft Windows . Der er også versioner til ARM , TMS320C67xx . Distribueret under GNU LGPL -licensen .
Tilstedeværelsen af biblioteket libtcctillader også dynamisk kodegenerering. Med dette bibliotek kan brugeren f.eks. kompilere en streng indeholdende et C-program og derefter få adgang til ethvert globalt symbol (variabel eller funktion), der er defineret i programmet. [fire]
TCC understøtter ikke kun ANSI C -standarden , men de fleste af den nye ISO C99-standard og mange GNU C-udvidelser , inklusive montage inline. TCC har også sine egne udvidelser, såsom en repræsentation af tal i binær ( 0b101i stedet for 5), samt en foruddefineret makro __TINYC__, der kan bruges til at bestemme, om TCC bliver brugt. [otte]
TCC blev oprindeligt udviklet til Linux OS , men fra version 0.9.23 ( 17. juni 2005 ) virker det også i Microsoft Windows OS .
Den første version af TCC blev udviklet som Obfuscated Tiny C Compiler (OTCC). OTCC er et program skrevet af Fabrice Bellard for at deltage i International Obfuscated C Code Contest (IOCCC) i 2002 [9] (på konkurrencens officielle hjemmeside er Fabrice Bellard med OTCC-programmet opført blandt vinderne af konkurrencen for 2001 [10] .) Siden dengang har Bellar udvidet programmets funktionalitet betydeligt og gjort det mere forståeligt.
I øjeblikket fortsætter TCC-projektet med at udvikle sig. Der er en aktiv mailingliste, og den aktuelle version fra Fabrice Bellard er tilgængelig via CVS . Den officielle udvikling af TCC er dog bremset på grund af Bellars travlhed med andre projekter. I øjeblikket (april 2012) hænger der en besked på udviklerens hjemmeside om, at han ikke længere er involveret i compilersupport.
Rob Landley har ved hjælp af Mercurial SCM skabt en version af TCC, der indeholder forskellige tredjepartspatches.
Ud over dem, der er nævnt ovenfor, er der andre TCC-modifikationer og patches, såsom Dave Dodges uofficielle patch-samling, Debian- og kfreebsd -patches og grischkas GCC - patches.
I version TCC 0.9.23 blev der opdaget en sårbarhed, der modtog numrene CVE-2006-0635 [11] og Open Source Vulnerability Database-sårbarhed 22956 [12] . Rapporten sagde, at TCC "indeholder en fejl, der kan forårsage sikkerhedsproblemer i programmer, der er kompileret med den. Compileren er ikke i stand til at returnere en usigneret operatorværdi sizeof, hvilket kan føre til heltalsoverløb i kompilerede objekter." Denne sårbarhed blev lukket i version 0.9.24.
Baseret på TCC er TCCBOOT (TinyCC Boot Loader) (engelsk) bootloader blevet oprettet , som giver dig mulighed for at kompilere og starte Linux-kernen direkte fra kilden.
C programmeringssprog | |
---|---|
Kompilere |
|
Biblioteker | |
Ejendommeligheder | |
Nogle efterkommere | |
C og andre sprog |
|
Kategori:C programmeringssprog |