Quaject - Quaject

В Информатика, а quaject является объект -подобно структура данных содержащий как данные, так и код (или указатели на код), представленный как интерфейс в форме звонки, и может принимать список вызовов на другие объекты для обратные вызовы и выноски. Они были разработаны Алексия Массалин в 1989 г. для Ядро синтеза,[1] и назван в честь Qua! Машина, уникальная аппаратная платформа, созданная Massalin. Происхождение термина «qua» неясно; Массалин с юмором заявляет, что это звук, изданный коалы.[2]

Основная цель quajects - предоставить абстракция справляться самомодифицирующийся код, позволяя оптимизировать код времени выполнения для отдельных объектов. В то время как исходное ядро ​​Synthesis требовало написания quajects вручную, язык ассемблера, это было сделано, чтобы избежать разработки сложного компилятора; Массалин отметил, что своевременная компиляция (JIT) для язык программирования высокого уровня что разрешает время выполнения генерация кода, как в Лисп или же Болтовня, также может применить этот подход, хотя она также утверждала, что сложность такого компилятора, вероятно, будет чрезмерно высокой.

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

Рекомендации

  1. ^ Пу, Калтон; Массалин, Генрих; Иоаннидис, Джон (1992). Синтез: эффективное внедрение основных сервисов операционной системы (PDF) (Кандидатская диссертация). Нью-Йорк, Нью-Йорк, США: Департамент компьютерных наук, Колумбийский университет. Заказной номер UMI GAX92-32050. В архиве (PDF) из оригинала на 2017-07-05. Получено 2012-04-25. Сложить резюме (2008-02-20). [1] В архиве 2016-03-12 в Wayback Machine
  2. ^ Пул, Гэри Эндрю (1996-12-01). "Qua". Проводной. Condé Nast. В архиве из оригинала на 2017-07-04. Получено 2016-08-23.