Существуют ли Smalltalks без метаклассов?

По крайней мере, в Squeak и Pharo каждый класс имеет соответствующий метакласс, который содержит классовые методы класса. Это в каждом случае Smalltalk?


person Richard Durr    schedule 14.11.2010    source источник
comment
Просто любопытно - с чем связан ваш вопрос?   -  person Bob Jarvis - Reinstate Monica    schedule 18.11.2010
comment
Реализация языка-потомка Smalltalk-80.   -  person Richard Durr    schedule 19.11.2010


Ответы (2)


Согласно статье Википедии о Smalltalk, метаклассы были введены в Smalltalk-80, и я думаю, что все версии теперь они в общем употреблении.

В более ранних версиях Smalltalk-71, Smalltalk-72 и Smalltalk-76 их не было.

person Don Roby    schedule 14.11.2010

Вы можете проверить собственный язык. Это основанный на прототипе потомок Smalltalk.

person Igor Stasenko    schedule 10.12.2010
comment
Да, хотя технически это правда, у Self тоже нет классов… (по крайней мере, на уровне пользователя :) - person Richard Durr; 11.12.2010
comment
С точки зрения виртуальной машины smalltalk метакласса не существует. Есть только классы. т.е. каждый объект имеет собственный класс, хотя и определяется его поведение. Что касается меня, концепция метаклассов является «необязательной» в том смысле, что вы можете изменить систему smalltalk до такой степени, что у вас останутся только классы. И эту систему по-прежнему можно будет справедливо назвать Smalltalk. - person Igor Stasenko; 11.12.2010