ال‌سی‌سی (کامپایلر)

از ویکی‌پدیا، دانشنامهٔ آزاد
LCC
توسعه‌دهنده(ها)Dave Hanson and Chris Fraser
انتشار ابتدایی۱۹۹۴؛ ۳۰ سال پیش (۱۹۹۴-خطا: زمان نامعتبر}})
انتشار پایدار
4.2
۴ سپتامبر ۲۰۰۲؛ ۲۱ سال پیش (۲۰۰۲-04}})
نوشته‌شده باC
سیستم‌عاملCross-platform
گونهCompiler
پروانهLCC License[۱]
وبگاه

کامپایلر LCC ("کامپایلر محلی C" یا "کامپایلر کوچک C") یک کامپایلر کوچک و قابل تعویض هدف برای زبان برنامه نویسی ANSI C است. اگرچه کد منبع آن در سطح استفاده شخصی  بدون در دسترس است، [۲] اما طبق تعاریف رایج، این کامپایلر منبع باز یا یک نرم افزار مجانی نیست زیرا ممکن است محصولاتی که از LCC مشتق می شوند به فروش نرسند ، اگرچه ممکن است اجزای تولید شده از LCC به فروش برسند. این کامپایلر توسط کریس فرازر و دیوید هانسون ساخته شده است. [۱]

LCC[ویرایش]

LCC به قصد معتبرو آسان فهم بودن ساخته شده و طراحی آن در کتاب فرایرز و هانسون به نام "یک کامپایلر قابل انتقال برای C: طراحی و پیاده سازی" به طور کامل شرح داده شده است. این کتاب شامل اکثر کد های منبع نسخه ی 3.6 این کامپایلر است  که به عنوان یک برنامه ی کامپیوتری که که شامل توضیحی از منطق زبان طبیعی اش است و از noweb  استفاده می کند، نوشته شده است. با اینکه در جولای سال 2011 نسخه ی 4.2  آن به بازار آمده ، با این حال بیشتر کتاب ها کماکان از نسخه ی 3.6  استفاده می کنند. بزرگترین تغییر از زمان انتشار این کتاب ، رابط مولد کد آن است که در یک سند جداگانه توضیح داده شده است.[۳]

کد منبع این کامپایلر حدود 20000 خط است که بسیار کمتر نسبت به کد خیلی از کامپایلر های اصلی است. [۴]

LCC می تواند برای پردازنده های مختلفی مانند Alpha ، SPARC ، MIPS و x86 کد تولید کند. همچنین یک LCC وجود دارد کهزبان واسط رایج ماکروسافت مایکروسافت را تولید می کند. [۵]

پروژه های ترکیبی با LCC[ویرایش]

زلزله 3[ویرایش]

شناسه نرم افزار ، شناسه فناوری 3 موتوره متکی به یک نسخه اصلاح شده از LCC است که کد منبع هر یک از ماژول بازی و یا اصلاح شخص ثالث ( در بازی های کامپیوتری) را به به بایت کد با هدف قرار دادن آن در ماشین مجازی ، کامپایل می کند. [۶] این بدان معنی است که ماژول ها از فراخوانی های سیستمی و محدوده فایل سیستم ارائه شده توسط موتور ، بی خبر هستند، که به منظور کاهش تهدید ایجاد شده توسط نویسندگان مخرب است. نکته دیگر این است که بازی ها و اصلاحات نوشته شده برای موتور قابل حمل و بدون جبران هستند. تنها نیازاست ماشین مجازی به منظور اجرای ماژول ها ، به سیستم عامل های جدید منتقل شود.

LCC برنده[ویرایش]

lcc-win32 یک بسته محیط توسعه یکپارچه برای مایکروسافت ویندوز است که شامل یک کپی از کد منبع LCC است. یک همتای amd64 با نام lcc-win64 وجود دارد ، که از تاریخ 15 آوریل 2012 در دسترس است. [۷]

Pelles C[ویرایش]

کامپایلر Pelles C یک نسخه ی اصلاح شده از LCC است که از C11 ، amd64 و دیگر تکنیک های بهینه سازی مانند گسترش درون خطی پشتیبانی می کند.[۸]

کارهای ریاضی[ویرایش]

برای دستگاه های ویندوز 32 بیتی ، در صورتی که هیچ کامپایلر دیگری برای MathWorks MATLAB و محصولات مرتبط آن نصب نشده باشد ،LCC به صورت پیش فرض استفاده می شود. [۹]

مجوز[ویرایش]

LCC برای استفاده ی شخصی مجانی است و ممکن است اگر تمام واسط های توزیع و مستند سازی محصول آن را تایید کنند ، دوباره توزیع شود. مجوز LCC به مثال هایی در موارد متعددی متکی است. LCC ممکن است اگر به تنهایی فروخته شود سودی نداشته باشد اما ممکن است به نرم افزار های دیگری که برای سود دهی فروخته می شوند ، اضافه شود ؛ در صورتی که خود LCC به صورت ایگان توزیع شده باشد. هر کاربر و مجوز های استفاده ی نا محدود به وسیله ی ارتباط با Addison-Wesley در دسترس است ، به ویژه برای کامپایلر زبان هایی مانند ++C که یک کامپایلر C می تواند بخش اعظم کار آن را تشکیل دهد.

همچنین ببینید[ویرایش]

MinGW64/MSYS2 ، یک درگاه GCC برای Win32/64 ، کامپایلر منبع باز ، به علاوه ی سیستم ساخت GNU و بسیاری از پوسته ی ابزار ها و کتابخانه ها و پکیج های از پیش کامپایل شده.

منابع[ویرایش]

  1. ۱٫۰ ۱٫۱ "LCC License". Retrieved 5 July 2011.
  2. "Official Github Repository".
  3. Fraser, Christopher W.; Hanson, David R. (July 2001). "The lcc 4.x Code-Generation Interface" (PDF). Microsoft Research. Technical Report MSR-TR-2001-64. Retrieved 5 July 2011.
  4. Sao-Jie Chen, Guang-Huei Lin, Pao-Ann Hsiung, Yu-Hen Hu. "Hardware software co-design of a multimedia SOC platform". Section 5.6.1: LCC Compiler Infrastructure.
  5. Hanson, David R. (March 2004). "Lcc.NET: Targeting the .NET Common Intermediate Language from Standard C" (PDF). Microsoft Research. Retrieved 22 July 2012.
  6. "John Carmack's .plan file, 24 July, 1999". Archived from the original on 2008-05-12.
  7. lcc-win: A Compiler system for Windows
  8. Pelles C Overview
  9. "Build MEX-Files". Archived from the original on 14 September 2012. Retrieved 6 November 2013.

کتابشناسی - فهرست کتب[ویرایش]