مخزن مؤقت للفجوة

في علوم الحاسوب، يُعرف مخزن الفجوات بأنه مصفوفة ديناميكية تُتيح عمليات إدراج وحذف فعّالة مُجمّعة بالقرب من نفس الموقع. وتُعدّ مخازن الفجوات شائعةً في مُحرّرات النصوص ، حيث تحدث مُعظم التغييرات على النص عند أو بالقرب من موقع المؤشر الحالي . يُخزّن النص في مخزن كبير مُقسّم إلى جزأين مُتجاورين، مع وجود فجوة بينهما لإدراج نص جديد. يتضمن تحريك المؤشر نسخ النص من أحد جانبي الفجوة إلى الجانب الآخر (أحيانًا يتأخر النسخ حتى العملية التالية التي تُغيّر النص). يُضيف الإدراج نصًا جديدًا في نهاية الجزء الأول، بينما يحذفه الحذف.

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

مثال

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

الحالة الابتدائية:

هذا هو المخرج.

يقوم المستخدم بإدخال نص جديد:

هكذا بدأ العالم.

يقوم المستخدم بتحريك المؤشر قبل "started"؛ يقوم النظام بنقل "started" من المخزن المؤقت الأول إلى المخزن المؤقت الثاني.

هكذا بدأ العالم.

يقوم المستخدم بإضافة نص لملء الفراغ؛ يقوم النظام بإنشاء فراغ جديد:

هكذا بدأ العالم كما نعرفه.

انظر أيضاً

مراجع

  1. مارك سي. تشو-كارول. " حواجز الفجوات، أم لا تتقيد بالحبال؟ " مدونة ساينس بلوجز ، 18 فبراير 2009. تاريخ الوصول: 30 يناير 2013.
  2. معلومات عن فجوة المخزن المؤقت في إيماكس. تم الوصول إليها في 30 يناير 2013.