"این مقاله در حال ترجمه از ویکی انگلیسی است

لطفا حذف نشود."

Small-C هم زیرمجموعه ای از زبان برنامه نویسی C است که برای میکروکامپیوترهای با منابع محدود و سیستم های تعبیه شده مناسب است و هم اجرای آن زیر مجموعه است. این پیاده سازی که در اصل به عنوان یک کامپایلر اولیه برای سیستم های میکروکامپیوتری موجود در اواخر دهه 1970 و اوایل دهه 1980 ارزشمند بود، به عنوان مثالی به اندازه کافی ساده برای اهداف آموزشی نیز مفید بوده است.

کامپایلر اصلی که به زبان Small-C برای Intel 8080 توسط ران کین نوشته شده بود، در شماره مه 1980 مجله دکتر داب از Computer Calisthenics & Orthodontia ظاهر شد . جیمز ای. هندریکس کامپایلر اصلی را بهبود بخشید و توسعه داد و کتاب راهنمای Small-C را نوشت. رون Small-C را در سیستم SRI International PDP 11/45 Unix با حسابی که توسط John Bass برای توسعه Small C ارائه شده بود، بوت استرپ کرد. کد منبع ارائه شده با مجوز مدیریت در دامنه عمومی منتشر شد .[نیازمند منبع] Small-C برای کامپیوترهای کوچک به روشی مشابه اهمیت GCC برای کامپیوترهای بزرگتر مهم بود. درست مانند همتایان یونیکس خود، کامپایلر کد اسمبلر را تولید می کند که باید توسط اسمبلر موجود به کد ماشین ترجمه شود.

Small-C یک کامپایلر قابل هدف گیری مجدد است. انتقال Small-C فقط مستلزم این است که مولد کد پشتیبان و فراخوانی های رابط کتابخانه به سیستم عامل برای پردازنده هدف بازنویسی شوند.

زیر مجموعه زبان

ویرایش

"در ماه می سال 1980 مجله دکتر داب مقاله ای با عنوان "کامپایلر کوچک C برای دهه 8080" منتشر کرد که در آن ران کین یک کامپایلر کوچک برای زیرمجموعه ای از زبان C ارائه کرد. جالب‌ترین ویژگی کامپایلر علاوه بر اندازه کوچکش، زبانی بود که به آن نوشته شده بود - زبانی که کامپایل می‌کرد. این یک خود کامپایلر بود! (اگرچه این امر امروزه رایج است، اما در آن زمان ایده نسبتاً جدیدی بود. ) با یک الگوریتم ساده و یک گذر، کامپایلر او زبان اسمبلی را برای پردازنده 8080 تولید کرد. به هر حال کوچک بودن، محدودیت هایی داشت. فقط کاراکترها، اعداد صحیح و آرایه‌های تک بعدی از هر نوع را تشخیص می‌دهد. تنها وسیله کنترل حلقه دستور while بود. هیچ عملگر Boolean وجود نداشت، بنابراین عملگرهای منطقی بیتی & (AND) و | (OR) به جای آن استفاده شد. اما حتی با وجود این محدودیت ها، زبان بسیار توانا و استفاده از آن لذت بخش بود، به خصوص در مقایسه با زبان اسمبلی.

ران با درک نیاز به بهبود، من را تشویق کرد تا نسخه دوم را تولید کنم و در دسامبر 1982 آن را نیز در مجله دکتر داب منتشر کرد. کامپایلر جدید Small C را با (1) بهینه سازی کد، (2) مقداردهی اولیه داده ها، (3) کامپایل شرطی، (4) کلاس ذخیره سازی خارجی، (5) دستورات for، do/while، سوئیچ و goto، ( 6) عملگرهای تخصیص ترکیبی، (7) عملگرهای بولی، (8) عملگر مکمل، (9) بلوک متغیرهای محلی، و (10) ویژگی های مختلف دیگر. سپس در سال 1984 ارنست پین و من یک کتابخانه زمان اجرا سازگار با CP/M را برای کامپایلر توسعه و منتشر کردیم. این شامل بیش از 80 تابع بود و بیشتر آنهایی را که در کتابخانه استاندارد ورودی/خروجی یونیکس C وجود داشت، شامل مواردی بود که به محیط CP/M مربوط می‌شدند. این نسخه 2.1 و موضوع کتاب راهنمای The Small C شد. "

همچنین ببینید

ویرایش
  • BDS C (1979) - کامپایلر C برای سیستم های Z80 و 8080
  • MISOSYS C (1985) - کامپایلر C برای TRS-80 (CPU Z80)
  • Tiny C (2002) - کامپایلر C برای کامپیوترهای کند x86 و ARM با فضای کمی دیسک
  • Z88DK – اجرای Cross Small-C برای میکروکامپیوترهای مبتنی بر Z80
  • cc65 – اجرای Cross Small-C برای 6502 کامپیوتر
  • آبی عمیق C – Native Small-C برای خانواده 8 بیتی آتاری
  • AJTravis – Native Small-C برای BBC Micro [۱]

منابع

ویرایش

 

یادداشت

ویرایش

لینک های خارجی

ویرایش
  1. "C compilers for the BBC Computer". Mdfs.net.