تفاوت مفسر و كامپايلر
تفاوت مفسر و كامپايلردراين نوشتهي علمي از مقاله هابرنامه نويسي اينترنت، به معرفي لهجههاي مفسري و كامپايلري مي پردازيم و به سوال كامپايلر چه است؟ طراحي سايت در مشهد و مفسر چه است؟ جواب ميدهيم. بعد تفاوت مفسر و كامپايلر را بازنگري مي كنيم.وقتي كه ما يك برنامه با لهجه سطح بالا مينويسيم به عنوان مثال C ،C++ ، java و … كامپيوتر دركي از برنامهاي كه ما نوشتيم ندارد. چون كد ماشين يك كد صفر و يك مي باشد و براي اينكه برنامه ما قابلفهم و شعور براي ماشين باشد نياز به چيزي داريم كهاين برنامه سطح بالا را به كد ماشين تبديل نمايد. اينجاست كه مي توانيم از مفسر و كامپايلر به كار گيري كنيم.به صورت كلي لهجههاي برنامهنويسي به دو مدل اصلي گويشهاي مفسري (interpreter) و لهجههاي كامپايلري (compiler) تقسيم ميشود.
كامپايلر چه ميباشد؟گروهاي از برنامه يا اين كه برنامههاي كامپيوتري ميباشند كه لهجه برنامهنويسي سطح بالا (گويش مبدا) را به زباني سطح ذيل (گويش مقصد) و قابلفهم و شعور براي دشوارافزار تبديل مي نمايد. همان ديگر كدهاي ماشين به آساني قابلشعور براي بشر نيستند و به همين خيال و خاطر بشر به گويشهاي سطح بالا كه قابلدركخيس ميباشند، برنامه مينويسد و با به كارگيري از كامپايلرها آن را به گويش سطح زير تبديل مينمايد.
سازوكار كلي كامپايلرمراحل كلي فعاليت كامپايلرها اين چنين ميباشد كه برنامه سطح بالا را خوانده و يك صورت مياني از آن توليد ميكند و عاقبت آن را به لهجه ديگري مانند اسمبلي تبديل مي نمايد، آنگاه لهجه اسمبلي نيز به صورت مياني برنامه توليد و آخر و عاقبت به كد ماشين تبديل ميشود. كامپايلر اين كد را در قالب Memory Word كه بر طبق قواعد لهجه سطح بالا نوشته بود، براي مشقت بارافزار توليد مي نمايد.
شيوه فعاليت كامپايلرمفسر چه مي باشد؟مفسر يك برنامه كامپيوتري ميباشد كه دستورهاي نوشتهگرديده در يك گويش برنامهنويسي سطح بالا را به صورت يك كد قابلشعور براي ماشين اجرا مينمايد.
مطرح ترين مزيتي كه مفسر دارااست اين ميباشد كه برنامه نوشتهگرديده اصلي، متعلق به دسته دشوارافزار وجود ندارد. يعني برنامهاي كه به لهجه مفسر نوشته شود قادر است بر روي هر مدل سيستمعاملي اجرا شود.
طريق عمل مفسرتفاوت مفسر و كامپايلر۱- چگونگي اجرا شدندر گويشهاي كامپايلري نخست يكتوشه كدها به طور بدون نقص ترجمه ميگردند و بعد برنامه براي اجرا از روي پوشه كامپايل گرديده اجرا مي گردد. ولي در گويشهاي مفسري كدها به طور خط به خط تعبيروتفسير و اجرا مي شوند و هر دفعه كه بخواهيم برنامه را مجدد اجرا كنيم به همين فيس كد تعبير و اجرا مي شود.
۲- متعلق بودن يا اين كه نبودن به سيستم برهانيك كدام از ديگر از تفاوتهاي اين لهجهها اين مي باشد كه لهجه مفسري براي اجرا نياز به يك قابل انعطافافزار مفسر يا اين كه interpreter داراست ولي لهجه كامپايلري فقط يكتوشه كامپايل گرديده و كدهاي قابل انجام در ماشين را توليد ميكند. از آن پس بر روي هر سيستمي سواي نياز به كامپايلر قابل انجام است.
البته همين نكته اين تفاوت را توليد مينمايد كه لهجه كامپايلر متعلق به سيستمدليل ميباشد، يعني در صورتيكه اجرا خواهد شد كه در آن سيستمدليل كامپايل گرديده باشد و در سيستمادلههاي ديگر اجرا نخواهد شد. ولي گويش مفسر در هر سيستمعاملي كه قابل انعطافافزار مفسر آن وجود داشته باشد اجرا و تعبيروتفسير ميشود و در واقع متعلق به سيستمدليل وجود ندارد.
۳- سرعت و واحد سنجش استعمال از خاطر و پردازندهلهجه هاي Interpreter كدها را به طور خط به خط تعبير و اجرا مينمايند، اين فعاليت سبب ساز ميگردد تا مقدار متعددي از CPU و RAM كامپيوتر اشغال شود و معين ميباشد كه سرعت تحتتري نيز خواهند داشت. البته كامپايل شدن يكبارهي لهجههاي كامپايلر اين ميباشد كه در اجراهاي گوناگون سبكخيس بوده و سرعت بهتري خواهند داشت.
۴- خطايابيهمين مزيتِ به طورِ يكجا كامپايل شدن لهجههاي كامپايلر در بخش خطايابي و رفع خلل، نقص بهاكانت مي آيد. چون در گويشهاي مفسر وقتيكه برنامه خط به خط اجرا مي شود، در هر بخشي از برنامه كه مشكلي وجود داشته باشد، قابل كشف كردن و رفع مي باشد.البته در گويشهاي Compiler براي رفع يك نقص در كدها ميبايست سورس خويش برنامه را دوباره بازيابي كرده، بعد نادرست را پيدا و اصلاح كرد كهاين عمل بسيار طاقت فرساخيس از عمل با گويشهاي مفسري ميباشد.
معرفي لهجههاي مفسري و كامپايلرياز پر اسم و رسمترين لهجههاي مفسري مي توانيم به گويشهاي BASIC ،MATLAB ،Perl ،PHP ،Python ،Ruby و جاوا اسكريپت اشاره كنيم.همينطور داراي شهرتترين لهجههاي كامپايلري گويشهاي C++ ،C# ،Pascal، جاوا و … ميباشند.
برچسب: طراحي سايت در مشهد،