کامپایلر در مقابل مترجم
کامپایلر و مترجم، هر دو اساساً یک هدف را دنبال می کنند. آنها یک سطح از زبان را به سطح دیگری تبدیل می کنند. یک کامپایلر دستورالعمل های سطح بالا را به زبان ماشین تبدیل می کند در حالی که یک مفسر دستورالعمل های سطح بالا را به یک فرم متوسط تبدیل می کند و پس از آن، دستورالعمل اجرا می شود.
کامپایلر
کامپایلر به عنوان یک برنامه رایانه ای تعریف می شود که برای تبدیل دستورالعمل ها یا زبان سطح بالا به فرمی قابل فهم توسط رایانه استفاده می شود. از آنجایی که کامپیوتر فقط می تواند اعداد باینری را بفهمد، بنابراین از یک کامپایلر برای پر کردن شکاف استفاده می شود، در غیر این صورت یافتن اطلاعات در فرم 0 و 1 برای انسان دشوار بود.
پیش از این کامپایلرها برنامه های ساده ای بودند که برای تبدیل نمادها به بیت استفاده می شدند. برنامه ها نیز بسیار ساده بودند و شامل یک سری مراحل بودند که به صورت دستی به داده ها ترجمه می شدند. با این حال، این یک فرآیند بسیار زمان بر بود. بنابراین، برخی از قطعات برنامه ریزی یا خودکار بودند. این اولین کامپایلر را تشکیل داد.
تطابقکنندههای پیچیدهتر با استفاده از موارد سادهتر ایجاد میشوند. با هر نسخه جدید، قوانین بیشتری به آن اضافه می شود و محیط زبان طبیعی تری برای برنامه نویس انسان ایجاد می شود. برنامههای انطباقکننده به این طریق در حال تکامل هستند که سهولت استفاده از آنها را بهبود میبخشد.
تطبیقکنندههای خاصی برای زبانها یا وظایف خاص وجود دارد. Complier ها می توانند چند مرحله ای یا چند مرحله ای باشند. اولین پاس می تواند زبان سطح بالا را به زبانی نزدیکتر به زبان کامپیوتر تبدیل کند. سپس پاسهای بعدی میتوانند آن را به مرحله نهایی به منظور اجرا تبدیل کنند.
مترجم
برنامه های ایجاد شده در زبان های سطح بالا را می توان با استفاده از دو روش مختلف اجرا کرد.روش اول استفاده از کامپایلر و روش دیگر استفاده از مفسر است. آموزش یا زبان سطح بالا توسط مترجم به سطح متوسط تبدیل می شود. مزیت استفاده از مفسر این است که دستورالعمل سطح بالا از مرحله کامپایل عبور نمی کند که می تواند یک روش وقت گیر باشد. بنابراین با استفاده از مفسر، برنامه سطح بالا به طور مستقیم اجرا می شود. به همین دلیل است که برخی از برنامه نویسان هنگام ساخت بخش های کوچک از مفسر استفاده می کنند زیرا این باعث صرفه جویی در زمان می شود.
تقریبا همه زبان های برنامه نویسی سطح بالا کامپایلر و مفسر دارند. اما برخی از زبان ها مانند LISP و BASIC به گونه ای طراحی شده اند که برنامه های ساخته شده با استفاده از آنها توسط مترجم اجرا می شوند.
تفاوت بین کامپایلر و مفسر
• یک انطباق دستورالعمل سطح بالا را به زبان ماشین تبدیل می کند در حالی که یک مترجم دستورالعمل سطح بالا را به یک فرم متوسط تبدیل می کند.
• قبل از اجرا، کل برنامه توسط کامپایلر اجرا می شود در حالی که پس از ترجمه خط اول، یک مفسر آن را اجرا می کند و به همین ترتیب.
• لیست خطاها توسط کامپایلر پس از فرآیند کامپایل ایجاد می شود در حالی که مترجم پس از اولین خطا ترجمه را متوقف می کند.
• یک فایل اجرایی مستقل توسط کامپایلر ایجاد می شود در حالی که مفسر هر بار توسط یک برنامه تفسیر شده مورد نیاز است.