OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 31 Май, 2020 04:22

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 87 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
 Заголовок сообщения: Re: Не могу найти дженерики
СообщениеДобавлено: Пятница, 22 Май, 2020 10:28 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9269
Откуда: Россия, Орёл
Comdiv писал(а):
Илья Ермаков писал(а):
List<dynamic> у вас было.


В статически типизированном подходе не так - массив обобщённых элементов принимает любой обобщённый элемент. Поэтому он статический. А динамические проверки - это динамический подход.


Блин. Это у вас массив как первичный экземпляр принимает любой обобщённый элемент.

А при опосредованном полиморфном обращении (через указатель или параметр), с одной стороны, внутри ситуации (из процедуры или в точке использования коллекции) придётся разрешать всё, что покрывается базовым типом элемента коллекции, а с другой, снаружи ситуации (в точке вызова процедуры или в точке присваивания указателю на коллекцию) приходится разрешать передачу коллекции из любых элементов подтипа данного. И проверять фактическую совместимость уже в момент выполнения.

Чего Вы хотите? Запретить такой полиморфизм и "наслаждаться" статическим подходом? Или использовать глобальный анализ для выявления ситуации?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу найти дженерики
СообщениеДобавлено: Пятница, 22 Май, 2020 10:35 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1083
Откуда: Киев
Илья Ермаков писал(а):
Чего Вы хотите? Запретить такой полиморфизм и "наслаждаться" статическим подходом? Или использовать глобальный анализ для выявления ситуации?
Я говорю, о том, что бессмысленно соревноваться с гибкостью динамического подхода и о том, что динамика - это не синоним отсутствия контроля, а Вы мне такой вопрос задаёте. Я всего лишь говорю о том, что это именно динамический, а не статический подход. И да, конечно, статический подход лучше везде, где его достаточно, и чем более статический, тем лучше. Поэтому да - "запретить" и "наслаждаться", если по другому не понимаете.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу найти дженерики
СообщениеДобавлено: Пятница, 22 Май, 2020 10:54 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9269
Откуда: Россия, Орёл
Логика "идти от динамиики" как раз плоха.

Берётся статический хребет - и добавляется полиморфизм и динамические проверки к нему. И всё.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу найти дженерики
СообщениеДобавлено: Пятница, 22 Май, 2020 16:57 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1083
Откуда: Киев
Если Вы пробовали идти по такому пути и у Вас получилось хорошо, было бы интересно взглянуть на воплощение. Пусть в черновом виде.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу найти дженерики
СообщениеДобавлено: Пятница, 22 Май, 2020 23:22 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9269
Откуда: Россия, Орёл
В итоге тот же Dart - именно такой путь.
Сильный полиморфизм (с попаданием на динамические проверки) не превращает язык в "идущий от динамики".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу найти дженерики
СообщениеДобавлено: Суббота, 23 Май, 2020 01:54 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1083
Откуда: Киев
Внутри именно динамика с оптимизациями навороченного компилятора, насколько можно судить. Иначе не было бы такой удобной и эффективной стыковки.
Но тут уж, видимо, мы упёрлись в терминологический тупик.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу найти дженерики
СообщениеДобавлено: Суббота, 23 Май, 2020 11:57 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9269
Откуда: Россия, Орёл
Да в некотором смысле внутри КП тоже динамика. Объектная модель на базе нативного кода с метаинформацией. Которая используется частью через синтаксис, частью библиотечно.
Но может быть доиспользована и через расширения синтаксиса.

Именно поэтому я последний год и "пропагандирую" понимание, что объектная модель времени выполнения в КП/ББ - не менее важный стержень - и даже более инвариантный - чем синтаксис.
Выделился минимум сущностей, в которые можно транслировать и через которые может работать сложный, компонентный, расширяемый софт.
Если в синтаксисе идти вверх - в предметно-ориентированные надстройки - то они прекрасно ложатся в тот набор артефактов времени выполнения (модули, процедуры, система типов), который устоялся в том же ББ.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 87 ]  На страницу Пред.  1, 2, 3, 4, 5

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2020, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB