الفرق بين التجليد الثابت والديناميكي
المحتوى
يسمى الربط "لتعريف الوظيفة" بـ "استدعاء دالة" أو ارتباط "قيمة" بـ "متغير" ، "الربط". أثناء التجميع ، يتم إعطاء كل "تعريف للوظيفة" عنوان ذاكرة ؛ بمجرد أن يتم استدعاء الوظيفة ، ينتقل التحكم في تنفيذ البرنامج إلى عنوان الذاكرة هذا وينفذ رمز الوظيفة المخزن في ذلك الموقع ، وهذا هو الربط بين "استدعاء الوظيفة" و "تعريف الوظيفة". يمكن تصنيف التجليد على أنه "رابط ثابت" و "ربط ديناميكي".
إذا كانت معروفة بالفعل قبل وقت التشغيل ، ما هي الوظيفة التي سيتم التذرع بها أو ما هي القيمة التي يتم تخصيصها لمتغير ، فهذا يعني أنه "رابط ثابت". إذا كان الأمر يتعلق بمعرفة وقت التشغيل ، فسيطلق عليه "الربط الديناميكي".
- رسم بياني للمقارنة
- تعريف
- الاختلافات الرئيسية
- خاتمة
رسم بياني للمقارنة:
أساس للمقارنة | ملزم ثابت | الربط الديناميكي |
---|---|---|
حدث الحدث | الأحداث التي تحدث في وقت الترجمة هي "الربط الثابت". | الأحداث التي تحدث في وقت التشغيل هي "الربط الديناميكي". |
معلومات | جميع المعلومات اللازمة لاستدعاء وظيفة معروفة في وقت الترجمة. | جميع المعلومات تحتاج إلى استدعاء وظيفة تعرف في وقت التشغيل. |
أفضلية | كفاءة. | المرونة. |
زمن | تنفيذ سريع. | التنفيذ البطيء. |
أسم بديل | الربط المبكر. | ملزم في وقت متأخر. |
مثال | استدعاء وظيفة overloaded ، مشغلي overloaded. | وظيفة افتراضية في C ++ ، طرق تجاوز في جافا. |
تعاريف التجليد الثابت
عندما يعترف المحول البرمجي بكافة المعلومات المطلوبة لاستدعاء دالة أو كل قيم المتغيرات أثناء وقت الترجمة ، فإنه يطلق عليه "ملزمة ثابتة". نظرًا لأن جميع المعلومات المطلوبة معروفة قبل وقت التشغيل ، فإنها تزيد من كفاءة البرنامج ، كما تعمل على تحسين سرعة تنفيذ البرنامج.
تعمل Static Binding على جعل البرنامج فعالًا للغاية ، ولكنه يرفض مرونة البرنامج ، لأن "قيم المتغير" و "استدعاء الوظيفة" معرّفة مسبقًا في البرنامج. يتم تطبيق الربط الثابت في برنامج في وقت الترميز.
الحمل الزائد لوظيفة أو عامل ما هو مثال تعدد الأشكال المترجم ، أي التجليد الثابت.
تنفيذ الربط الثابت في C ++ مع مثال الحمولة الزائدة
#تتضمن هنا تتغير قيمة المؤشر حيث أن البرنامج قيد التنفيذ وقيمة المؤشر تقرر وظيفة الفئة التي سيتم استدعاءها. لذلك ، يتم توفير المعلومات في وقت التشغيل ، ويستغرق الأمر وقتًا لربط البيانات التي تؤدي إلى إبطاء التنفيذ. ومع ذلك ، فإننا نستنتج أنه عندما يكون لدينا معرفة مسبقة بقيم المتغيرات واستدعاء الوظيفة ، فإننا نطبق الارتباط الثابت. على العكس من ذلك ، في التجليد الديناميكي ، نحن نقدم جميع المعلومات في وقت التنفيذ.
خاتمة: