مرحله پایانی ایجاد یک برنامه، ترجمه یک الگوریتم نوشته شده در یکی از زبان های برنامه نویسی (C/C++، Pascal و غیره) به یک زبان ماشین سطح پایین است. این به دلیل این واقعیت است که برای انجام هر کاری، رایانه ها باید دستوراتی را به زبانی که آنها می فهمند، نزدیک به باینری و با ساختارهای داده اولیه (بیت، بایت یا کلمه) داده شود. فرآیند ترجمه عبارات دامنه خاص زبان های سطح بالا به کد باینری ترجمه نامیده می شود. دو روش ترجمه وجود دارد - تالیف و تفسیر.
کامپایلر - چیست؟
تجزیه و تحلیل بسیاری از تفاسیر از اصطلاحات "کامپایلر" و "کامپایل" به ما امکان می دهد تعریف زیر را برجسته کنیم. کامپایلر برنامه ای است که برای ترجمه متن یک الگوریتم منبع از یک زبان سطح بالا به مجموعه ای معادل از دستورالعمل ها در یک زبان ماشین گرا طراحی شده است. این به اصطلاح کد شی است، برای مونتاژ بعدی کد شی به دست آمده در یک ماژول برنامه آماده برای استفاده.
کامپایلر و مفسر - شباهت ها و تفاوت ها
مفسر ابزاری است کهو همچنین یک کامپایلر، طراحی شده برای ترجمه کد منبع به کد ماشین. با این حال، برخلاف کامپایلر، مفسر هر بار با برنامه اجرا می شود و ترجمه را خط به خط انجام می دهد.
می توان گفت که کامپایلر و مفسر پردازشگرهای زبان هستند که به رایانه اجازه می دهند دستورات داده شده توسط برنامه نویس را شناسایی و اجرا کند.
طبقه بندی کامپایلر
کامپایلرها عمدتاً بر اساس ویژگیهای مرتبط با حوزه کاربرد عملی آنها طبقهبندی میشوند.
کامپایلر Vectorizing ابزاری است که کد منبع را به کد شی ترجمه می کند و برای رایانه های مجهز به پردازنده های برداری تطبیق داده شده است.
یک کامپایلر منعطف به یک زبان سطح بالا به صورت مدولار برنامه ریزی شده است. مدیریت آن با استفاده از جداول انجام می شود. همچنین می توان آن را با استفاده از کامپایلر کامپایلرها اجرا کرد.
کامپایلر افزایشی یک پردازشگر زبان است که قطعات جداگانه ای از کد منبع و اضافات به آن را دوباره ترجمه می کند. با این حال، از کامپایل مجدد کل برنامه جلوگیری می کند.
کامپایلر تفسیری (پله ای) ابزاری است که به طور متوالی کامپایل مستقل هر عبارت یا دستور یک کد منبع سطح بالا را انجام می دهد.
کامپایلر کامپایلر مترجمی است که قادر به پذیرش توضیحات رسمی برای یک زبان برنامه نویسی و ایجاد مستقل کامپایلر برای هر زبانی است.
کامپایلر اشکال زدایی به شما امکان می دهد انواع خطاهای نحوی ایجاد شده در هنگام نوشتن کد منبع را پیدا و رفع کنید
یک کامپایلر مقیم یک مکان دائمی در RAM اشغال می کند و بنابراین با طیف وسیعی از وظایف قابل استفاده مجدد است.
کامپایلر خود تالیف شده به همان زبان ترجمه نوشته شده است.
کامپایلر جهانی بر اساس توصیف رسمی پارامترهای معنایی و نحوی زبان ورودی است. اجزای اصلی چنین ابزاری، بارگذارهای هسته، نحوی و معنایی هستند.
دستگاه کامپایلر
یک کامپایلر و یک پیوند دهنده در قلب هر کامپایلری قرار دارند. اغلب، هنگام کامپایل، از یک پیوند دهنده خارجی استفاده می شود و خود کامپایلر فقط عملکرد ترجمه را انجام می دهد. همچنین اتفاق میافتد که کامپایلر بهعنوان یک نوع برنامه مدیر پیادهسازی میشود که با مترجم (یا مترجمها، در صورت استفاده از زبانهای برنامهنویسی مختلف هنگام نوشتن کد منبع) و پیوند دهنده مرتبط است و در صورت لزوم اجرای آنها را آغاز میکند.
زبان های برنامه نویسی و روش های ترجمه
علیرغم این واقعیت که یک برنامه نوشته شده در هر زبان برنامه نویسی را می توان هم کامپایل و هم تفسیر کرد، بسیاری از زبان های سطح بالا مستعد این یا آن روش ترجمه هستند. بنابراین، زبان C در ابتدا برای کامپایل و جاوا - برای تفسیر برنامه نوشته شده طراحی شده است. در حال توسعه هستندکامپایلرهای C به دلیل سطح نسبتا پایین و تعداد کمی از عناصر ساختاری بسیار آسان هستند.
مزایا و معایب کامپایلرها و مفسرها. برنامه های کاربردی
توجه داشته باشید که برنامه های کامپایل شده سریعتر از برنامه های تفسیر شده هستند، اما در عین حال، کد ماشین به دست آمده در نتیجه کامپایل به پلت فرم سخت افزار بستگی دارد. بنابراین، برنامه ای که برای ویندوز نوشته و کامپایل شده است، به عنوان مثال، در لینوکس کار نخواهد کرد. بنابراین، در مورد برنامه های اینترنتی، زمانی که نمی توان از قبل گفت که در چه محیطی کار می کنند، از تفسیر یا بایت کد استفاده می کنند (در این حالت، برنامه منبع به یک فرم میانی تبدیل می شود که می تواند روی سخت افزارهای مختلف اجرا شود. پلت فرم).