الفرق بين Compiler و Interpreter في البرمجة

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

ما هي المفسرات البرمجة:




المُفَسِّر (يدعى باللغة الإنكليزيةInterpreter) والمفسر عبارة عن تطبيق حاسوبي يعمل على تشغيل الأكواد البرمجية المكتوبة بلغة مفسرة.
يعمل المفسر على تنفيذ كل سطر برمجي على حدا بشكل مباشر، أي بشكل نقيض لعمل المصرف والذي يقوم بتحويل البرنامج دفعة واحدة من لغة إلى لغة مغايرة(بالأغلب لغة الآلة) ويكون الناتج من العملية ملف تستطيع إعادة تشغيله في أي وقت.
يوجد لغات وخصوصاً اللغات الوظيفية يصعُب إنشاء مصرف لها ولكنها تعمل بكل بساطة من خلال المفسر، وعلى سبيل المثال على هذه اللغات التي يتم تشغيل برامجها من خلال المفسر (PHP، والبيسك، والبايثون).
 يستطيع المفسر غالباً استخدام إحدى الاستراتيجيات التالية لتشغيل البرنامج:

  • تجزئة الشيفرة المصدرية وتنفيذها مباشرةً.
  • ترجمة الشيفرة المصدرية إلى لغة وسيطة فعالة وتنفيذها مباشرة.
  • التنفيذ المباشر لشيفرة مخزنة سابقاً إنشأها مترجمٌ يكون جزءًا من نظام المفسر.

ماهي المترجمات:



هو برنامج يعمل على تحويل الشيفرة المصدرية المكتوبة بواحدة من اللغات عالية المستوى إلى ما يقابلها في مستوى منخفض مع المحافظة الكاملة على هدف وغاية الشيفرة المصدرية.
حيث يطلق مصطلح الشيفرة المصدرة source code إلى النص البرمجي الكتوب بواحدة من اللغات عالية المستوى، ويطلق مصطلح (شيفرة الهدف) إلى الشيفرة الناتجة عن عمل المترجم، وغالباً ما تكون مكتوبة بلغة منخفضة المستوى. والنهاية فإن المترجم يعمل على تحسين الشيفرة المصدرية لتصبح ذات كفاءة عالية من حيث السرعة في التنفيذ وتقليل حجم الذاكرة التي سيشغلها البرنامج.

الخلاصة من هو الأفضل:


الناس بشكل عام يبحثون عن الأفضل دائماً؛ فيعملون على إنشاء مقارنات التي تظهر جميع الجوانب للأشياء، وينطبق هذا على عالم البرمجة، فنجد مبرمجون على استعداد إقامة نقاش يمتد إلى ساعات لإقناعك أن مهاراتهم الأفضل من الجميع. 
 
هل استخدام اللغات المفسرة أفضل من اللغات المترجمة أو العكس؟
جواب هذا السؤال بسيط جداً:
لا يوجد شيء أفضل من شيء لكل شيء ما يميزه،واستعمالك لغة برمجية بدلاً أخرى يتبع لعدة عوامل منها المجال المستهدف والتطبيق المراد إنشاءه، وكما نعلم لغة البرمجة البايثون مشهورة بجال تحليل البيانات وتطبيقات معالجة الصورة والذكاء الصنعي وت استخدام لغة برمجة بدلاً من الأخرى يتبع بشكلٍ أساسيّ للمجال المستهدف والتطبيق المراد إنشاؤه. لغة بايثون تمتلك شهرةً كبيرة بمجال تحليل البيانات وتطبيقات معالجة الصورة والذكاء الصنعيّ وتعلم الآلة، فنجد جميع الراغبين في العمل بإحدى المجالات السابقة سيتوجه تلقائياً إلى البايثون.
لغة البرمجة ال C تستعمل كثيراً  بمجال برمجة الأنظمة المضمنة وأنظمة التشغيل، لهذ نجد كل من يحب هذا المجال يتجه إلى لغة سي لا أعتقد أن هنالك شيء أفضل بجميع المجالات، ربما أنا مخطئ فس ذلك، إلا أن الأكيد هو أن البحث عن الأفضل والتوجه لتأكيد( الأفضل) هو كبير يذهب من يديك ولا يعود وبرأيي اذهب وتعلم لغة برمجية جديدة أو قم بإنشاء مشروع جديد وحسن من نفسك لتكون الأفضل.

إرسال تعليق

أحدث أقدم