• یک مفسر یک دستورالعمل (instruction) یا یک خط (line) را در واحد زمان میخواند ، وبعد از تبدیل کردن آن به کد ماشین (machine code)، آن را اجرا میکند . در هنگامی که دارد این کد توسط ماشین اجرا میشود، مفسر خط بعدی را خوانده و آن را تبدیل به کد ماشین میکند. مزیت این روش این است که ، ساده است و ما میتوانیم در زمانی که یک مفسر در حال اجرا میباشد ، کدهای مورد نظر خود را تغییر دهیم یا مفسر را متوقف کنیم و یا آن را دوباره اجرا کنیم. اشکال این روش آن است که همه خطوط ، در هر بار اجرا شدن برنامه ، دوباره از نو ترجمه میشوند. با توجه به این مسئله ، مفسرها کند هستند. بعنوان نمونه، زبان Basic درکامپیوترهای اولیه از نوع مفسری بود، یا بعنوان نمونه از یک زبان اسکریپتی، میتوانJava Script را نام برد و زبان های برنامه نویسی Lisp و Forth هم از نوع مفسری بودند.
  • یک کامپایلر (compiler) ، همه ی کد برنامه (source code) را بصورت یک جا خوانده و آن را به کد ماشین تبدیل میکند ، و سپس این کد تولید شده را درون یک فایل جدید ذخیره میکند ، این فایل اجرایی جدید، کاملا مستقل از فایل اصلی برنامه (source code) میباشد. بزرگترین مزیت این روش این است که، این ترجمه ی کد، فقط یکبار صورت میگیرد و یک پروسس (process) مجزا و مستقل ایجاد میکند. از آنجا که ، کل برنامه ما بصورت یکجا به کد ماشین تبدیل شده ، اجرای آن خیلی سریع صورت میگیرد. عیب این روش این است که ، ما قادر به تغییر کد برنامه در زمان اجرا نیستیم و برای این منظور باید دوباره به کد اصلی (source code) رجوع کنیم و پس از اعمال تغییرات مورد نظرمان ، برنامه را دوباره کامپایل کنیم.
  • بعضی از اوقات ممکن است که به نوع سومی از مترجم ها برخورد کنید که به اسمبلر (assembler) معروف هستند. اسمبلرها مانند کامپایلرها عمل میکنند اما در سطح پایین تر. کد اصلی (source code) ، در هر خط ، بصورت مستقیم به کد ماشین تبدیل میشود. اسمبلر ها معمولا توسط افرادی مورد استفاده قرار میگیرند که ، نیاز دارند به یک برنامه با حجم کم و سرعت بالا .
3 دیدگاه در تفاوت مفسر و کامپایلر چیست؟
  1. تشکر ممنون خیلی مختصر و مفید بود البته جامع و بدردخور بازم ممنون

  2. تشکر از موضوعات عالی و دلچسپ شما اگر امکان دارد برای بنده موضوعات بیشتری در مورد کمپیوتر ارسال بدارید.


[بالا]

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *