ObjVlisp


ObjVlisp — это объектно-ориентированное расширение 1984 года Vlisp [1] — Vincennes LISP, диалекта LISP, разрабатываемого с 1971 года в Университете Париж VIII — Венсен . Он примечателен как одна из самых ранних реализаций концепции метаклассов и, в частности, явных (в отличие от неявных) метаклассов. В модели ObjVlisp «каждый объект является экземпляром одного класса. Классы являются экземплярами других классов, называемых метаклассами. Эта модель допускает расширение статической части OOL, т. е. структурных аспектов объектов, рассматриваемых как реализация абстрактных данных. виды» [2]

ObjVlisp предоставлял гораздо более гибкую модель метаклассов, чем та, что предоставлялась более ранними объектно-ориентированными языками, особенно Smalltalk . В Smalltalk-80 всякий раз, когда создается новый класс, автоматически создается соответствующий метакласс; у него нет имени, независимого от имени метакласса, для которого он был создан — метаклассы являются неявными, а не явными. В отличие от этого, в ObjVlisp можно определить именованные метаклассы, и при определении класса необходимо указать, экземпляр какого именованного метакласса он будет создавать. [3]

Явная поддержка метаклассов в ObjVlisp повлияла на предоставление той же возможности в Common Lisp Object System . [4]

Объектная модель ObjVlisp позже была реализована на Прологе для создания ObjVProlog . [5] [6] И Python , и Converge реализуют систему метаклассов, эквивалентную системе ObjVLisp. [7] [8]