زبانهای برنامه نویسی میتوانند تفسیری یا کامپایلری باشند , تفاوت مفسر و کامپایلر در درون رویکرد فرایند تفسیر یا کامپایل این زبانها نهفته است.
به طور خلاصهای از این تفاوت میتوان گفت که مفسر، نتیجه ترجمه خود را از برنامه اصلی تولید میکند، ولی این در حالی است که کامپایلر برنامه جدیدی را تولید خواهد کرد که با «زبان اسمبلر» (Assembler Language) نوشته شده است و سپس «اسمبلر» (Assembler) این کدها را به کدهای دودویی یا همان باینری قابل درک برای ماشین تبدیل میکند. زبان اسمبلی هر کامپیوتر بسته به معماری آن متفاوت است. در نتیجه، برنامههای کامپایل شده فقط روی کامپیوترهایی اجرا میشوند که معماری مشابه به کامپیوتری داشته باشند که کامپایل برنامه در آن انجام شده است.