Язык Self, концепция прототипов, фреймов.

Ну и принцип делегирования как один из основных у меня тоже принят. Это очень глубокий принцип.
В общем, любопытный родственник отыскался.
---
https://github.com/pavel-krivanek/articles/tree/master/SelfObjectModel
**Self был первым языком программирования, который пришел с концепцией прототипов. Self полностью обходится только объектами, состоящими из слотов, делегированием между ними и кодом, назначенным объектам. Из этих ингредиентов ему удается сформировать очень мощную и гибкую объектную модель.
...
Объекты в Self состоят из слотов, которые называются ссылками.
Self различает несколько типов слотов: слоты данных, слоты аргументов, родительские слоты или слоты, ссылающиеся на методы. Кроме того, у него есть несколько вспомогательных видов слотов. Некоторые из них, как это ни парадоксально, не нуждаются в имени.
Делегирование — это простой механизм. Когда мы отправляем сообщение объекту, виртуальная машина пытается найти в нем слот с именем, соответствующим имени сообщения. Когда этот слот является слотом данных, результатом этого сообщения является объект, на который ссылается этот слот. Когда виртуальная машина не находит подходящего слота, она начинает искать в объектах, на которые ссылаются родительские слоты данного объекта. Если найденный слот содержит метод, код этого метода выполняется в контексте объекта, получившего сообщение.
...
Гораздо интереснее то, как Self управляет методами. Методы — это, опять же, объекты со слотами. Они имеют некоторый связанный код.
...
Модель объекта Self требует минимума базовых концепций, которые согласованы даже на самом низком уровне.
Объекты со слотами с ассоциированным кодом и делегированием между ними.
Тем не менее, она способна достигать нетривиальных свойств, таких как множественное динамическое наследование, первоклассные пространства имен, модули или полные замыкания.
|
</> |