Interpreter یا مفسر برنامهای است که دستورهای یک زبان را در محیط اجرایی خودش تفسیر و اجرا میکند. در برخی پیادهسازیها، ابتدا نمایش میانی یا Bytecode ساخته میشود و سپس ماشین مجازی آن را اجرا میکند.
یک سناریوی واقعی
وقتی فایل Python را با دستور python اجرا میکنیم، پیادهسازی رایج CPython ابتدا آن را به Bytecode تبدیل میکند. پس تعبیر «مفسر یعنی اجرای مستقیم هر خط منبع بدون هیچ تبدیل» همیشه درست نیست.
نمونه کد
python app.py
زبانها ذاتاً فقط کامپایلری یا فقط تفسیری نیستند. نحوه اجرا ویژگی پیادهسازی و ابزارهای Runtime است.
مفسر و کامپایلر مرز کاملاً دوگانه ندارند
برخی Runtimeها ابتدا کد را به Bytecode تبدیل میکنند و سپس آن را تفسیر یا JIT Compile میکنند. برای توصیف یک زبان باید پیادهسازی واقعی و Runtime آن را هم در نظر گرفت.