Kvaject - Quaject

v počítačová věda, a kvaject je objekt -jako datová struktura obsahující jak data, tak kód (nebo ukazatele na kód), vystavený jako rozhraní ve formě callentries, a může přijmout seznam callentries do jiných kvajektů pro zpětná volání a popisky. Byly vyvinuty Alexia Massalin v roce 1989 pro Syntetické jádro,[1] a pojmenovaný pro Qua! Stroj, jedinečná hardwarová platforma postavená Massalinem. Původ výrazu „qua“ je nejasný; Massalin vtipně tvrdí, že jde o zvuk vydaný uživatelem koaly.[2]

Hlavním účelem kvajektů je poskytnout abstrakce spravovat samočinně se měnící kód, povolením optimalizace běhového kódu na základě jednotlivých objektů. Zatímco původní jádro Synthesis vyžadovalo ruční psaní kvajektů montážní jazyk, toto bylo provedeno, aby se zabránilo vývoji složitého kompilátoru; Massalin to poznamenal just-in-time kompilace (JIT) pro programovací jazyk na vysoké úrovni který umožňuje běh generování kódu, jako v Lisp nebo Pokec, může také použít tento přístup, ačkoli také tvrdila, že složitost takového kompilátoru bude pravděpodobně neúměrná.

Kvajekty se liší od běžnějších objektů dvěma klíčovými způsoby: za prvé vždy používají formu injekce závislostí vzor pro správu obou rozhraní s jinými kvajekty a pokračování mimo kvajekt; seznam odkazů na callentry je součástí vytváření kvajektu a může být aktualizován během životnosti kvajektu. Zadruhé a kritičtěji může být sada metod daného kvajektu jedinečná pro konkrétní kvajekt; metody pro typ nebo třídu kvajektů jsou uloženy jako jedna nebo více šablon, nikoli jako pevný kód. Zatímco ke sdíleným metodám lze přistupovat prostřednictvím společné tabulky ukazatelů, jednotlivé kvajekty mohou mít také metody, které jsou generovány konkrétně k přizpůsobení výkonu chování daného kvajektu.

Reference

  1. ^ Pu, Calton; Massalin, Henry; Ioannidis, John (1992). Syntéza: Efektivní implementace základních služeb operačního systému (PDF) (Disertační práce). New York, NY, USA: Katedra počítačových věd, Columbia University. UMI Obj. Č. GAX92-32050. Archivováno (PDF) z původního dne 2017-07-05. Citováno 2012-04-25. Shrnutí ležel (2008-02-20). [1] Archivováno 2016-03-12 na Wayback Machine
  2. ^ Poole, Gary Andrew (1996-12-01). "Qua". Kabelové. Condé Nast. Archivováno z původního dne 2017-07-04. Citováno 2016-08-23.