фичивание языка on demand? - проходили.. (object pascal, js, php).
Зачем "по требованию"? Введения динамических множеств (динамических упорядоченных массивов) от ссылок
будет достаточно для ассимптотической оптимальности (в сравнении с машкодами) таких расширенных Паскаля-Модулы-Оберонов на любых задачах. Причем на любых данных, а не только специально сконструированных. Не представляю, какие могут быть задачи, скорость которых можно качественно увеличить новыми фичами языка.
Тогда, без модуля SYSTEM, упорядочение ссылок в O7/O11 невозможно, если только пользователь не контролирует исходный код и каждое размещение соответствующих динамических объектов....
пришли к началу....
Вопрос в том, нужен ли вообще такой язык, чтобы он оптимально работал на любых данных? Или пользователю можно позволить создавать данные неоптимальные для некоторых задач?
Например, в Аде можно создать (?) статический перечислимый тип без отношений порядка, массивы и списки из данных такого типа будут принципиально неупорядочиваемы, и по ним принципиально невозможно будет проводить быстрый поиск. Нужно запретить такой тип данных?
Хэш-функцию тоже не всегда можно вычислять от объектов даже в Паскале-Модуле-Оберонах, например если объект имеет только ссылочные поля, и его "значение" задается только его местом в топологической ссылочной сети (вычисление которого крайне неэффективно). Нужно запретить такие объекты либо разрешить упорядочение ссылок?
Упорядоченные ссылки, это по сути обычный перечислимый тип только с динамически изменяемым диапазоном значений и без встроенных функций succ, prev, ord, а совокупность объектов этого типа есть неявный динамический массив от всех значений этого типа (ссылки редуцируются к индексам массива). С ними всегда можно организовать быстрый поиск объектов. Допустим/обязателен такой тип ссылок?
Инкапсуляция данных вообще вредит эффективности работы с ними внешним пользователям. Инкапсуляция недопустима?
Каким должен быть
правильный язык?
Если обеспечивать оптимальность только для специально сконструированных данных, то здесь исходных Паскаля-Модулы-Оберонов уже достаточно для любых задач. Ссылки можно упорядочить с помощью поля персонального номера объекта, для тех типов ссылок, где такой номер есть. Допустимо такое ограничение оптимальности для
правильного языка?