ترميز CDR
في علوم الحاسوب، يُعد ترميز CDR تمثيلاً مضغوطاً للبيانات لقوائم Lisp المرتبطة . وقد طُوّر وحصل على براءة اختراع من قبل مختبر الذكاء الاصطناعي في معهد ماساتشوستس للتكنولوجيا ، وتم تنفيذه في أجهزة الحاسوب في عدد من أجهزة Lisp المشتقة من MIT CADR .
في الواقع، يُعدّ ترميز CDR فكرة عامة إلى حدٍّ ما؛ فعندما ينتهي كائن بيانات A بمرجع إلى بنية بيانات أخرى B ، يُمكننا وضع البنية B نفسها هناك، متداخلةً مع نهاية A وممتدةً منها . وبذلك، نُحرّر المساحة التي يشغلها المرجع، والتي قد تتراكم إذا تكررت العملية عدة مرات، كما نُحسّن موضع المرجع ، مما يُعزّز الأداء على الأجهزة الحديثة. يُعدّ هذا التحويل فعّالاً بشكل خاص للقوائم القائمة على cons التي صُمّم من أجلها؛ إذ نُحرّر حوالي نصف المساحة لكل عقدة نُجري عليها هذا التحويل.
ليس من الممكن دائمًا إجراء هذا الاستبدال، لأنه قد لا توجد مساحة كافية فارغة بعد نهاية A. وبالتالي، ستنتهي بعض الكائنات بمرجع حقيقي، وبعضها الآخر بالكائن المُشار إليه، ويجب أن يكون الجهاز قادرًا على التمييز بينهما من خلال قراءة الخلية الأخيرة. يمكن تحقيق ذلك برمجيًا مع بعض القصور باستخدام المؤشرات المُوسومة ، والتي تسمح بتمييز المؤشر في الموضع الأخير تحديدًا، ولكن يُفضل تنفيذه برمجيًا.
في وجود الكائنات القابلة للتغيير ، يصبح ترميز CDR أكثر تعقيدًا. إذا تم تحديث مرجع ليشير إلى كائن آخر، ولكن يوجد حاليًا كائن مخزن في ذلك الحقل، فيجب نقل الكائن، بالإضافة إلى أي مؤشرات أخرى تشير إليه. لا تقتصر هذه العمليات على كونها مكلفة أو مستحيلة في الغالب، بل إنها تتسبب بمرور الوقت في تجزئة المخزن. عادةً ما يتم تجنب هذه المشكلة باستخدام ترميز CDR فقط على هياكل البيانات غير القابلة للتغيير .
روابط خارجية
- مارك كانترويتز؛ باري مارغولين (محرران). "(2-9) ما هو ترميز CDR؟" . الأسئلة الشائعة: أسئلة متكررة حول لغة Lisp . شركة Advameg . تاريخ الاسترجاع: 9 أكتوبر 2011 .
- ل. بيتر دويتش: آلة LISP ببرامج مضغوطة للغاية. المؤتمر الدولي المشترك للذكاء الاصطناعي 1973، الصفحات 697-703
- جرينبلات، ر.، تقرير التقدم في آلة LISP، مذكرة 444، مختبر AILab.، معهد ماساتشوستس للتكنولوجيا، كامبريدج، ماساتشوستس، أغسطس 1977.
- ل. بيتر دويتش: تجربة مع نظام إنترليسب مبرمج برمجياً دقيقاً. MICRO 11: وقائع ورشة العمل السنوية الحادية عشرة حول البرمجة الدقيقة، نوفمبر 1978، الصفحات 128-129
- ألين، جون (1978). تشريح لغة الليسب . ماكجرو هيل.الصفحات 399-401
- لغة البرمجة ليسب
- ضغط البيانات
- نماذج أولية لبرمجة الحاسوب
