وقت الربط

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

أمثلة

يوضح كود Java التالي كلا وقتي الربط. يتم ربط الدالة fooمبكرًا بكتلة الكود التي تلي تعريف الدالة في السطر 3. أما استدعاء الدالة addفيتم ربطه متأخرًا لأنها Listواجهة ، لذا يجب أن تشير إلى نوع فرعي منها. قد تشير إلى واجهة أخرى، أو واجهة أخرى ، أو أي نوع فرعي آخر من الواجهة . لا تُعرف الدالة التي تشير إليها الدالة إلا في وقت التشغيل.listlistLinkedListArrayListListadd

استيراد java.util.List ;public void foo ( List < String > list ) {list.add ( "bar " ) ;}

سكون متأخر

الربط الثابت المتأخر هو نوع من الربط يقع بين الربط الثابت والربط الديناميكي. انظر إلى مثال PHP التالي :

class A { public static $word = "hello" ; public static function hello () { print self :: $word ; } }class B extends A { public static $word = "bye" ; }B :: hello ();

في هذا المثال، يربط مُفسِّر PHP الكلمة المفتاحية ` selfinside` A::hello()بالفئة `class` A، وبالتالي ينتج عن استدعاء ` B::hello()class` السلسلة النصية "hello". لو كانت دلالات `class` self::$wordمبنية على الربط الثابت المتأخر، لكانت النتيجة "bye".

ابتداءً من إصدار PHP 5.3، أصبح الربط الثابت المتأخر مدعومًا. [ 2 ] تحديدًا، إذا self::$wordتم تغيير ما سبق إلى static::$wordما هو موضح في الكتلة التالية، حيث يتم ربط الكلمة المفتاحية staticفقط في وقت التشغيل، فإن نتيجة استدعاء الدالة B::hello()ستكون "bye":

class A { public static $word = "hello" ; public static function hello () { print static :: $word ; } }class B extends A { public static $word = "bye" ; }B :: hello ();

انظر أيضاً

مراجع

  1. هندسة النظم والبرمجيات - المصطلحات ISO/IEC/IEEE 24765:2010(E) ، IEEE، 15 ديسمبر 2010
  2. "الروابط الثابتة المتأخرة" . تم الاطلاع عليه في 3 يوليو 2013 .