68 lines
6.8 KiB
Markdown
68 lines
6.8 KiB
Markdown
---
|
||
title: Compiled Versus Interpreted Languages
|
||
localeTitle: جمعت مقابل Interpreted اللغات
|
||
---
|
||
## جمعت مقابل Interpreted اللغات
|
||
|
||
كل برنامج عبارة عن مجموعة من التعليمات ، سواء كانت لإضافة رقمين أو إرسال طلب عبر الإنترنت. يقوم المترجمون والمترجمون الشفويون بأخذ كود يمكن قراءته وتحويله إلى كود آلة قابل للقراءة من الكمبيوتر. في لغة مترجمة ، يقوم الجهاز المستهدف بترجمة البرنامج مباشرة. في لغة مفسرة ، لا يتم ترجمة التعليمات البرمجية المصدر مباشرة بواسطة الجهاز الهدف. بدلاً من ذلك ، يقوم برنامج _مختلف_ ، ويعرف أيضًا باسم المترجم ، بقراءة التعليمات البرمجية وتنفيذها.
|
||
|
||
### حسنا ... لكن ماذا يعني ذلك في _الواقع_ ؟
|
||
|
||
لذا دعنا نقول أن لديك وصفة حمص تريد أن تصنعها ، لكنها باللغة اليونانية القديمة. هناك طريقتان يمكنك من خلالها ، كمتحدث غير اليوناني القديم ، اتباع اتجاهاته.
|
||
|
||
الأول هو إذا قام شخص ما بترجمتها إلى الإنجليزية لك بالفعل. يمكنك (وأي شخص آخر يمكن أن يتكلم اللغة الإنجليزية) الحصول على النسخة الإنجليزية وجعل الحمص. هذه هي النسخة المترجمة.
|
||
|
||
والثاني هو إذا كان لديك صديق يعرف اليونانية القديمة. يمكن أن يجلس صديقك إلى جانبك ويترجم اليونانية القديمة إلى الإنجليزية ، خطًا تلو الآخر ، كما تذهب. في هذه الحالة ، صديقك هو المترجم. هذه هي النسخة المفسرة.
|
||
|
||
### لغات مترجمة
|
||
|
||
يتم تحويل اللغات المترجمة مباشرة إلى رمز الجهاز الذي يمكن للمعالج تنفيذه. ونتيجة لذلك ، فإنها تميل إلى أن تكون أسرع وأكثر فعالية في التنفيذ من اللغات المفسرة. كما أنها تمنح المطور مزيدًا من التحكم في جوانب الأجهزة ، مثل إدارة الذاكرة واستخدام وحدة المعالجة المركزية.
|
||
|
||
تحتاج اللغات المجمعة إلى خطوة "بناء" - يجب أن يتم تجميعها يدويًا أولاً. تحتاج إلى "إعادة" البرنامج في كل مرة تحتاج فيها إلى إجراء تغيير. في مثال الحمص لدينا ، تتم كتابة الترجمة بأكملها قبل أن تصل إليك. إذا قرر المؤلف الأصلي أنه يريد استخدام نوع مختلف من زيت الزيتون ، فستحتاج إلى إعادة ترجمة الوصفة بأكملها ثم إرسالها إليك.
|
||
|
||
أمثلة على اللغات المجمعة النقية هي C و C ++ و Erlang و Haskell و Rust و Go.
|
||
|
||
### لغات مترجمة
|
||
|
||
سيتم تشغيل المترجمين عبر سطر برنامج بواسطة سطر وتنفيذ كل أمر. الآن ، إذا قرر المؤلف أنه يريد استخدام نوع مختلف من زيت الزيتون ، يمكنه خدش الزيت القديم وإضافة الجديد. يمكن لصديقك المترجم أن ينقل هذا التغيير إليك فور حدوثه.
|
||
|
||
من المعروف أن اللغات التي تم تفسيرها كانت أبطأ بشكل ملحوظ من اللغات التي تم جمعها. ولكن مع تطور [التجميع في الوقت المناسب](https://guide.freecodecamp.org/computer-science/just-in-time-compilation) ، فإن هذه الفجوة آخذة في التقلص.
|
||
|
||
أمثلة على اللغات المفسرة الشائعة هي PHP و Ruby و Python و JavaScript.
|
||
|
||
### تحدي صغير
|
||
|
||
يمكن أن تحتوي معظم لغات البرمجة على تطبيقات مجمّعة ومفسرة. اللغة نفسها ليست بالضرورة تجميع أو تفسير. ومع ذلك ، من أجل التبسيط ، يشار إليهم على هذا النحو.
|
||
|
||
بالمعنى الدقيق للكلمة ، فإن المصطلحات التي تُفسر اللغة واللغة المجمعة ليست محددة بشكل جيد لأنه نظريا ، يمكن تفسير أي لغة برمجة أو تجميعها. في تطبيق لغة البرمجة الحديثة ، تزداد شعبية لمنصة لتوفير كلا الخيارين. على سبيل المثال ، يمكن تنفيذ Python إما كبرنامج مترجم ، أو كلغة مفسرة في الوضع التفاعلي.
|
||
|
||
**يمكن تصنيف معظم أدوات سطر الأوامر و CLIs و shell من الناحية النظرية على أنها لغات تفسيرية.**
|
||
|
||
### المميزات والعيوب
|
||
|
||
#### مزايا اللغات المجمعة
|
||
|
||
عادةً ما تكون البرامج التي تم تجميعها في تعليمة برمجية أصلية في وقت التحويل البرمجي أسرع من تلك التي تمت ترجمتها في وقت التشغيل ، نظرًا لتكاليف عملية الترجمة.
|
||
|
||
#### مساوئ اللغات المجمعة
|
||
|
||
أهم عيوبه هي: -
|
||
|
||
* الوقت الإضافي المطلوب لإكمال خطوة التحويل البرمجي بالكامل قبل الاختبار ، و
|
||
* اعتماد المنصة على الكود الثنائي الذي تم إنشاؤه.
|
||
|
||
#### مزايا اللغات المفسرة
|
||
|
||
توفر لغة Interpreted بعض المرونة الإضافية عبر تطبيقات compiled. لأن المترجمين الشفويين يقومون بتنفيذ شفرة البرنامج المصدر بأنفسهم ، فإن الكود نفسه هو نظام أساسي مستقل (رمز بايت Java ، على سبيل المثال). تتضمن الميزات الأخرى الكتابة الديناميكية وحجم برنامج أصغر قابل للتنفيذ.
|
||
|
||
#### مساوئ اللغات التفسيرية
|
||
|
||
العيب الأكثر بروزا هو سرعة التنفيذ النموذجي مقارنة مع اللغات المترجمة.
|
||
|
||
#### معلومات اكثر:
|
||
|
||
[ويكيبيديا - اللغة المجمعة](https://en.wikipedia.org/wiki/Compiled_language)
|
||
|
||
[ويكيبيديا - لغة مترجمة](https://en.wikipedia.org/wiki/Interpreted_language)
|
||
|
||
[مقالة programmerinterview.com - ما الفرق بين لغة مترجمة ومفسرة؟](http://www.programmerinterview.com/index.php/general-miscellaneous/whats-the-difference-between-a-compiled-and-an-interpreted-language/) |