Jump to content

CDR-кодирование

В информатике CDR-кодирование — это сжатое представление данных для Lisp связанных списков . Он был разработан и запатентован Лабораторией искусственного интеллекта Массачусетского технологического института и реализован в компьютерном оборудовании в ряде машин на Лиспе, созданных на базе MIT CADR .

Кодирование CDR на самом деле является довольно общей идеей; всякий раз, когда объект данных A заканчивается ссылкой на другую структуру данных B поместить туда саму структуру B , перекрывая и выходя за конец A. , мы можем вместо этого Делая это, мы освобождаем пространство, необходимое для ссылки, которое может накапливаться, если делать это много раз, а также улучшаем локальность ссылки , повышая производительность на современных машинах. Преобразование особенно эффективно для списков на основе cons , для которых оно было создано; мы освобождаем около половины пространства для каждого узла, на котором выполняем это преобразование.

Не всегда возможно выполнить эту замену, потому что за концом A может не оказаться достаточно большого куска свободного пространства. Таким образом, некоторые объекты оканчиваются реальной ссылкой, а некоторые - объектом, на который ссылаются, и машина должна быть в состоянии сказать, прочитав последнюю ячейку, какая это. Этого можно добиться с некоторой неэффективностью в программном обеспечении за счет использования помеченных указателей , которые позволяют специально помечать указатель в конечной позиции как таковой, но лучше всего это делать аппаратно.

При наличии изменяемых объектов кодирование CDR становится более сложным. Если ссылка обновляется и указывает на другой объект, но в настоящее время в этом поле хранится объект, этот объект необходимо переместить вместе со всеми другими указателями на него. Такие шаги не только обычно дорогостоящи или невозможны, но и со временем приводят к фрагментации магазина. Обычно этой проблемы можно избежать, используя кодирование CDR только для неизменяемых структур данных.

[ редактировать ]
  • Марк Кантровитц; Барри Марголин (ред.). «(2-9) Что такое CDR-кодирование?» . FAQ: Часто задаваемые вопросы по Lisp . Адвамег, ООО . Проверено 9 октября 2011 г.
  • Аллен, Джон (1978). Анатомия Лиспа . МакГроу-Хилл.


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9b8fd871dfab475b7f3edb6b26aa7bfd__1711490760
URL1:https://arc.ask3.ru/arc/aa/9b/fd/9b8fd871dfab475b7f3edb6b26aa7bfd.html
Заголовок, (Title) документа по адресу, URL1:
CDR coding - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)