Здравствуйте, nikov, Вы писали:
А>> c# 6 возможно будут добавлены зависимые типы
N>а может быть, и нет
Надеюсь, что если вдруг надумаете этим заниматься, то это будет сделано в рантайме, а не в компиляторе.
ЗЫ
Откровенно говоря не вижу смысла в полноценных зависимых типах. А вот уникальные типы было бы не плохо ввести. Причем на уровне рантайма. Чтобы джит и верификтор могли проверить, что ссылка на объект уникальна.
Это бы резко облегчила реализацию многих задач. Особенно, связанных с многозадачностью.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: c# 6 возможно будут добавлены зависимые типы
Здравствуйте, VladD2, Вы писали:
VD>Откровенно говоря не вижу смысла в полноценных зависимых типах.
А они вообще не практичны. Для них в общем случае вообще нельзя сказать, где заканчивается компиляция и где начинается рантайм.
Плюс они очень сильно обламывают полиморфизм.
Плюс размер типов получается таким, что закачаешься.
...
А вот что можно реализовать так вот это: http://goto.ucsd.edu/~rjhala/liquid/
Они этим даже багу нашли в одной из OCaml'овских библиотек.
VD>А вот уникальные типы было бы не плохо ввести. Причем на уровне рантайма. Чтобы джит и верификтор могли проверить, что ссылка на объект уникальна.
Делать их надо вот так: http://lamp.epfl.ch/~phaller/capabilities.html
Причем на капабилитях можно реализовать некий аналог С++ного const но без дырок.
Получиться должно весьма круто.
Создаем хеш-таблицу. Набиваем ее данными. После чего делаем uniqueness to const преобразование и получаем неизменяемую хеш-таблицу, которую можно спокойно шарить между потоками.
И без единого копирования.
Также можно поступать и с другими сложными, в том числе циклическими структурами данных.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн