Tiny C Compiler

Tiny C Compiler
Screenshot
開発元 ファブリス・ベラール
最新版
0.9.27 / 2017年12月17日 (7年前) (2017-12-17)
リポジトリ repo.or.cz/w/tinycc.git
プログラミング
言語
CAssembly[要出典]
対応OS Linux, Unix, Windows
前身 OTCC, Obfuscated Tiny C Compiler[1]
種別 C compiler
ライセンス LGPLv2.1
公式サイト www.tinycc.org
テンプレートを表示

Tiny C Compiler(タイニーシーコンパイラー、「TCC」とも)はファブリス・ベラールによって作成されたx86x86-64ARMアーキテクチャ用のC言語コンパイラである。名前の通りとても小さく、ディスク容量が小さいコンピューターでも動作するように設計されている。Windowsのサポートについてはバージョン0.9.23から追加されている。ライセンスはLGPLライセンスが付与されている。

特徴

TCCには現行のコンパイラとは異なる特徴として以下のような特徴がある。

  • ファイルサイズが小さく(x86用のものは約100KB)、メモリー・フットポイントも小さいため、1.44MBのレスキューディスクのフロッピーディスクからでも使用することができる。
  • TCCはネイティブのx86、x86-64、ARMアーキテクチャのためのコードを素早く生成することを目的としている。ベラールによると、コンパイル、アセンブル、そしてリンクはGCCよりも約9倍高速であるという[2]。2023年の「mob」ブランチには、RISC-Vと「TMS320C67xxチップ」のサポートも含まれている。
  • コードの安定性を向上させるためのオプションのメモリやバインドチェッカーなど、実用性の向上を目的とした固有の機能がある。

コンパイルしたプログラムの性能

TCCでのコンパイルでは、他のコンパイラのように最適化等を行うことはない。これは、性能よりもコンパイラの小ささに重点をおいているためである。TCCは独自にすべての文(ステートメント)を独自にコンパイルし、各の最後でレジスタの値がスタックに戻されるため、次の行でレジスタ内の値が使用されている場合でも再読み取りする必要がある。

使用例

  • TCCBOOT[3]は、改変を行いLinuxカーネルをソースから約10秒でロードして起動するようにしたもの。Linuxカーネルのソースコードをディスクから読み取り、実行可能命令をメモリに書き込み実行する仕組みだが、実現のためには、Linuxのビルド方法の変更が必要だった。
  • TCCはGCCのコンパイルに使用されていたが、正常に機能させるには多くの改良が必要だった[4]
  • TCCはバックドアの防御の検証用に使われる。これは、バイナリを使用せずにディストリビューションブートストラップ可能にするために、GNU Guix[5]でも使用されている[6]
  • C言語を使用するPythonライブラリのCinpy[7]は関数の実行時にTCCを使用してコンパイルを行う。コンパイルした結果は、ctypesライブラリを使用してPython上で呼び出しが可能となる。
  • ベラールの開発した「JavaScript Linux」に標準搭載されている[8]
  • 「Super Micro-Max Chess」での、見本として使用されている[9]
  • 「学習用C言語開発環境」で、コンパイラとして採用されている[10]

歴史

TCCは、2001年に国際難読化Cコードコンテストにて、ベラールが作成したプログラムであるObfuscated Tiny C Compiler (OTCC)が原型となっている。その後、難読化を解除し、機能を拡張したものがTCCとなった。


ベラールがプロジェクトを離れてから、様々な個人やコミュニティがTCCの修正や配布を行いTCCのフォークを維持していた。これらの中には「Dave Dodge's collection of unofficial tcc patches」[11]や、Debianとkfreebsのダウンストリームパッチ[12]、「grischka's gcc patches」などがある。また、Grischkaのブランチはいくつもの貢献があったため、のちの公式TCCブランチとなった[13]

現在

2017年の12月では、TCCの公式メーリングリスト[14]とGitの公式リポジトリでは、活発な議論や開発が行われている。

関連項目

