تبیان، دستیار زندگی
ماشین چطور کدهایی که به زبان های مختلف می نویسید را متوجه می شود؟ برای پاسخ دادن به این سوال باید با کامپایلرها آشنا شوید...
عکس نویسنده
عکس نویسنده
بازدید :
زمان تقریبی مطالعه :

مقدمه ای بر کامپایلرها


ماشین چطور کدهایی که به زبان های مختلف می نویسید را متوجه می شود؟ برای پاسخ دادن به این سوال باید با کامپایلرها آشنا شوید.

زبان های برنامه سازی مختلفی را می توان جهت نوشتن برنامه در یک کامپیوتر به کار برد. نزدیکترین زبان برنامه نویسی به سخت افزار ماشین موسوم به زبان ماشین یا Machine Language است، زبان ماشین مجموعه ای از دستورالعمل های نسبتا پیچیده را مورد استفاده قرار می دهد که صرف نظر از کاربردهای ویژه آن، امروزه به ندرت از این زبان به عنوان زبان برنامه نویسی استفاده می شود. عمده ترین دلایل آن پیچیدگی کار و وابستگی آن به سخت افزار است زیرا نرم افزارهای تهیه شده برای یک کامپیوتر خاص را نمی توان بر روی مدل دیگری از کامپیوتر بدون تغییرات عمده و اساسی، بکار برد. زبان های اسمبلر به زبان های سطح پایین نیز موسوم می باشند.

مقدمه ای بر کامپایلرها

معمولا زبان های سطح بالاتر معمول ترین زبان های برنامه سازی بوده و دستور العمل های آنها به جملات معمول در محاوره به زبان انگلیسی نزدیکتر است. متداول ترین زبان های برنامه سازی همه منظوره عبارتند از: C، PASCAL، PL/1، BASIC، FORTRAN و COBOL که متعاقب آنها نسل جدیدتری از زبان های همه منظوره بر اساس تکنولوژی شی گرا از جمله C++، Java و C# به بازار عرضه شده اند.

علاوه بر زبان های همه منظوره فوق، زبان هایی با کاربرد ویژه متشکل از دستور العمل های خاص نیز وجود دارند. از جمله معروف ترین این زبان ها می توان به GPSS و  CSMP به عنوان زبان های شبیه سازی و LISP که یک List-Processor با کاربردهای وسیعی در زمینه کاربردهای هوش مصنوعی می باشد اشاره نمود.

با گسترش کاربردهای اینترنت امروزه، زبان هایی همچون HTML، DHTML، XML و Javascript نیز در طراحی صفحات وب و برنامه های کاربردی تحت وب از جایگاه ویژه ای برخوردارند.

مقدمه ای بر کامپایلرها

اگرچه دستورالعمل در زبان های سطح بالا خود به چندین دستور العمل زبان های سطح پایین تبدیل می گردند، اما بکارگیری زبان های سطح بالا به مراتب ساده تر از زبان ماشین می باشد. از دیگر مزایای زبان های سطح بالا نسبت به زبان های سطح پایین یکنواختی و قابلیت حمل نرم افزار از یک سخت افزار به سخت افزار دیگر را می توان نام برد.

برنامه ای که به زبان سطح بالا نوشته شده باشد قبل از اجرا به هر حال باید به زبان ماشین ترجمه شود. عمل ترجمه یک زبان سطح بالا به زبان ماشین توسط مترجم یا Compiler و در برخی موارد توسط مفسر یا Interpretor انجام می پذیرد

کامپایلرها قبل از اجرای برنامه تمامی کدینگ برنامه را به زبان ماشین ترجمه می کنند. در حالی که مفسرها عمل ترجمه و اجرا را تواما برای هر دستور العمل و یا گروه کوچکی از دستورالعمل ها انجام می دهند. به هر حال در دو روش عمل ترجمه به زبان ماشین به طور اتوماتیک در داخل کامپیوتر انجام می پذیرد، به نحوی که بسیاری از برنامه نویسان مبتدی بدون آنکه اجرای چنین فرآیندی را احساس نمایند تنها اجرای برنامه سطح بالا، ورود داده ها و خروجی آنها را مشاهده می کنند.

لیست یک برنامه سطح بالا که به عنوان ورودی به یک کامپایلر جهت ترجمه داده می شود، موسوم به Source Program و نتیجه عمل که برنامه ای به زبان ماشین می باشد، موسوم به Object Program می باشد

C زبانی است همه منظوره و ساخت یافته. دستور العمل های زبان C شبیه به عبارات جبری همراه با کلماتی نظیر if، else، for، do و while می باشد. زبان C  علاوه بر آنکه یک زبان سطح بالا محسوب می شود، قابلیت های یک زبان سطح پایین را نیز دارا بوده و از این رو نسبت به سایر زبان های برنامه نویسی دارای توانایی بیشتری است. این ویژگی و سایر خصوصیات زبان C، آن را به صورت یک زبان ایده آل برای برنامه نویسان سیستم و برنامه نویسان حرفه ای کاربردی در آورده است.

مقدمه ای بر کامپایلرها

امروزه کمتر کامپیوتری وجود دارد که کامپایلر C را پشتیبانی نکند و کامپایلر C در محدوده وسیعی از کامپیوترهای خانگی نظیر آمیگا تا سوپر کامپیوترها نظیر CRAY به بازار عرضه شده است. برای مثال کامپایلر Turbo C محصول ارائه شده توسط کمپانی Borland می باشد. این کامپایلر علاوه بر قابلیت های( IDE (Integrated Development Environment که محیط برنامه سازی مناسبی برای برنامه نویسان فراهم نموده است، دارای تعداد زیادی توابع از پیش نوشته شده در زمینه های مختلف گرافیکی، text، ریاضی و... در کتابخانه خود می باشد. کار کردن با آن ساده است و از اولین محیط هایی است که می توان برنامه سازی به زبان C را در آن انجام داد.

فاطمه مجدآبادی

بخش دانش و زندگی تبیان


برگرفته از: برنامه نویسی به زبان C

انستیتو ایزایران