با ما ارتباط برقرار کن

برنامه نویسی

کامپایلر چیست و انواع کامپایلرها در برنامه نویسی

کامپایلر چیست و انواع کامپایلرها در برنامه نویسی

کامپایلر چیست و انواع کامپایلرها در برنامه نویسی

کامپایلرها

کامپایلر چیست؟

کامپایلر چیست و انواع کامپایلرها در برنامه نویسی

مجموعه ای از برنامه های کامپیوتری است که متنی را از زبان برنامه نویسی سطح بالا (زبان مبدا) را به زبان سطح پایین (زبان مقصد) مثل اسمبلی یا زبان سطح ماشین تبدیل میکند.

اگر بخواهیم تعریفی ساده تر از کامپایلر را بگوییم میتوان گفت برنامه ای است که یک برنامه نوشته شده در یک زبان خاص ساخته شده را خوانده و آن را به یک برنامه مقصد (Target Language) تبدیل مینماید.

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

کامپایلر چیست و انواع کامپایلرها در برنامه نویسی

معمولا کامپایلرها توسط شرکت‌های متفاوتی تولید می‌شود و همواره شرکت‌هایی که سخت افزار ماشین را تولید می‌کنند، کامپایلر مورد نیاز آن ماشین را نیز تولید و ارائه می‌کنند،البته کامپایلر ها دارای استاندارهای جهانی هستند که این امر مانع از آن می‌شود که هر شرکت خود به صورت دلخواه استانداردهایی مشخص کند. برای مثال استاندارد زبان اسمبلی یک استاندارد جهانی می‌باشد و شرکت‌های تولید کننده چیپ و میکروچیپ مانند Intel، Motorola و غیره از این زبان استفاده می‌کنند؛ به همین منظور کامپایلرهایی برای تبدیل به این زبان توسط این شرکت‌های ارائه می‌شود.

علت استفاده از کامپایلر ها

کامپایلر ها دارای انواع گوناگونی هستند که هر کدام برای استفاده کاربر های خاصی تعبیه شده است که این تنوع اعمال اساسی که هر کامپایلر باید انجام دهد شبیه یکدیگر هستند.مهم ترین استفاده از کامپایلر ترجمه برنامه منبع به برنامه اجرائی است البته در شرایطی بعضی از کامپایلر ها این کار را وارونه انجام میدهند به طوری که زبان برنامه نویسی سطح پایین را به زبان برنامه نویسی سطح بالا ترجمه میکند.

انواع کامپایلر

کامپایلر های محلی و عبوری :

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

کامپایلرهای تک فاز و چند فاز:

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

کامپایلرهای تفسیری و کامپایلی:

تقسیم بندی زبان های سطح بالا به دو دسته تفسیری و کامپایلی است.کامپایلرهای تفسیری و کامپایلی روی زبان ها عمل میکنند نه زبان ها به روی آنها،مثلا تصوری وجود دارد که الزاما BASIC تفسیر میشوند و C کامپایل.اما امکان دارد نمونه هایی از BASIC و C ارائه شود که به ترتیب کامپایلری و تفسیری باشد.البته این را بدانید که هیچگونه استثنایی وجود ندارد.

کامپایلر چگونه کار میکند

اگر قبول داشته باشید که کامپیوتر تنها قادر به فهمیدن مفهوم سیگنال های پذیرش و عدم پذیرش و یا همان سیگنال ها و اعداد صفر و یک است می توانید آسان تر و سریع تر به جواب برسید در واقع سیستم کامپیوتر شامل مدارهایی است که این مدارها فقط به دو سیگنال صفر و یک و یا فعال و غیر فعال و یا روشن و خاموش حساس است و به هیچ وجه قادر به درک الفاظ و زبان طبیعی نمی باشد و حتی از کاری که قرار است انجام بدهد نیز خبر ندارد و مدارهای الکتریکی بر اساس کدهایی که در حافظه قرار می گیرد (کلمات حافظه) و در نهایت پردازش هایی که توسط پردازنده در واحد کنترل و ALU بر روی آن ها صورت می دهد اعمالی انجام می شود. اما آن چه که در این بخش مورد توجه است همان شکل گیری صفر و یک ها در نتیجه یک برنامه به زبان فرضا سی شارپ می باشد. این کاری است که کامپایلرها انجام می دهند.

مکانیسم کلی کار کامپایلرها به این صورت است که برنامه مبدا را خوانده و یک شکل میانی از آن ایجاد نموده و سرانجام آن را به زبان دیگری مانند اسمبلی تبدیل می کند و زبان اسمبلی نیز از شکل میانی برنامه شکل قابل فهم سیستم و یا همان صفر و یک ها را ایجاد و آن ها را در قالب Memory Word برای سیستم و سخت افزار مهیا می نماید. لذا تبدیل شکل ابتدایی برنامه مقصد به یک شکل اجرایی سیستمی از وظایف کامپایلرها می باشد.البته باید توجه کنیم که کامپایلرها بر اساس قواعد و گرامر زبان مبدا اقدام به تولید زبان مقصد می نمایند.

منبع : sourceiran

مدیر وب سایت تکنونیوز؛ مهندس نرم افزار؛ علاقه مند و فعالیت در زمینه های تکنولوژی و برنامه نویسی

آگهی
برای ارسال دیدگاه کلیک کنید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

مطالب ویژه