لغات البرمجة المترجمة مقابل لغات البرمجة المفسرة

 


لغات البرمجة المترجمة مقابل لغات البرمجة المفسرة

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


منذ أن بدأت رحلتي كمطور ، كنت أسمع دائمًا عن لغات البرمجة المجمعة والمترجمة كعالمين متعارضين. يتم تجميع C و Java ، بينما يتم تفسير Python و JavaScript ، أليس كذلك؟ حسنًا ... ليس حقًا.


ماذا لو أنشأت مترجمًا للبايثون أو مترجمًا للغة سي؟ هل ستجعل بايثون لغة مترجمة و لغة سي لغة مفسرة؟


ما هي لغة البرمجة؟

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


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


ما هو تطبيق اللغة؟

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

 الشيء الوحيد الذي يجب أن يظل كما هو دائمًا هو سلوك البرنامج في ظروف متساوية.

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


تحدد لغات البرمجة قواعدها من خلال معايير موثقة تصف سلوكها في المواقف المختلفة. الأمثلة الشهيرة لمعايير اللغة هي C ++ 14 أو ANSI C95 أو Java 8 أو ECMAScript الخاص بجافا سكريبت 2016.

 تتضمن هذه المعايير قواعد النحو والقواعد اللغوية ، بالإضافة إلى المفردات. تمتلك العديد من اللغات معايير متعددة ، تُعرف أيضًا باسم الإصدارات ، والتي قد توسع أو تقلل من ميزات الإصدار السابق.


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


لتوضيح هذا الجزء المتعلق بالتطبيقات بشكل أكثر وضوحًا ، دعنا نقدم بعض الأمثلة الملموسة. فكر في لغة برمجة بايثون. تطبيقه الافتراضي هو مترجم CPython ، المكتوب بلغة C. ومع ذلك ، هناك العديد من التطبيقات الأخرى مثل PyPy و IronPython و Jython وما إلى ذلك. أما بالنسبة لـ C أو C ++ بدلاً من ذلك ، فهناك العديد من المجمعين مثل GCC أو Clang أو MinGW. الأمر نفسه ينطبق على جافا سكريبت ، حيث يوجد محرك V8 من Google Chrome ، و SpiderMonkey من Mozilla Firefox ، و Chakra من Internet Explorer وغيرها.


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


خلاصة القول

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

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


الحياة عبارة عن رحلة لا وجهة. هناك دائمًا شيء جديد للتعلم عنه أو بعض المفاهيم القديمة لتوحيدها.


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


شكرا للقراءة!

تعليقات

المشاركات الشائعة من هذه المدونة

ماهي لغة البرمجة باسكال Pascal

ماهي لغة البرمجة دارت DART

ماهي لغة البرمجة سويفت swift

ما هو جوجل بلاي Google Play

سعر ومواصفات هاتف Infinix Hot 11

تطبيق يدكرك بضرورة شرب الماء Drink Water Reminder

إنشاء موقعك والربح منه على بلوجر blogger

سعر ومواصفات هاتف Huawei Nova 7 SE

الربح من الدروبشيبينغ(Dropshipping) على AliExpress.com

العمل الحر على موقع فايفر Fiverr