Lille C-kompiler

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 18. november 2018; checks kræver 8 redigeringer .
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 .

Funktioner

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

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]

Kompatibilitet

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]

Udviklingshistorie

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.

Nuværende tilstand

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.

Se også

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.

Links

Noter

  1. 1 2 Obfuscated Tiny C Compiler
  2. Tiny C Compiler - Se emne Arkiveret 12. august 2014 på Wayback Machine [1]
  3. Tiny C Compiler Reference Documentation, 2.1 Hurtig start Arkiveret 27. september 2011 på Wayback Machine  
  4. Tiny C Compiler Reference Documentation, 7. Libtcc-biblioteket Arkiveret 27. september 2011 på Wayback Machine  
  5. Tiny C Compiler Arkiveret 8. april 2011 på Wayback Machine  
  6. Tiny C Compiler Compilation Speed ​​​​arkiveret 8. april 2011 på Wayback Machine  
  7. Tiny C Compiler Reference Documentation, 8.8 Optimeringer udført Arkiveret 27. september 2011 på Wayback Machine  
  8. Tiny C Compiler Reference Documentation, 3.4 TinyCC-udvidelser Arkiveret 27. september 2011 på Wayback Machine  
  9. Obfuscated Tiny C Compiler  
  10. Tidligere IOCCC-vindere (downlink) . Dato for adgang: 13. maj 2009. Arkiveret fra originalen 22. oktober 2013. 
  11. CVE-2006-0635 . Hentet 13. maj 2009. Arkiveret fra originalen 3. marts 2016.
  12. 22956: Tiny C Compiler størrelse på beregningssvaghed  (downlink)