در زبان برنامهنویسی ، دو مفهوم “مفسر” و “کامپایلر” دو روش متفاوت برای اجرای کد را نشان میدهند:
مفسر:
یک مفسر برنامهای است که به صورت مستقیم دستورات نوشته شده به زبان برنامهنویسی را اجرا میکند بدون نیاز به مرحله جداگانهی کامپایل.
این برنامه به طور خط به خط کد منبع را میخواند، هر خط را به کد ماشینی یا کد میانی ترجمه میکند و آن را فوراً اجرا میکند.
مفسرها معمولاً در زبانهایی مانند پایتون، روبی و جاوااسکریپت استفاده میشوند.
آنها به طور کلی در اجرای کد نسبت به زبانهای کامپایلشده کندتر هستند زیرا نیاز به ترجمه و اجرای کد در حالت راهاندازی دارند.
کامپایلر:
یک کامپایلر برنامهای است که کد منبع نوشته شده به زبان برنامهنویسی سطح بالا را به کد ماشینی (کد دودویی) یا کد میانی قبل از اجرا ترجمه میکند.
این فرآیند یک سری مراحل ترجمه مانند تجزیهی واژگانی، تجزیهی نحوی، بهینهسازی و تولید کد را به منظور تولید کد اجرایی انجام میدهد.
بعد از اتمام فرآیند کامپایل، فایل اجرایی حاصل میتواند بدون نیاز به کد منبع اصلی یا کامپایلر اصلی مستقل از آن اجرا شود.
زبانهای کامپایلشده شامل C، C++، جاوا (که به کد بایتکد کامپایل شده و سپس در زمان اجرا تفسیر یا کامپایل میشود) و غیره میشوند.
برنامههای کامپایلشده معمولاً در اجرا نسبت به برنامههای تفسیرشده به دلیل اینکه فرآیند ترجمه کد را برای پلتفرم مقصد خاص بهینه میکند، سریعتر هستند.
به طور خلاصه، اصلیترین تفاوت بین مفسرها و کامپایلرها در زمانی است که آنها کد منبع را به کد ماشینی ترجمه میکنند: مفسرها این کار را در زمان اجرا خط به خط انجام میدهند، در حالی که کامپایلرها همه چیز را یکجا قبل از زمان اجرا انجام میدهند. هر رویکرد مزایا و معایب خود را دارد که مناسب برای انواع مختلفی از برنامهها و سناریوهای توسعه میباشد.
1 کاربر که از نویسنده این موضوع تشکر کرده اند.