PDA

مشاهده نسخه کامل : فرق کامپایلرها با مفسرها چیه؟؟



lvlj
یکشنبه 23 مهر 1385, 21:17
فرق کامپایلرها با مفسرها چیه؟؟

Lonely
یکشنبه 23 مهر 1385, 21:51
تفاوت مهم Compiler ها , Interpreter ها در ساختن کد ماشین است .

در حقیقت کامپایلر ها ابتدا سورس کد رو میخونند و سپس اون رو به کد ماشین تبدیل میکنند که البته این کد ماشین هنوز قابل اجرا نیست . سپس این کد به یک کد قابل اجرا تبدیل میشه .
در مورد مفسر ها (Interpreter) متفاوت است . اونها سورس کد رو میخونند و همون رو اجرا میکنند .بدون اینکه به ماشین کد ترجمه کنند .
به طور خلاصه در کامپایلر ها این ماشین کد هست که اجرا میشه ولی در مفسرها خود سورس کد .

همین تفاوت یک مساله دیگه رو هم روشن میکنه :
کامپایلر ها میتونند فایل های خروجی قابل اجرا تولید کنند که بدون وجود کامپایلر مربوطه قابل استفاده میباشند . مثلا همین فایلهای exe . اما مفسرها چنین خروجی ندارند و برای اجرای سورس کد آنها (Script) ، نیاز هست که خود مفسر هم وجود داشته باشد .


البته این رو هم یادم رفت بگم که مفسر ها هم باهم تفاوتهایی دارند :
بعضی هاشون در همون موقع خوندن اجرا هم میکنند ولی بعضی دیگه اول همه اسکریپت رو کامل میخونند و بعد اجرا میکنند .

lvlj
یکشنبه 23 مهر 1385, 23:13
merCCCCCCCC

mahamm1d
دوشنبه 24 مهر 1385, 05:49
lonely عالی بود. مرسی
فقط میشه این رو هم اضافه کرد که زبان برنامه نویسی qbasic مفسر دارد و زبانهای مثل c, pascal مترجم .

MnavidM
دوشنبه 24 مهر 1385, 10:55
merCCCCCCCC
می تونید از دکمه تشکر هم استفاده کنید.


فقط میشه این رو هم اضافه کرد که زبان برنامه نویسی qbasic مفسر دارد و زبانهای مثل c, pascal مترجم .

زبان qbasic مفسر داره ، اما زیان های مثل پاسکل هم مفسر و هم مترجم دارند .

یعنی وقتی فایل رو کامپایل می کنند و خروجی exe یا com میدن ، کار مترجم هست و وقتی ما میام و از debug و تست مرحله به مرحله استفاده می کنیم ، کار مفسر هست .

موفق باشید.
نوید.