مبهم کامپایلر C ریز (OTCC) یک کامپایلر بسیار کوچک C I به منظور برنده شدن در این مسابقه بین المللی مبهم C کد (IOCCC) در سال 2002 نوشت.
هدف من این بود که کوچکترین ارسال کامپایلر C است که قادر به خود را کامپایل. من یک زیر مجموعه از C که به اندازه کافی برای نوشتن یک کامپایلر C کوچک به طور کلی بود را انتخاب کنید. سپس من زیر مجموعه C تمدید تا زمانی که من حداکثر اندازه مجاز توسط مسابقه رسیده: 2048 بایت منبع C به استثنای؛ شخصیتهای، '{'، '}' و فضا ''.
من را انتخاب کنید برای تولید کد i386. کد اصلی OTCC تنها می تواند بر روی لینوکس اجرا i386 به دلیل آن را در endianness و دسترسی بی طرف متکی بود. این تولید برنامه در حافظه و به طور مستقیم آن را راه اندازی. علامت های خارجی با dlsym حل و فصل شد ().
به منظور داشتن یک نسخه قابل حمل از OTCC، من یک نوع به نام OTCCELF ساخته شده است. آن است که تنها کمی بزرگتر از OTCC، اما آن را تولید به طور مستقیم یک فایل اجرایی ELF i386 متصل شده پویا از یک منبع C بدون تکیه بر روی هر ابزار Binutils هستند! OTCCELF موفقیت در i386 لینوکس و سولاریس در SPARC مورد آزمایش قرار گرفت.
توجه: پروژه دیگر من TinyCC است که یک کامپایلر کاملا برجسته ISOC99 C با شروع از کد منبع OTCC نوشته شده بود!
ترجمه:
شورای همکاری خلیج فارس -O2 otcc.c -o otcc -ldl
شورای همکاری خلیج فارس -O2 otccelf.c -o otccelf
خود تدوین:
./otccelf otccelf.c otccelf1
جزئیات نرم افزار:
نظر یافت نشد