OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 20 Март, 2019 22:21

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




Начать новую тему Ответить на тему  [ Сообщений: 38 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Обобщённые типы в Обероне
СообщениеДобавлено: Среда, 18 Март, 2015 12:29 

Зарегистрирован: Суббота, 02 Февраль, 2013 16:19
Сообщения: 16
В 1997 году Пол Рой и Клеменс Шиперски (Paul Roe and Clemens Szyperski) предложили расширение Оберона параметризованными типами:

http://research.microsoft.com/en-us/um/people/cszypers/pub/jmlc97.pdf

Подход основан на стирании типов, один-в-один имеющийся сегодня в Java, при этом в последней параметризованные типы появились в 2004 году, а статья вышла в 1997.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Среда, 18 Март, 2015 12:53 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
Маздайщик писал(а):
на этом форуме данная статья ни разу не обсуждалась.
Обсуждалась


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Среда, 18 Март, 2015 15:35 

Зарегистрирован: Суббота, 02 Февраль, 2013 16:19
Сообщения: 16
Обсуждалась в закрытом разделе, поэтому поиском я сначала не нашёл (не был залогинен). Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Среда, 18 Март, 2015 16:32 

Зарегистрирован: Четверг, 17 Ноябрь, 2005 11:51
Сообщения: 2931
Откуда: г. Ярославль
Маздайщик писал(а):
Обсуждалась в закрытом разделе, поэтому поиском я сначала не нашёл (не был залогинен). Спасибо.
Не за что, я сам не обратил внимания, что тема в "Карантине".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Четверг, 19 Март, 2015 08:29 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 617
Параметризованные типы есть в OO2C


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Понедельник, 23 Март, 2015 11:59 

Зарегистрирован: Суббота, 02 Февраль, 2013 16:19
Сообщения: 16
Не нашёл в руководстве на http://ooc.sourceforge.net/OOCref/OOCref_toc.html упоминания об этом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Понедельник, 23 Март, 2015 17:25 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 617
Нужно читать документ
/doc/from-v1-to-v2/oo2c-v2.(html, pdf)
раздел Parametric Types


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Понедельник, 23 Март, 2015 19:15 

Зарегистрирован: Суббота, 02 Февраль, 2013 16:19
Сообщения: 16
Там генерики сделаны по-своему, не по статье Роя и Шиперски. И, кстати, требуется, чтобы типы-параметры были записями или указателями на запись и расширяли заранее выбранный тип (для библиотечных генериков это тип Object.Object), в отличие от статьи. Подозреваю, что авторы компилятора не были знакомы с обсуждаемой статьёй, а сделали всё самостоятельно, что ещё раз подтверждает необходимость в параметрическом полиморфизме в Обероне.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Понедельник, 23 Март, 2015 22:37 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 617
Документация не соответствует текущей реализации - если посмотреть исходники OO2C, то можно увидеть, что параметрами могут быть не только записи, но и базовые типы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Понедельник, 23 Март, 2015 23:11 

Зарегистрирован: Вторник, 26 Январь, 2010 09:31
Сообщения: 617
хотя... не уверен, что смотрел оригинальные исходники, надо глянуть


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Вторник, 24 Март, 2015 09:07 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2559
Откуда: Россия, Ярославль
Маздайщик писал(а):
Подозреваю, что авторы компилятора не были знакомы с обсуждаемой статьёй, а сделали всё самостоятельно, что ещё раз подтверждает необходимость в параметрическом полиморфизме в Обероне.
Сами выберите себе ярлык за этот стыдный пример демагогии. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Вторник, 27 Декабрь, 2016 11:43 

Зарегистрирован: Воскресенье, 04 Январь, 2009 12:00
Сообщения: 52
Цитата:
Обобщённые типы в Обероне

это оксюморон


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Четверг, 29 Декабрь, 2016 01:44 

Зарегистрирован: Вторник, 22 Май, 2007 15:38
Сообщения: 138
Откуда: Питер
Однако, иногда необходимость в них возникает - например, комплекснве числа и численные алгоритмы, одинаково пригодные как для вещественных, так и для комплексных чисел.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Четверг, 29 Декабрь, 2016 21:30 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1537
Откуда: Беларусь, Минск
Вы, наверное, про перегрузку говорите, а не про обобщённые типы...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Пятница, 30 Декабрь, 2016 10:52 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7993
Откуда: Троицк, Москва
GameHunter писал(а):
Однако, иногда необходимость в них возникает - например, комплекснве числа и численные алгоритмы, одинаково пригодные как для вещественных, так и для комплексных чисел.
Можно чуть подробней?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Суббота, 31 Декабрь, 2016 01:47 

Зарегистрирован: Вторник, 22 Май, 2007 15:38
Сообщения: 138
Откуда: Питер
Допустим, надо решить два эллиптических уравнения в одной программе (потому что они являются элементами более сложной модели). Одно уравнение комплексное, другое вещественное. Один метод решения одинаково хорошо подходит для обоих уравнений. Соответственно реализуем метод в отдельном модуле и далее на его основе описываем уравнения.

Однако как описать уравнения с разными типами данных для одного метода решения?

Можно описать вещественное уравнение как частный случай комплексного и использовать один комплексный модуль. Тогда получаем оверхед по памяти и производительности.

Можно написать два почти идентичных модуля - один вещественный, другой комплексный. Тогда получаем двойную работу по их сопровождению.

Если бы в обероне имелись родовые модули как в ада, проблема решалась бы простой параметризацией родового модуля вещественным или комплексным типом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Суббота, 31 Декабрь, 2016 06:13 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7993
Откуда: Троицк, Москва
Большое спасибо.

Но ведь детали вроде ошибок округления и потери точности в двух случаях требуют разной трактовки?

Не убеждён.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Суббота, 31 Декабрь, 2016 19:50 

Зарегистрирован: Вторник, 22 Май, 2007 15:38
Сообщения: 138
Откуда: Питер
Верно, погрешность вещественного и комплексного решения в итерационных методах описывается чут-чуть по разному. Именно чут-чуть: достаточно легко формируется условие сходимости, одинаково пригодное для обоих вариантов. Во всяком случае, для метода эволюционной факторизации решения этих уравнений, который я использую (терминология взята из последних "численных методов" Калиткина с соавторами 2013-го года).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Суббота, 31 Декабрь, 2016 20:20 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 7993
Откуда: Троицк, Москва
Но тогда, как минимум, уходит проблема поддержки двух версий.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обобщённые типы в Обероне
СообщениеДобавлено: Суббота, 31 Декабрь, 2016 21:00 

Зарегистрирован: Вторник, 22 Май, 2007 15:38
Сообщения: 138
Откуда: Питер
Куда уходит? Всё равно необходимо два модуля, отличающиеся как минимум одной строчкой:
Код:
TYPE Numver = REAL;

или
Код:
TYPE Numver = COMPLEX;


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

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


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

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


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

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