1. Проверка корректности работы с уникальными ссылками
2. Лайфтайм
3. Определение по используемому коду типа ссылки (уникальная/шаред) и создания соответствющего типа
Здравствуйте, s22, Вы писали:
s22>Будут ли следующие возможности s22>1. Проверка корректности работы с уникальными ссылками s22>2. Лайфтайм s22>3. Определение по используемому коду типа ссылки (уникальная/шаред) и создания соответствющего типа
Это все возможности языка. В одном они могут быть, в другом — нет. Мы позволим описывать собственные символы и предоставим легкий путь производить связыванием между именами и символами. А уж как вы там будете интерпретировать эти символы — не наша забота.
Заведешь ты в своем языке символы "Лайфтайм", "уникальная ссылка" и "разделяемая ссылка" будет тебе эта функциональность. Мы поможем проверить, что уникальная ссылка не пересеклась с разделяемой или еще чем-то.
Будут пресеты для организации связывания по алгоритмам распространенных языков (ява, шарп, паскаль). Их можно будет расширять.
Семантика же — это уже забота авторов языков.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Это все возможности языка. В одном они могут быть, в другом — нет. Мы позволим описывать собственные символы и предоставим легкий путь производить связыванием между именами и символами. А уж как вы там будете интерпретировать эти символы — не наша забота.
VD>Заведешь ты в своем языке символы "Лайфтайм", "уникальная ссылка" и "разделяемая ссылка" будет тебе эта функциональность. Мы поможем проверить, что уникальная ссылка не пересеклась с разделяемой или еще чем-то.
VD>Будут пресеты для организации связывания по алгоритмам распространенных языков (ява, шарп, паскаль). Их можно будет расширять.
VD>Семантика же — это уже забота авторов языков.
Здравствуйте, s22, Вы писали:
s22>Повторить раст возможно?
Да, хоть Хаскель.
Мы делаем универсальный тул для создания любых языков и тулов к ним. Хоть регексы, хоть Расты. Нам по барабану. Мы сервисы предоставляем, а не готовые языки.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, s22, Вы писали:
s22>>Повторить раст возможно?
VD>Да, хоть Хаскель.
VD>Мы делаем универсальный тул для создания любых языков и тулов к ним. Хоть регексы, хоть Расты. Нам по барабану. Мы сервисы предоставляем, а не готовые языки.
С Хаскелем как раз намного проще. Там особых изворотов нет.
Будет ли это делаться в типизаторе декларотивно или надо как в случае с отступами писать некий препроцессор
Здравствуйте, s22, Вы писали:
22>С Хаскелем как раз намного проще. Там особых изворотов нет.
Как раз система типов хаскеля довольно сложная. Сложнее чем в Расте.
То что в языке много приседаний по поводу размежения обектов и контроля областей видимости еще не значит, что у него сложная система типов.
s22>Будет ли это делаться в типизаторе декларотивно или надо как в случае с отступами писать некий препроцессор
Декларативно будет описываться то что связано со связыванием имен и выводом типов.
Далее нужно будет задать правила совместимости (приводимости) типов.
Ну, а вопросы размежения обектов в рантайме уже ложотся на генерацию кода который будет определять семантику.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Декларативно будет описываться то что связано со связыванием имен и выводом типов.
VD>Далее нужно будет задать правила совместимости (приводимости) типов.
VD>Ну, а вопросы размежения обектов в рантайме уже ложотся на генерацию кода который будет определять семантику.
Причем тут рантайм? я говорю про компайл тайм.
Если ссылка не является разделяемой, определяется на основе ее использования, то генерируется тп unic[T] иначе shared[T].
Здравствуйте, s22, Вы писали:
s22>Если ссылка не является разделяемой, определяется на основе ее использования, то генерируется тп unic[T] иначе shared[T].
Это проблемы генерации кода. С точки зрения типизации языка это не более чем разные типы. Ты сам описал их в терминах дженериков. И это правильно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, s22, Вы писали:
s22>>Если ссылка не является разделяемой, определяется на основе ее использования, то генерируется тп unic[T] иначе shared[T].
VD>Это проблемы генерации кода. С точки зрения типизации языка это не более чем разные типы. Ты сам описал их в терминах дженериков. И это правильно.
Не верно.
Если это проблема генерации кода, то в редакторе она не будет отображаться как....
Проверка уникальная ссылка или нет должна выполняться на этапе типзации.
Здравствуйте, s22, Вы писали:
s22>Если это проблема генерации кода, то в редакторе она не будет отображаться как....
Почему не будет? Ты заведешь для уникальных и других ссылок разные типы символов и они будут всегда отличаться.
s22>Проверка уникальная ссылка или нет должна выполняться на этапе типзации.
С точки зрения типизации понятия вроде уникальности ссылки не более чем тип символа или его атрибут.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
s22>>Проверка уникальная ссылка или нет должна выполняться на этапе типзации.
VD>С точки зрения типизации понятия вроде уникальности ссылки не более чем тип символа или его атрибут.
На каком этапе должны отлавливаться ошибки неуникальности ссылки компаилтайм.
Здравствуйте, VladD2, Вы писали:
VD>С точки зрения типизации понятия вроде уникальности ссылки не более чем тип символа или его атрибут.
Ты не прав. Уникальная ссылка это нечто большее, чем просто атрибут символа.
def x = SomeUnique();
x.Foo();//ok
def y = x;
x.Foo();//error: destroyed unique reference
y.Foo();//ok
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Здравствуйте, WolfHound, Вы писали:
VD>>С точки зрения типизации понятия вроде уникальности ссылки не более чем тип символа или его атрибут. WH>Ты не прав. Уникальная ссылка это нечто большее, чем просто атрибут символа. WH>
WH>def x = SomeUnique();
WH>x.Foo();//ok
WH>def y = x;
WH>x.Foo();//error: destroyed unique reference
WH>y.Foo();//ok
WH>
И что мы тут видим? Всего лишь необычную область видимости.
Короче, нет никакой разницы. Области видимости — это тоже вопрос семантики языка который определяется его авторами.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>И что мы тут видим? Всего лишь необычную область видимости. VD>Короче, нет никакой разницы. Области видимости — это тоже вопрос семантики языка который определяется его авторами.