Tiny C Compiler یا کامپایلر بسیار کوچک سی (با اسامی مستعار TCC, tCc, TinyCC) کامپایلری است برای زبان سی که بر روی معماریهای ۳۲ و ۶۴ بیتی و پردازندههای ARM قابل استفاده است.
Fabrice Bellard این کامپایلر را به منظور کار با سیستمهایی که فضای دیسک کمی داشته (مثلاً بر روی دیسکهای نجات) و سرعتی پایین دارند طراحی کرده است.
پشتیبانی از سیستمعامل ویندوز از تاریخ ۱۷ جوئن سال ۲۰۰۵ از نسخهی ۰/۹/۲۳ افزوده شده است.
این کامپایلر تحت مجوز LGPL منتشر شده است.
TCC مدعی است تمامی ANSI C، بیشتر استانداردهای C99 ISO و بسیاری از الحاقات زبان سی همانند پشتیبانی از کدهای زبان اسمبلی به صورت درون خطی را پشتیبانی میکند.
قابلیتها:TCC واجد قابلیتهایی است که آن را از سایر کامپایلرهای زبان سی متمایز میسازد:
۱- حجم بسیار پایین این کامپایلر (در حدود ۱۰۰ کیلوبایت برای پردازندههای ۳۲ بیتی) که به این برنامه اجازه میدهد تا مستقیماً بر روی یک فلاپی دیسک ۱/۴۴ مگابایتی (مانند یک دیسک نجات) مورد استفاده قرار گیرد.
۲- TCC برنامههایی Native (مطابق با معماریهای ۳۲ و ۶۴ و ARM) با سرعت بالا تولید میکند، طبق گفتهی سازندهی این کامپایلر فرآینده کامپایل، اسمبل و لینک دهی را حدوداً ۹ بار سریعتر از GCC انجام میدهد.
۳- TCC به برنامهها اجازه میدهد تا (تحت سیستمهای شبه یونیکس که از راهنمای-مفسر shebang پشتیبانی میکنند) به شکل اتوماتیک در زمان کامپایل با استفاده از یک سوییچ خط-فرمان اجرا شوند.
سرعت کامپایل برنامه ها:سرعت کامپایل برای Links Browser project:
این پروژه شامل ۷۶۹۳۶ خط کد (شامل هدرها) میباشد که حدود ۱۹۵۰۹۴۷ خط کامپایل شده است (برخی از هدرها در بسیاری از فایلها تکراری بودهاند) و مشاهده شده است TCC حدوداً ۹ بار سریعتر از GCC عمل میکند.
منابع:
http://bellard.org/tcchttps://en.wikipedia.org/wiki/Tiny_C_Compilerپ.ن: خب، نوشتهی بالا در واقع ترجمهای بود مختصر از صفحهی ویکیپدیا و صفحهی سازندهی کامپایلر، اما در مورد عملکرد برنامههای کامپایل شده با این کامپایلر گفتههای متفاوتی وجود داره.
بنده به شخصه روی سرور koding برنامهی اعداد فیبوناچی رو با هر دو کامپایلر، کامپایل کردم و سرعت محاسبه ۴۰ جملهی اول این دنباله رو اندازهگیری کردم اما تفاوت محسوسی بینشون ندیدم.(برنامهی کامپایل شده با کامپایلر گنو حدود ۱ ثانیه سریعتر محاسبه رو انجام داد).
البته بنده متخصص بررسی عملکرد برنامهها نیستم و از تفاوتهای بنیادین این دو کامپایلر آگاهی ندارم بنابراین نمیتونم نظر کارشناسی بدم و اگر دوستان متخصص در این زمینه نظرات کاملتری رو بیان کنن مطمئنا این تاپیک بربارتر خواهد شد.
پ.ن.۲: اگر یکی از دوستان که کمتر درگیره، لطف کنه صفحهی فارسی این کامپایلر رو در ویکیپدیا ایجاد کنه ممنون میشم.