Скачать Tiny C Compiler

Скачать Tiny C Compiler.rar
Закачек 2045
Средняя скорость 6264 Kb/s
Скачать

Скачать Tiny C Compiler

Скачать бесплатно компьютерные программы для Windows

Категории программ

Популярные программы

Новые программы

Tiny C Compiler (англ. Tiny C Compiler — «крошечный компилятор Си»), или TinyCC, или TCC — свободный компилятор C для платформы x86.

Работает в операционных системах Microsoft Windows, Linux, KolibriOS. Существуют также версии для ARM, TMS320C67xx. Распространяется по лицензии GNU Lesser General Public License.

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

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

На данный момент проект TCC продолжает развиваться. Существует активный список рассылки, а текущая версия от Фабриса Беллара доступна через CVS. Однако, официальная разработка TCC замедлилась в связи с занятостью Беллара в других проектах. На данный момент апрель 2012 на сайте разработчика висит сообщение, что он больше не занимается поддержкой компилятора.

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

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

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

Особенности Tiny C Compiler

  • От других распространённых компиляторов TCC отличается прежде всего тем, что может исполнять скомпилированную им программу, то есть выполнять функцию интерпретатора.

Данное свойство позволяет использовать язык Си в качестве скриптового языка. Например, для того, чтобы запустить программу на Си в качестве скрипта в оболочке Linux, достаточно вставить в начало текста программы строку: #!/usr/local/bin/tcc -run

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

Исполняемый файл для процессоров x86, включающий препроцессор, компилятор, ассемблер и компоновщик, составляет всего около 100 Кб.

  • Высокая скорость компиляции.

Например, TCC примерно в 9 раз быстрее GCC (GNU Compiler Collection).

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

Оптимизация переходов не производится, так как это потребовало бы организацию промежуточного кода в более абстрактном виде.

Совместимость Tiny C Compiler

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

Последняя версия Tiny C Compiler, выпущенная 20 мая 2009 года.

  • Добавлена поддержка платформы x86-64
  • Добавлена поддержка uClibc
  • Файл tcc.c разбит на несколько: tcc.h libtcc.c tccpp.c tccgen.c tcc.c
  • Улучшен вывод препроцессора, сохраняющий пробелы и номера строк
  • Теперь tcc_relocate копирует код в буфер пользователя
  • Исправлены битовые поля с нецелыми типами и в объединениях
  • Улучшена кросс-компиляция для ARM
  • Улучшенная (но все равно ограниченная) поддержка для TCCStates

Факториал — C, Objective-C (4):

Используется рекурсивное определение факториала.

Hello, World! — C, Objective-C, C++ (191):

Квадратное уравнение — C, Objective-C, C++ (192):

Этот пример работает на C и C++, а также на Objective-C, являющемся строгим надмножеством языка C. В случае C может понадобиться компилировать программу с опцией -lm , чтобы подключить библиотеку математики.

Числа Фибоначчи — C, Objective-C (193):

Используется рекурсивное определение чисел Фибоначчи.

CamelCase — C, Objective-C (273):

Пример основан на посимвольной обработке строки. Функция gets читает строку до конца строки. Следует отметить, что эта функция считается “опасной” из-за отсутствия контроля того, сколько символов введено, и возможных ошибках доступа к памяти. В C нет логического типа данных, поэтому его приходится симулировать целой переменной.

Tiny C Compiler

TCC (Tiny C Compiler) is small, fast, unlimited, and safe. You can compile and execute C code everywhere (e.g., on rescue disks). It generates optimized x86 code, and can compile, assemble, and link several times faster than ‘gcc -O0’.

На нашем сайте Вы можете скачать Tiny C Compiler бесплатно, а также на высокой скорости и без регистрации сможете скачать Tiny C Compiler для Windows 7 или скачать Tiny C Compiler для Windows 10 удобно и быстро, за один клик.

Мы публикуем самый новый, популярный и восстребованный софт и игры, в том числе и Tiny C Compiler на русском языке (если разработчиком предусмотрен такой вариант дистрибутива). Если вы хотите скачать торент Tiny C Compiler, то вам понадобится бит-торрент клиент, наподобии uTorrent.


Статьи по теме