Оберон-технология: особенности и перспективы |
Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение.
Всего в теме 6256 сообщений
Добавить свое сообщение
Отслеживать это обсуждение  Обсуждение из раздела Школа ОБЕРОНА
№ 5826 28-10-2007 06:08 |  |
Ответ на »сообщение 5825« (Антон Григорьев)
___________________________
Ответ на »сообщение 5824« (AVC)
___________________________
Но иногда думаю так: а чем, в принципе, обычное ООП не устраивает? Базовый класс (тип записи) определяет класс типов, для которых тот или иной "алгоритм является инвариантным".
А вот реализуйте такой класс, который может отсортировать массив элементов любого типа, для которых определены операции "больше" и "меньше", не заставляя программиста писать дополнительные callback-функции или наследники для каждого из этих типов, и тогда я тоже скажу, что вполне можно и без обобщений обойтись.
Что-то мне кажется, сортировка строк и сортировка целых чисел суть разные вещи. Тем более, если "любой элемент" является записью, в которой есть и числа, и строки. Думаю, у каждого обобщения есть предел, внутри которого, скажем, метаинформация о типах сильно помогает.
№ 5825 28-10-2007 06:02 |  |
Ответ на »сообщение 5824« (AVC)
___________________________
Но иногда думаю так: а чем, в принципе, обычное ООП не устраивает? Базовый класс (тип записи) определяет класс типов, для которых тот или иной "алгоритм является инвариантным".
А вот реализуйте такой класс, который может отсортировать массив элементов любого типа, для которых определены операции "больше" и "меньше", не заставляя программиста писать дополнительные callback-функции или наследники для каждого из этих типов, и тогда я тоже скажу, что вполне можно и без обобщений обойтись.
№ 5824 28-10-2007 05:24 |  |
Ответ на »сообщение 5823« (Илья Ермаков)
___________________________
Ответ на »сообщение 5822« (Axcel)
___________________________
Ответ на »сообщение 5800« (Илья Ермаков)
___________________________
>>>Все-таки неплохо бы еще иметь возможность определить класс типов, для которых, построенный алгоритм является инвариантным.
Согласен, чего иногда может не хватать - это средств обобщёнки.
Вроде бы, согласен.
Но иногда думаю так: а чем, в принципе, обычное ООП не устраивает? Базовый класс (тип записи) определяет класс типов, для которых тот или иной "алгоритм является инвариантным".
№ 5823 28-10-2007 04:10 |  |
Ответ на »сообщение 5822« (Axcel)
___________________________
Ответ на »сообщение 5800« (Илья Ермаков)
___________________________
Все-таки неплохо бы еще иметь возможность определить класс типов, для которых, построенный алгоритм является инвариантным.
Согласен, чего иногда может не хватать - это средств обобщёнки.
№ 5822 28-10-2007 04:05 |  |
Ответ на »сообщение 5800« (Илья Ермаков)
___________________________
... в Обероне достигнут баланс, близкий к оптимуму, средств для построения алгоритмов
Все-таки неплохо бы еще иметь возможность определить класс типов, для которых, построенный алгоритм является инвариантным.
№ 5821 28-10-2007 02:44 |  |
Ответ на »сообщение 5816« (Сергей Перовский)
___________________________
Ответ на »сообщение 5813« (Илья Ермаков)
___________________________
По критерию сбалансированности, попаданию в центр при оптимизации по наиболее важным параметрам.
Список параметров в студию!
К примеру, надёжность, высокоуровневость, компактность, эффективность.
№ 5820 28-10-2007 02:37 |  |
Ответ на »сообщение 5814« (Jack Of Shadows)
___________________________
Ответ на »сообщение 5813« (Илья Ермаков)
___________________________
Есть такое понятие - локальный оптимум. О лиспе например говорят что это локальный оптимум.
Локальный оптимум означает что хотя достигнутая точка не может быть формально доказана наиболее оптимальной, известно что для того чтобы получить нечто более лучшее, более оптимальное, придется слишком далеко от этой точки отпрыгивать.
То есть мелкими исправлениями эту получить нечто лучшее не получится.
О том и речь!
В группе императивных языков (куда практически весь мейнстрим подпадает) Оберон-семейство находится в малой окрестности локального оптимума. В то время, как большинство остальных пытаются "прыгать не подумавши" - и оказываются в гораздо более широкой окрестности, но того же оптимума. Возьмём, например, Smalltalk - ещё один пример локального оптимума. Бездумно приклепав слова class и object, мейнстримовцы обрадовались и решили, что они стали "гораздо круче всех". А в итоге подвисли вдали и от одного, и от другого оптимума.
№ 5819 27-10-2007 22:52 |  |
Ответ на »сообщение 5817« (Дядя .СЭМ)
___________________________
... И избыточная, и необходимая все это квалификационные оценки - вот меня и интересует как господин Вирт, или вы господин info21 как интерпретатор идей Вирта, их вырабатывает
Из опыта, из опыта...
Ясно, что задача не формализуема. В этом вся и сложность.
И че ломиться в открытую дверь?
Вам не кажется что тяга Вирта к минимальности здесь явно поменяла вектор? /Quote]
Нет, не кажется. Вы, что ли, Дейкстру не читали? Это насчет циклов. Так почитайте.
№ 5818 27-10-2007 19:27 |  |
Ответ на »сообщение 5815« (Сергей Перовский)
___________________________
>>>Все свято верят, что уложили рюкзаки оптимально. Оптимально вообще! Наши рюкзаки самые рюкзакатые!
Именно. Наши рюкзаки рюкзакатее -- в большем числе ситуаций, чем нерюкзакатые рюкзаки рюкзаконосцев из другой палатки. :)
А если покупать по новому рюкзаку на каждую новую ситуацию, то никаких рюкзакохранилищ не хватит.
№ 5817 27-10-2007 18:27 |  |
Ответ на »сообщение 5784« (info21)
___________________________
>>>Есть сложность необходимая, есть избыточная. В чем вопрос-то?
...
>>>Но почему-то диспутанты неизменно ломают лбы именно насчет этого самого точного положения неточно определенной функции.
Вообще-то я экстремумов не искал, меня заинтересовало то что в некоторых местах зовется оценочной функцией. С ваших слов я понял что внесение в ЯП оператора FOR при наличии в нем оператора WHILE приводит к избыточной сложности реализации компилятора. Теперь вот появилась сложность необходимая. И избыточная, и необходимая все это квалификационные оценки - вот меня и интересует как господин Вирт, или вы господин info21 как интерпретатор идей Вирта, их вырабатывает (система формальных методов, набор определенных принципов, интуиция или нечто иное).
>>>Вирт в Обероне ищет (в отличие от прочих) минимальности прежде всего.
Позвольте привести вам отрывок из M. Reiser, N. Wirth, Programming in Oberon: Steps beyond Pascal and Modula. ACM Press, 1992, p.58:
"Evidently, the Loop statement is more general that either the While statement or repeat statements. The latter two can easily be expressed in terms of a loop statement with a single exit. However, we recommend the use of the loop statement only for cases with more than one exit point (or with an exit point that must lie in the middle of the statement sequence)."
и перевод (самопальный, корректура приветствуется)
"Очевидно, оператор loop является более общим чем операторы while или repeat. Последние оба легко могут быть выражены в терминах оператора loop с единственным выходом. Однако, мы рекомендуем использование оператора loop только для случаев с более чем одной точкой выхода (или с точкой выхода, которая должна находиться в середине последовательности операторов)."
Вам не кажется что тяга Вирта к минимальности здесь явно поменяла вектор? Здесь все "Трое из ларца одинаковы с лица". И и тесные родственные связи авторами признаются, все трое если и не близнецы то уж точно родные братья.
Добавить свое сообщение
Отслеживать это обсуждение 
Дополнительная навигация: |
|