---
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/)