TCc

TCc
Tiny C Compiler
Краткая справка по командам Tiny C Compiler 0.9.23.
Тип компилятор
Разработчик Фабрис Беллар
Написана на C и язык ассемблера
ОС GNU/Linux, Microsoft Windows
Версия 0.9.25 — 20 мая 2009
Лицензия GNU LGPL
Сайт http://bellard.org/tcc/

Tiny C Compiler (англ. Tiny C Compiler — крошечный компилятор Си), или TinyCC, или TCCкомпилятор C для платформы ОС GNU/Linux и Microsoft Windows. Существуют также версии для TMS320C67xx. Распространяется по лицензии GNU LGPL.

Содержание

Особенности

  • От других распространённых компиляторов TCC отличается прежде всего тем, что может исполнять скомпилированную им программу, то есть выполнять функцию интерпретатора. Данное свойство позволяет использовать язык Си в качестве скриптового языка. Например, для того, чтобы запустить программу на Си в качестве скрипта в оболочке Linux, достаточно вставить в начало текста программы строку:
#!/usr/local/bin/tcc -run [1]

Также, наличие библиотеки libtcc позволяет осуществлять динамическую генерацию кода. С помощью этой библиотеки пользователь, например, может скомпилировать строку, содержащую программу на Си, после чего получить доступ к любому глобальному символу (переменной или функции), определенному в программе.[2]

  • Высокая скорость компиляции. Например, TCC примерно в 9 раз быстрее GCC.[4]
  • Возможность формировать код с контролем границ массивов, который можно беспрепятственно использовать вместе с обычным кодом.
  • Возможность напрямую использовать любую динамическую библиотеку.
  • Оптимизация кода ограничена вычислением константных выражений на этапе компиляции, заменой операций умножения и деления операциями сдвига где это возможно, а также некоторыми другими действиями. Оптимизация переходов не производится, так как это потребовало бы организацию промежуточного кода в более абстрактном виде.[5]

Совместимость

TCC поддерживает не только стандарт ANSI C, но и большую часть нового стандарта ISO C99 и многие расширения GNU C, включая ассемблерные вставки. TCC также имеет собственные расширения, например, представление чисел в двоичном коде (0b101 вместо 5).[6]

История развития

TCC первоначально разрабатывался для ОС GNU/Linux, однако начиная с версии 0.9.23 (17 июня 2005) работает и в ОС Microsoft Windows.

Первый вариант TCC был разработан как Obfuscated Tiny C Compiler (OTCC). OTCC — программа, написанная Фабрисом Белларом для участия в конкурсе International Obfuscated C Code Contest (IOCCC) в 2002 году[7]. (На официальном сайте конкурса Фабрис Беллар с программой OTCC числится среди победителей конкурса за 2001 год[8].) С того времени Беллар значительно расширил функционал программы и сделал её более понятной.

Текущее состояние

На данный момент проект TCC продолжает развиваться. Существует активный список рассылки, а текущая версия от Фабриса Беллара доступна через

Rob Landley, используя , создал версию TCC, включающую различные патчи от сторонних разработчиков.

Помимо обозначенных выше существуют и другие модификации TCC и патчи для него, такие как, неофициальная коллекция патчей от Dave Dodge, патчи от Debian и kfreebsd, а также патчи для GCC от grischka.

В версии TCC 0.9.23 была обнаружена уязвимость, получившая номера CVE-2006-0635Б[9] и Open Source Vulnerability Database vulnerability 22956[10]. В отчёте было сказано, что TCC «содержит ошибку, способную вызвать проблемы с безопасностью в программах скомпилированных с его помощью. Компилятор не способен возвращать беззнаковое значение оператора sizeof, что может привести к переполнениям целых чисел в скомпилированных объектах». Эта уязвимость была закрыта в версии 0.9.24.

См. также

На основе TCC создан загрузчик TCCBOOT (TinyCC Boot Loader) (англ.), позволяющий компилировать и загружать ядро Linux непосредственно из исходных текстов.

Ссылки

Примечания


Wikimedia Foundation. 2010.

Смотреть что такое "TCc" в других словарях:

  • Tcc — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. {{{image}}}   Sigles d une seule lettre   Sigles de deux lettres > Sigles de trois lettres …   Wikipédia en Français

  • Tcc — (usado en minúsculas) es un acrónimo de «también conocido como». Es una adaptación del inglés , que corresponde Also Known As, y se utiliza para enumerar los alias con los que una persona, película, libro, lugar, evento, etc es conocido también.… …   Enciclopedia Universal

  • TCC — may refer to: *Taisei Construction Corporation *Taught Course Centre *Texas Cave Conservancy *The Casual Courier *The Children s Channel *The Comedy Channel *Theory of Cryptography Conference *Tiny C Compiler *Toronto Children s Chorus *Toronto… …   Wikipedia

  • TCC — ist die Abkürzung für das Tallahassee Community College ein Technisches Kooperationszentrum den Teltower Carneval Club The Children’s Channel, ein ehemaliges paneuropäischen Kinderprogramm The Clearing Corporation, ein amerikanisches Clearing… …   Deutsch Wikipedia

  • TCC — Tiny C Compiler Краткая справка по командам Tiny C Compiler 0.9.23. Тип компилятор Разработчик Фабрис Беллар Написана на C и язык ассемблера …   Википедия

  • TCC — Las siglas TCC son utilizadas en diferentes ámbitos: En psicología, las siglas TCC hacen referencia a las terapias congitivas. La terapia cognitiva, como una aplicación de la psicología cognitiva, mantiene una concepción psicológica centrada en… …   Wikipedia Español

  • TCC — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom.   Sigles d’une seule lettre   Sigles de deux lettres > Sigles de trois lettres   Sigles de quatre lettres …   Wikipédia en Français

  • TCC — transmission control code; transportation component command …   Military dictionary

  • TCC — Transitional Cell Carcinoma (Medical » Oncology) *** Total Cash Compensation (Business » General) * Trade Compliance Center (Business » International Business) * Torque Converter Clutch (Governmental » Transportation) * Tiny C Compiler (Computing …   Abbreviations dictionary

  • TCC — terminal complement complex; thromboplastic cell component; transcatheter closure; transitional cell carcinoma; transmission control computer [imaging]; trauma center coordination or coordinator; trichlorocarbanilide; triclocarban * * *… …   Medical dictionary

Книги



Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»