الاثنين، 25 أبريل 2022

هل تعلم ماهو الفرق ما بين ال compiler وال interpreter في البرمجة

هل تعلم ماهو الفرق ما بين ال compiler وال interpreter في البرمجة


لغات البرمجة مبدأها واحد ألا وهو تحويل الكود المصدري Source Code إلى كود قابل للإشتغال على الآلة  طبعا في هذه المقالة سنسلط الضوء عن الفرق بين المترجم Compiler والمفسر Interpeter حيث أنه وقد يكون من المهم احيانا للمبرمج معرفة الفرق بينهما .

طبعا يتم تنفيذ البرنامج في معظم لغات البرمجة بطريقتين الأولى بالإعتماد على المترجم compiler والثانية تعتمد على المفسر Interpeter لكن ماهو الفرق بينهما ، في البداية المترجم والمفسر هما برنامجين يلعبان دور الوسيط في تحويل الكود المصدري لبرنامج يفذ على الآلة .

طبعا مبدأ كل من المترجم والمفسر واحد وهو تحويل الشيفرة المصدرية لتمثيل أو لغة مفهومة من طرف المعالج ليتم تنفيذها على الآلة .

يقوم المترجم compiler بتنفيذ الأوامر والأسطر البرمجة دفعة واحدة يعني يأتي على الأوامر البرمجية يحللها ويترجمها و يقوم بتنفيذها كلها مرة واحدة .

فيما يقوم المفسر Interpeter بالمرور على الملف أو الشفرة البرمجة سطرا بسطر يعني كل سطر لوحده يعني تبدأ بسطر وتترجمه ثم تذهب للموالي إلى إنتهاء البرنامج فتنفذ أو تعرض لك النتيجة النهائية .

طبعا تكون اللغات المترجمة أسرع من اللغات المفسرة لأن المترجمة تقوم بتحويل البرنامج مباشرة للغة تفهمها الآلة كما أنها تترجمه كله دفعة واحدة بينما أن المفسر يقوم بترجمتها سطر بسطر قبل التنفيذ فتكون العملية أبطأ .

طبعا لكن بالنسبة لسرعة إكتشاف الاخطاء فإن اللغات المفسرة أسرع لأنها تمر على الكود سطر بسطر لهذا فإن وجدت خطأ في سطر معين فسستوقف عنده عملية التنفيذ ولن يكمل البرنامج التنفيذ وستطبع لك رقم السطر ونوع الخطأ ، أما اللغات المترجمة فتقوم بتحليله دفعة واحدة ثم تتأكد من سلامته من الأخطاء قبل التحويل النهائي للغة الآلة فتنبهك للخطأ إن وجد لكن يصعب عليها معرفة مكان الخطأ وذلك مقارنة مع المفسر لأنها تقوم بهذه الخطوة بعد إنتهاء التحليل.

بإختصار فإن المترجم compiler يقوم بتحليل الشفرة المصدرية كلها وترجمتها بالكامل إلى لغة مفهومة من الآلة أما المفسر فيقوم بترجمة البرنامج سطر بسطر ومن ثمة يقوم بتنفيذها وإن كان هناك خطأ يتوقف البرنامج عند هذا الخطأ .

طبعا لدينا العديد من اللغات البرمجية اللتي تعتمد على compiler لعل ابرزها c و c++ وسي شارب فيما اللغات اللتي تعتمد على المفسر Interpeter تتمثل في لغات مثل python و ruby فيما تعتمد جافا على كلاهما في التنفيذ المفسر والمترجم معا .

حسنا الآن نتمنى أن يكون الشرح قد أوضح لك الفرق بين المترجم والمفسر ، وأزال اللبس والإشكال لديك إن اعجبتك التدوينة او إستفدت منها لا تبخل علينا بمشاركتها لتعم الفائدة إلى هنا أكون قد إنتهيت من مقالتنا لليوم أتمنى أن تكونو قد إستفدتم .

إغلاق التعليقات