OberonCore
https://forum.oberoncore.ru/

Свежый взгляд (Рыжий vs Дейкстра и др.)
https://forum.oberoncore.ru/viewtopic.php?f=27&t=3216
Страница 5 из 7

Автор:  Рыжий [ Пятница, 18 Февраль, 2011 16:28 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Согласен, что понятий в языке должно быть умеренное количество, однако к "записям" это никакого отношения не имеет. Это вообще не понятие языка. Кое где его удобно вводить в минимальной форме, как в Quick Basic, например. И то...Или например в ПЛ/I. Но "структура" там и "запись" тут - это две большие разницы.

Автор:  albobin [ Пятница, 18 Февраль, 2011 16:36 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Рыжий писал(а):
Оберон - не универсальный язык. Оберон язык основанный на концепции расширяемой записи и указателей. С соответствующим способом построения алгоритмов. С++ , да, относительно универсальная помойка. Возьмите любую простую задачу:
последовательность перекрывающихся прямоугольников с заполнением на экране: z-последовательность. И попытайтесь рассмотреть задачу с точки зрения массивов, и сточки зрения "объектов" , во втором случае еще и связный список из "объектов" организуют, не сомневаюсь.

Ну, на МАМПСе эту задачу доводилось решать.
А в чём трудность в Обероне? Ну, будет список в Z-порядке, и что?

Автор:  Рыжий [ Пятница, 18 Февраль, 2011 16:40 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

а то, что это массив. :mrgreen:
на мампсе - это правильно.

Автор:  albobin [ Пятница, 18 Февраль, 2011 16:41 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Рыжий писал(а):
Согласен, что понятий в языке должно быть умеренное количество, однако к "записям" это никакого отношения не имеет. Это вообще не понятие языка. Кое где его удобно вводить в минимальной форме, как в Quick Basic, например. И то...Или например в ПЛ/I. Но "структура" там и "запись" тут - это две большие разницы.

Я, конечно, не теоретик, но для графов Обероновская запись самое минимум то, узлы и связи- чего ещё надо. Просто, если конструируешь структуру да ещё и с петлями, то и работать с ней надо соответственно.
P.S.
Запись - для графов универсальней.

Автор:  Рыжий [ Пятница, 18 Февраль, 2011 16:43 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Если мне нужен граф, то мне нужна матрица смежности, а это - массив. По поводу трудностей , Касперски уже отмечал.

Автор:  albobin [ Пятница, 18 Февраль, 2011 16:49 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Рыжий писал(а):
а то, что это массив. :mrgreen:
на мампсе - это правильно.

А это уже философия, вопрос интерпретации или выбора модели.

Автор:  albobin [ Пятница, 18 Февраль, 2011 16:56 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Рыжий писал(а):
Если мне нужен граф, то мне нужна матрица смежности, а это - массив. По поводу трудностей , Касперски уже отмечал.

Можно и массивы, но выбор подходящей модели (списки vs массивы) зависит от задачи (для чего граф нужен).
Везде есть свои трудности.

P.S.
Тогда уж лучше не массив, а Relation :)

Автор:  Валерий Лаптев [ Пятница, 18 Февраль, 2011 17:12 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Рыжий писал(а):
Если мне нужен граф, то мне нужна матрица смежности, а это - массив. По поводу трудностей , Касперски уже отмечал.

Фигня! Не всегда нужна матрица смежности. Точнее - не всегда имеется ФИЗИЧЕСКАЯ возможность использовать эту самую матрицу. Памяти не хватит. :mrgreen:

Автор:  albobin [ Пятница, 18 Февраль, 2011 17:15 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Валерий Лаптев писал(а):
Рыжий писал(а):
Если мне нужен граф, то мне нужна матрица смежности, а это - массив. По поводу трудностей , Касперски уже отмечал.

Фигня! Не всегда нужна матрица смежности. Точнее - не всегда имеется ФИЗИЧЕСКАЯ возможность использовать эту самую матрицу. Памяти не хватит. :mrgreen:

Ну памяти может не хватить и на сам список :)
Проблема в динамике.

Автор:  Рыжий [ Пятница, 18 Февраль, 2011 17:58 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Валерий Лаптев писал(а):
Рыжий писал(а):
Если мне нужен граф, то мне нужна матрица смежности, а это - массив. По поводу трудностей , Касперски уже отмечал.

Фигня! Не всегда нужна матрица смежности. Точнее - не всегда имеется ФИЗИЧЕСКАЯ возможность использовать эту самую матрицу. Памяти не хватит. :mrgreen:

Вы можете реализовывать разряженный массив как угодно. Но это должен быть массив. Вот.

Автор:  Валерий Лаптев [ Пятница, 18 Февраль, 2011 18:16 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Рыжий писал(а):
Валерий Лаптев писал(а):
Рыжий писал(а):
Если мне нужен граф, то мне нужна матрица смежности, а это - массив. По поводу трудностей , Касперски уже отмечал.

Фигня! Не всегда нужна матрица смежности. Точнее - не всегда имеется ФИЗИЧЕСКАЯ возможность использовать эту самую матрицу. Памяти не хватит. :mrgreen:

Вы можете реализовывать разряженный массив как угодно. Но это должен быть массив. Вот.

А вот - хрена!
Массив (хотя бы и разрЯженный :) ) - это только тогда, когда размерность массива известна. А если данные динамически растут, добавляются и удаляются (особенно в середину) -у вас будут БОЛЬШИЕ проблемы с производительностью ...

Автор:  Виктор О [ Пятница, 18 Февраль, 2011 18:25 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Рыжий писал(а):
Эти кирпичики жестко навязывают определенную манеру проектирования, которая, как и всякое столь жесткое ограничение, приведут и привели к очередному кризису ПО.

Жесткость тоже бывает востребована. Вот у себя в деревне подумал я, что фундамент под верандой несколько покосился, взял эти самые "жесткие" кирпичики, сложил, "ужесточил" с помощью бетона... По-моему, хорошо получилось.

Или взять те же базы данных. Как только я с клиппера пересел на паскаль, то сразу мне и показалось, что массивы записей - ну точь в точь отображения в память кусков из базы. Очень удобная парадигма.

Что же касается всех этих указателей в записи, то это как индексирование базы.

Автор:  Сергей Прохоренко [ Пятница, 18 Февраль, 2011 18:46 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Да чего там изворачиваться и каждый раз изобретать велосипеды вроде массивов записей, ассоциативных массивов? Даешь полноценные таблицы БД! Встроенная СУБД должна быть частью языка. 8)

А для графов тоже надо придумать что-нибудь с единым интерфейсом и с возможностью выбора способа реализации.

Автор:  albobin [ Пятница, 18 Февраль, 2011 20:00 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Валерий Лаптев писал(а):
А вот - хрена!
Массив (хотя бы и разрЯженный :) ) - это только тогда, когда размерность массива известна. А если данные динамически растут, добавляются и удаляются (особенно в середину) -у вас будут БОЛЬШИЕ проблемы с производительностью ...

МАМПС - это разрЯженные массивы и обслуживающий персонал :)
Ни разу не сталкивался с БОЛЬШИМИ проблемами с производительностью ( в задачах для которых от предназначен) .
Ну это уже оффтоп.

Автор:  Валерий Лаптев [ Пятница, 18 Февраль, 2011 21:31 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Ну вот, например. Я сейчас занимаюсь одной задачкой из перколяции. Там надо заполнять прямоугольную таблицу узлов случайным образом мерами заданной длины (например, мера размером в 2 узла). Так вот при размере таблицы 20000*20000 наступают БОЛЬШИЕ проблемы с производительностью из-за виртуальной памяти.
Мне придется менять структуру данных, и соответственно, усложнять алгоритмы - чтобы уменьшить объемы.

Автор:  Рыжий [ Пятница, 18 Февраль, 2011 23:32 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

albobin писал(а):
Валерий Лаптев писал(а):
А вот - хрена!
Массив (хотя бы и разрЯженный :) ) - это только тогда, когда размерность массива известна. А если данные динамически растут, добавляются и удаляются (особенно в середину) -у вас будут БОЛЬШИЕ проблемы с производительностью ...

МАМПС - это разрЯженные массивы и обслуживающий персонал :)
Ни разу не сталкивался с БОЛЬШИМИ проблемами с производительностью ( в задачах для которых от предназначен) .
Ну это уже оффтоп.

Это не оффтоп. :D

Автор:  Рыжий [ Пятница, 18 Февраль, 2011 23:44 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Маленькое отступление по синтаксису. В паскалях специально выдумано особое зарезервированное слово array , во многих языках, например, в ПЛ/I ничего подобного не используется, применятся т.н. описатель размерности. Что, вообщем, принято во всех языках первой линейки:
Бейсик:
dim st$
dim a(300)
ПЛ/I:
NAME CHAR (10)
J:
arr0=.3 4 $ 0

и.т.п
Паскаль-синтаксис отвлекает людей от использования массивов.

Автор:  Илья Ермаков [ Суббота, 19 Февраль, 2011 17:50 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

И правильно делает.
Массивовое мышление привычно математикам, но эффективно только на регулярных задачах.
На нерегулярных начинаются извраты по приведению к регулярному виду.

Вместо того, чтобы переходить к графовому.

Так же, как с реляционными базами. Регулярность, красивая алгебра, но в итоге - "ассемблер", на котором очень жёстко и долго моделировать реальные задачи. А уж модифицировать модель...

Представьте себе динамический полиморфизм на каком-нибудь APL. Динамическое появление в системе нового вида элементов матрицы и возможность смешивать в одной матрице элементы разных типов... Без записей и указателей попробуйте :)

Автор:  Рыжий [ Суббота, 19 Февраль, 2011 20:37 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Никаких проблем, я добавлю новый элемент в герундий. :D
Как оказалось , это была самая крутая работа по теории программирования. Ну ее знают все:
http://compuhumour.narod.ru/science/no_pascal.html
Цитата:
В последнее время в прессе муссируются структуры данных. Абстрактные типы данных, структуры, указатели, списки и строки стали популярны в определенных кругах. Вирт, сосунок, написал даже целую книгу ("Алгоритмы + Структуры данных = Программы", Prentice Hall, 1976 [русский перевод - изд. "Мир", 198?]), в которой утверждает, что можно написать программу на базе структур данных, не используя другие способы. Как все настоящие программисты знают, единственной полезной структурой данных является массив. Строки, списки, структуры и наборы - это все разновидности массивов и их можно рассматривать как массивы без усложнения вашего языка приграммирования. Хуже всего с этими хитрыми типами данных то, что вы должны их описывать, а настоящие языки программирования, как мы все знаем, обладают возможностью неявного задания типа, основанного на первой букве 6-символьного имени переменной.

Илья, все что можно сделать на Обероне, на J можно сделать в сто раз короче. Тут нечего даже обсуждать.

Автор:  Илья Ермаков [ Суббота, 19 Февраль, 2011 21:07 ]
Заголовок сообщения:  Re: Свежый взгляд (Рыжий vs Дейкстра и др.)

Я понимаю Вашу провокационную натуру и что Вы на 60% издеваетесь (а остальные 40% полезны для обдумывания). :lol:

Страница 5 из 7 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/