脚注・出典

  1. ^ Bellard, Fabrice. Obfuscated Tiny C Compiler, winning entry of IOCCC 2001. https://bellard.org/otcc/ and at the Internet Archive at https://web.archive.org/web/20130721162702/http://www.ioccc.org/2001/
  2. ^ TCC : Tiny C Compiler”. bellard.org. 27 March 2023閲覧。
  3. ^ TCCBOOT: TinyCC Boot Loader”. bellard.org. 27 March 2023閲覧。
  4. ^ tinycc-devel (thread)”. lists.gnu.org. 27 March 2023閲覧。
  5. ^ Guix Further Reduces Bootstrap Seed to 25% — 2020 — Blog — GNU Guix”. 2023年11月13日閲覧。
  6. ^ Bootstrappable builds”. bootstrappable.org. 29 March 2023閲覧。
  7. ^ Cinpy”. 20 November 2008時点のオリジナルよりアーカイブ。27 March 2023閲覧。
  8. ^ JSLinux”. bellard.org. 27 March 2023閲覧。
  9. ^ Super Micro Chess”. SourceForge. 27 March 2023閲覧。
  10. ^ MMGames. “学習用C言語開発環境 Ver 0.1.13 - 苦しんで覚えるC言語”. 9cguide.appspot.com. 2023年11月12日閲覧。
  11. ^ Unofficial tcc Patches”. www.dododge.net. 31 March 2007時点のオリジナルよりアーカイブ。27 March 2023閲覧。
  12. ^ Debian -- Details of package tcc in sid”. packages.debian.org. 27 March 2023閲覧。
  13. ^ Tiny C Compiler - Summary [Savannah]”. savannah.nongnu.org. 27 March 2023閲覧。
  14. ^ tinycc-devel Archives”. lists.gnu.org. 27 March 2023閲覧。

外部リンク

Read other articles:

1966 Trampoline World Championships← London 1964London 1967 → The 3rd Trampoline World Championships were held in Lafayette, Louisiana, United States from April 29 to April 30, 1966. Results Men Trampoline Rank Country Gymnast Point  United States Wayne Miller 46.70  South Africa Spenser Wiggins 43.80  West Germany Michael Budenburg 43.70 4  South Africa Ian McNaughton 43.55 5  United States David Jacobs 42.70 6  Australia Billy Popiwenko 40...

 

Mazmur 124Naskah Gulungan Mazmur 11Q5 di antara Naskah Laut Mati memuat salinan sejumlah besar mazmur Alkitab yang diperkirakan dibuat pada abad ke-2 SM.KitabKitab MazmurKategoriKetuvimBagian Alkitab KristenPerjanjian LamaUrutan dalamKitab Kristen19← Mazmur 123 Mazmur 125 → Mazmur 124 (disingkat Maz 124 atau Mz 124; penomoran Septuaginta: Mazmur 123) adalah sebuah mazmur dalam bagian ke-5 Kitab Mazmur di Alkitab Ibrani dan Perjanjian Lama dalam Alkitab Kristen. Digubah oleh Daud.&...

 

Forsränningen i Uppsala Forsränningen i Uppsala 2015Officiellt namnForsränningenPlatsFyrisånTidpunkt30 aprilÅr1975-nuArrangörUppsala teknolog- och naturvetarkårWebbplatshttp://forsranningen.utn.se Arrangören UTN:s flotte, 2015 Forsränning 2005 2015 2015 2015 Forsränningen är ett studentdrivet arrangemang som äger rum i Uppsala den sista april varje år. Forsränningen föregås av Forsfestivalen där flottarna byggs. Forsränningen och Forsfestivalen arrangeras av Uppsala teknolog...

Jelena Rozga Información personalNacimiento 23 de agosto de 1977 (46 años)Split (Dalmacia, Croacia) Residencia Split Nacionalidad Croata (desde 1991)Características físicasAltura 1,7 m Peso 60 kg FamiliaPareja Stjepan Hauser (2015-2017) Información profesionalOcupación Cantante Años activa desde 1996Género Pop Instrumento Voz Discográficas Hit RecordsCroatia RecordsMenart RecordsIDJ Tunes Sitio web www.jelenarozga.com [editar datos en Wikidata] Jelena Ro...

 

وليام بي بر (بالإنجليزية: William Barr)‏  معلومات شخصية الميلاد 23 مايو 1950 (العمر 73 سنة)مدينة نيويورك مواطنة الولايات المتحدة  الأب دونالد بار  مناصب نائب المدعي العام للولايات المتحدة   في المنصب26 مايو 1990  – 26 نوفمبر 1991  نائب عام الولايات المتحدة   في المنصب16 أغس...

 

Computational problem Boolean example circuit The Circuit Value Problem (or Circuit Evaluation Problem) is the computational problem of computing the output of a given Boolean circuit on a given input. The problem is complete for P under uniform AC0 reductions. Note that, in terms of time complexity, it can be solved in linear time simply by a topological sort. The Boolean Formula Value Problem (or Boolean Formula Evaluation Problem) is the special case of the problem when the circuit is a tr...

A finales de enero de 2016, una ola de frío afectó a gran parte de Asia Oriental, registrando temperaturas frías y nevadas en varias regiones, muchas de las cuales vieron sus temperaturas más frías en décadas. Se reportó que el fenómeno aguanieve sucedió por primera vez en la historia de Okinawa. Las fuertes nevadas y el gélido clima vararon a miles de personas a través de cuatro países. En Taiwán, por lo menos 85 personas murieron por hipotermia y paro cardiaco después de ...

 

Wiess School of Natural SciencesMottoThe Frontiers of KnowledgeTypePrivateEstablished1912DeanThomas C. KillianLocationHouston, Texas, United States29°43′09″N 95°24′05″W / 29.7191°N 95.4013°W / 29.7191; -95.4013AffiliationsRice UniversityWebsite[1] [2] The Wiess School of Natural Sciences is an academic school at Rice University in Houston, Texas. It comprises the departments of BioSciences (a merging of Biochemistry and Cell Biology and Ecology and Evolutio...

 

Keuskupan Agung EdmontonArchidioecesis EdmontonensisKatolik Lambang Keuskupan Agung EdmontonLokasiNegara KanadaProvinsi gerejawiAlbertaStatistikLuas81.151 km2 (31.333 sq mi)Populasi- Total- Katolik1.557.922368,545 (23.7%)Paroki129Sekolah10Imam96InformasiDenominasiKatolik RomaRitusRitus RomaPendirian1912-11-30KatedralBasilika Santo YosefKepemimpinan kiniPausFransiskusUskup AgungRichard William SmithSitus webcaedm.ca Keuskupan Agung Edmonton (bahasa Latin...

  لمعانٍ أخرى، طالع تاكيشي أونو (توضيح). تاكيشي أونو (باليابانية: 小野剛)‏  معلومات شخصية الميلاد 17 أغسطس 1962 (61 سنة)  تشيبا  الجنسية اليابان  المدرسة الأم جامعة تسوكوبا  مسيرة الشباب سنوات فريق 1978–1980 Chiba Funabashi High School 1981–1984 جامعة تسوكوبا الفرق التي دربها سنوات ...

 

2018 studio album by Willie NelsonMy WayStudio album by Willie NelsonReleasedSeptember 14, 2018StudioEastWest, Los AngelesGenreCountry, Traditional popLength35:25LabelLegacy RecordingsProducerBuddy Cannon, Matt RollingsWillie Nelson chronology Last Man Standing(2018) My Way(2018) Ride Me Back Home(2019) Singles from My Way Summer WindReleased: July 19, 2018[1] I'll Be AroundReleased: August 24, 2018[2] One for My Baby (And One More for the Road)Released: September 10, ...

 

American professional wrestler (1977–2020) XavierXavier in 2007Birth nameJohn Jairo Bedoya Jr.Born(1977-12-28)December 28, 1977[1]Queens, New York, United States[1]DiedAugust 16, 2020(2020-08-16) (aged 42)Pawtucket, Rhode Island, United States[2]Professional wrestling careerRing name(s)Johnny JirusJohn XavierJuan XavierXavierBilled height5 ft 9 in (1.75 m)Billed weight215 lb (98 kg)Billed fromHartford, ConnecticutTrained byTony DeVitoDeb...

Egyptian queen For other Egyptian ladies called Ankhesenpepi, see Ankhesenpepi. Ankhesenpepi IVResting placePyramid in SaqqaraOccupationQueen of EgyptSpousePepi IIChildrenNeferkare Ruins of the pyramid of Pepi II, near which Ankhesenpepi IV was buried - in the mortuary temple of Queen Iput II Ankhesenpepiin hieroglyphs Era: Old Kingdom(2686–2181 BC) Ankhesenpepi IV was an ancient Egyptian queen, a wife of Pharaoh Pepi II of the Sixth Dynasty. She was the mother of a crown prince Neferk...

 

Occidental Petroleum CorporationJenisPublikKode emitenNYSE: OXYKomponen S&P 500IndustriMinyak dan gasDidirikanJuni 1920Kantorpusat5 Greenway Plaza, Suite 110Houston, Texas, 77046TokohkunciStephen I. Chazen(Presiden & CEO hingga 2016)[1]ProdukMinyak bumi, gas alam, petrokimiaProduksi680 ribu barel of ekivalen minyak (4.200.000 GJ) tiap hari (Q4 2015)[2]Pendapatan US$12,699 milliar (2015)[2]Laba bersih -US$7,829 miliar (2015)[2]Total aset US$43,...

 

Capitalism featuring undue alliances between business interests and politicians This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Crony capitalism – news · newspapers · ...

Breed of sheep A Torddu Badgerface Welsh Mountain ewe in Wales A Torwen Badger Face Welsh Mountain sheep, showing white belly and face markings A flock of Torwen Badger Face Welsh Mountain The Badger Face Welsh Mountain (Welsh Defaid Idloes [ˈdevaɪd ˈɪdlɔɪs]; also known as Badger Faced Welsh Mountain or Welsh Badger-faced) is a distinct variety of the Welsh Mountain breed of domestic sheep bred for sheep farming in Wales.[1] It is a hardy upland breed known for producing...

 

1935 film by Grigori Kozintsev and Leonid Trauberg The Youth of MaximFilm posterDirected byGrigori KozintsevLeonid TraubergWritten byGrigori KozintsevLeonid TraubergStarringBoris ChirkovCinematographyAndrei MoskvinProductioncompanyLenfilmRelease date 27 January 1935 (1935-01-27) Running time(98 minutes)CountrySoviet UnionLanguageRussian The Youth of Maxim The Youth of Maxim (Russian: Юность Максима) is a 1935 Soviet historical drama film directed by Grigori Kozints...

 

State park in South Carolina, United States Givhans Ferry State ParkEdisto River in Givhans Ferry State ParkNearest cityRidgeville, SCCoordinates33°01′56″N 80°22′38″W / 33.032125°N 80.377228°W / 33.032125; -80.377228Area988 acres (4 km2)Created1934Camp sitestent and RV sites, primitive group camping area, cabinsHiking trails1.5 mile long River Bluff Nature Trail Givhans Ferry State Park is a state park located near the town of Ridgeville in Dorche...

British experimental infantry tank Tank, Heavy Assault, A33 (Excelsior) TypeAssault tank/infantry tankPlace of originUnited KingdomProduction historyManufacturerEnglish ElectricNo. built2Specifications (Second pilot)Mass40 tonsLength22 ft 8 in (6.9 m)Width11 ft 2 in (3.4 m)Height7 ft 11 in (2.4 m)Crew5 (Commander, gunner, loader, driver, co-driver)Armour20 to 114 mm (0.79 to 4.49 in)MainarmamentOrdnance QF 75 mm 64 roundsSecondaryarmament2 x 7.92 mm Besa machine gunEn...

 

Genus of gastropods Trabecula shell of Trabecula aequilibritas (holotype at MNHN, Paris) Scientific classification Domain: Eukaryota Kingdom: Animalia Phylum: Mollusca Class: Gastropoda Subclass: Heterobranchia Subcohort: Panpulmonata Superfamily: Pyramidelloidea Family: Pyramidellidae Genus: TrabeculaMonterosato, 1884 [1] Type species Trabecula jeffreysianaMonterosato, 1884 Synonyms[2] Chrysallida (Trabecula) Monterosato, 1884 Odostomia (Salassiella) Dall & Bartsch, 1909 ...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!