PDA

View Full Version : سوال: تفاوت کامپایلر و مفسر



raaaaz
دوشنبه 18 بهمن 1389, 15:30 عصر
تفاوت زبان مفسری و کامپایلر در اجرای حلقه های تو در تو مثلا 10 تایی چیه؟

BORHAN TEC
شنبه 23 بهمن 1389, 01:23 صبح
بسیاری از شرکت های سازنده کامپایلر و مفسر این مسائل را فاش نمی کنند ولی روشن ترین جواب، مساله سرعت است.

saman6488
جمعه 12 فروردین 1390, 23:44 عصر
مفسرها کدها رو خط به خط اجرا میکنند،اما کامپایلرها به طور کلی و در تمام شدن پروسه مربوط به اجرا ان را به حالت اجرا در میاورند،در نتیجه سرعت کامپایلر از مفسر بیشتر است.

Open-Source
شنبه 13 فروردین 1390, 01:31 صبح
من اینجا پستی در این مورد زدم ، احتمالا مفید باشه:


http://open-source.blogfa.com/post-50.aspx
http://open-source.blogfa.com/post-51.aspx


اگه به نظرت مفید اومد توی این تاپیک قرار بده تا مابقی دوستان هم استفاده کنند.

pesar irooni
یک شنبه 21 فروردین 1390, 15:24 عصر
یکی از نقاط ضعف مفسرها نسبت به کامپایلرها همین حلقه هاست.
کامپایلر یک حلقه 10 تایی رو 1 بار ترجمه و 10 بار اجرا میکنه ولی مفسر همین حلقه رو 10 بار ترجمه و 10 بار هم اجرا میکنه. پس هنگام برنامه نویسی با زبانهای مفسری باید حواستون باشه کمتر از حلقه استفاده کنید.

میلاد رئیسی
یک شنبه 12 آذر 1391, 09:28 صبح
کامپایلر چیست؟
کامپایلر یک نرم افزار است که یک زبان مبداء را دریافت و آنرا به زبان مقصد ترجمه می کند.

مفسر چیست ؟

به جای آنکه برنامه هدف به صورات ترجمه شده تولید بشود , عملیاتی که در برنامه مبداء وجود دارد یکی پس از دیگری اجرا میکند.( خروجی تولید نمی کند )

تفاوت بین کامپایلر و مفسر در چیست؟
1 ) مفسر , خط به خط برنامه ورودی را ترجمه و تفسیر میکند این در حالیت که کامپایلر تمام خطوط برنامه ورودی را به یکباره ترجمه میکند.

2 ) در هر خطی از برنامه که کاربر دارای خطا یا اشتباه باشد مفسر در همان لحظه خطا را آشکار میکند و در خواست رفع اشکال می نماید از برنامه نویس ( زبان هایی مانند بیسیک و لیسپ از این نوع هستند ).اما کامپایلر در پایان کار برنامه نویس اقدام به بررسی تمام خطوط برنامه نموده و خطاها را اعلام میکند.

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

3 ) پیاده سازی مفسر از کامپایلر ساده تر است.

4 ) این قضیه صحت دارد که سرعت ترجمه مفسر از کامپایلر بیشتر است , اما سرعت اجرای برنامه ای که کامپایل شده بسیار بیشتر از برنامه ای است که تفسیر شده.

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

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

7 ) در دسترسی به اصل برنامه مبداء,کامپایلر دارای امنیت بیشتری نسبت به مفسر است