OberonCore https://forum.oberoncore.ru/ |
|
Обобщённые типы в Обероне https://forum.oberoncore.ru/viewtopic.php?f=30&t=5366 |
Страница 1 из 2 |
Автор: | Маздайщик [ Среда, 18 Март, 2015 12:29 ] |
Заголовок сообщения: | Обобщённые типы в Обероне |
В 1997 году Пол Рой и Клеменс Шиперски (Paul Roe and Clemens Szyperski) предложили расширение Оберона параметризованными типами: http://research.microsoft.com/en-us/um/people/cszypers/pub/jmlc97.pdf Подход основан на стирании типов, один-в-один имеющийся сегодня в Java, при этом в последней параметризованные типы появились в 2004 году, а статья вышла в 1997. Странно, что (а) ни в одной известной реализации Оберона (включая КП) до сих пор этот механизм не реализован (на сколько я знаю) и (б) на этом форуме данная статья ни разу не обсуждалась. Добавление обобщённых типов в Оберон когда-то обсужадось — участники форума сошлись на том, что лучше вручную генерить код и тут же его компилировать, т.е. наши костыли удобнее. |
Автор: | Иван Кузьмицкий [ Среда, 18 Март, 2015 12:53 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Маздайщик писал(а): на этом форуме данная статья ни разу не обсуждалась. Обсуждалась
|
Автор: | Маздайщик [ Среда, 18 Март, 2015 15:35 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Обсуждалась в закрытом разделе, поэтому поиском я сначала не нашёл (не был залогинен). Спасибо. |
Автор: | Иван Кузьмицкий [ Среда, 18 Март, 2015 16:32 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Маздайщик писал(а): Обсуждалась в закрытом разделе, поэтому поиском я сначала не нашёл (не был залогинен). Спасибо. Не за что, я сам не обратил внимания, что тема в "Карантине".
|
Автор: | Kemet [ Четверг, 19 Март, 2015 08:29 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Параметризованные типы есть в OO2C |
Автор: | Маздайщик [ Понедельник, 23 Март, 2015 11:59 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Не нашёл в руководстве на http://ooc.sourceforge.net/OOCref/OOCref_toc.html упоминания об этом. |
Автор: | Kemet [ Понедельник, 23 Март, 2015 17:25 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Нужно читать документ /doc/from-v1-to-v2/oo2c-v2.(html, pdf) раздел Parametric Types |
Автор: | Маздайщик [ Понедельник, 23 Март, 2015 19:15 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Там генерики сделаны по-своему, не по статье Роя и Шиперски. И, кстати, требуется, чтобы типы-параметры были записями или указателями на запись и расширяли заранее выбранный тип (для библиотечных генериков это тип Object.Object), в отличие от статьи. Подозреваю, что авторы компилятора не были знакомы с обсуждаемой статьёй, а сделали всё самостоятельно, что ещё раз подтверждает необходимость в параметрическом полиморфизме в Обероне. |
Автор: | Kemet [ Понедельник, 23 Март, 2015 22:37 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Документация не соответствует текущей реализации - если посмотреть исходники OO2C, то можно увидеть, что параметрами могут быть не только записи, но и базовые типы. |
Автор: | Kemet [ Понедельник, 23 Март, 2015 23:11 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
хотя... не уверен, что смотрел оригинальные исходники, надо глянуть |
Автор: | Пётр Кушнир [ Вторник, 24 Март, 2015 09:07 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Маздайщик писал(а): Подозреваю, что авторы компилятора не были знакомы с обсуждаемой статьёй, а сделали всё самостоятельно, что ещё раз подтверждает необходимость в параметрическом полиморфизме в Обероне. Сами выберите себе ярлык за этот стыдный пример демагогии.
|
Автор: | perloid [ Вторник, 27 Декабрь, 2016 11:43 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Цитата: Обобщённые типы в Обероне это оксюморон |
Автор: | GameHunter [ Четверг, 29 Декабрь, 2016 01:44 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Однако, иногда необходимость в них возникает - например, комплекснве числа и численные алгоритмы, одинаково пригодные как для вещественных, так и для комплексных чисел. |
Автор: | Valery Solovey [ Четверг, 29 Декабрь, 2016 21:30 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Вы, наверное, про перегрузку говорите, а не про обобщённые типы... |
Автор: | Info21 [ Пятница, 30 Декабрь, 2016 10:52 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
GameHunter писал(а): Однако, иногда необходимость в них возникает - например, комплекснве числа и численные алгоритмы, одинаково пригодные как для вещественных, так и для комплексных чисел. Можно чуть подробней?
|
Автор: | GameHunter [ Суббота, 31 Декабрь, 2016 01:47 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Допустим, надо решить два эллиптических уравнения в одной программе (потому что они являются элементами более сложной модели). Одно уравнение комплексное, другое вещественное. Один метод решения одинаково хорошо подходит для обоих уравнений. Соответственно реализуем метод в отдельном модуле и далее на его основе описываем уравнения. Однако как описать уравнения с разными типами данных для одного метода решения? Можно описать вещественное уравнение как частный случай комплексного и использовать один комплексный модуль. Тогда получаем оверхед по памяти и производительности. Можно написать два почти идентичных модуля - один вещественный, другой комплексный. Тогда получаем двойную работу по их сопровождению. Если бы в обероне имелись родовые модули как в ада, проблема решалась бы простой параметризацией родового модуля вещественным или комплексным типом. |
Автор: | Info21 [ Суббота, 31 Декабрь, 2016 06:13 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Большое спасибо. Но ведь детали вроде ошибок округления и потери точности в двух случаях требуют разной трактовки? Не убеждён. |
Автор: | GameHunter [ Суббота, 31 Декабрь, 2016 19:50 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Верно, погрешность вещественного и комплексного решения в итерационных методах описывается чут-чуть по разному. Именно чут-чуть: достаточно легко формируется условие сходимости, одинаково пригодное для обоих вариантов. Во всяком случае, для метода эволюционной факторизации решения этих уравнений, который я использую (терминология взята из последних "численных методов" Калиткина с соавторами 2013-го года). |
Автор: | Info21 [ Суббота, 31 Декабрь, 2016 20:20 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Но тогда, как минимум, уходит проблема поддержки двух версий. |
Автор: | GameHunter [ Суббота, 31 Декабрь, 2016 21:00 ] |
Заголовок сообщения: | Re: Обобщённые типы в Обероне |
Куда уходит? Всё равно необходимо два модуля, отличающиеся как минимум одной строчкой: Код: TYPE Numver = REAL; или Код: TYPE Numver = COMPLEX;
|
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |