OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 23 Июль, 2019 11:05

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




Начать новую тему Ответить на тему  [ Сообщений: 127 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
СообщениеДобавлено: Четверг, 17 Февраль, 2011 02:14 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Вот еще простой пример. Список построенный на записях с указателями. Задача вычисления размера(длины) такого списка, не решается, как в случае массивов, применением некоей универсальной функции т.к. такой встроенный тип данных "список" отсутствует. Для каждого типа списков необходимо сочинять свой собственный способ вычисления\хранения длины. Даже по той простой причине, что названия и состав полей записи заранее не известны. Это еще один минус "понятия записи" - именование при определении.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 08:43 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3060
Откуда: Астрахань
Рыжий писал(а):
Проистекает данная ситуация из самого понятия "записи", как объединения разнотипных объектов, в сочетании с неизбежностью использования "указателей", дабы иметь возможность строить на основе записей "структуры данных". Помимо этого все типовые алгоритмы основаны на явной или скрытой рекурсии, что не упрощает ни их восприятия, ни их конструирования.
Массивы избавлены от подобного рода недостатков.

Пример заезженный, но налицо очивидный моветон.

Фигня. Вспомните МАТЕМАТИЧЕСКОЕ определение дерева - это рекурсивное определение. Список (последовательность) - аналогично.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 21:41 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Вспомнил: конечный связный граф с выделенной вершиной без циклов. Есть еще индуктивное определение. :D Причем тут объединение вершины и связей в одну рекурсивную структуру , совершенно не ясно.

Цитата:
Другое дело, что можно и для записи использовать операцию индексирования для доступа к отдельному элементу.
Понятно, что помимо операции доступа нужна еще операция вроде sizeof() и операция выяснения типа элемента.
В КП можно было бы это вполне допилить - есть все необходимые семантические предпосылки, нет только индексированного синтаксиса.


Можно еще чего-нибудь допилить. И весь сыр бор из-за нежелания держать дополнительный стек-массив: рекурсии,структуры с указателями,горы литературы по связанному хранению структур данных, все эти невероятные ответвления информатики?
Есть полезные вещи, которые нехило встроить в язык вроде ассоциативных массивов, да и то под вопростом это.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 22:05 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Например: :D
http://www.insidepro.com/kk/198r.shtml


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 22:29 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3060
Откуда: Астрахань
Рыжий писал(а):

Ага... Мы все это читали много лет назад в книжках вроде: структуры данных на фортране... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 22:32 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Видимо забыли. Этот Вирт окружил вам головы приматическим элементом. И как это до Вирта писалося программные комплексы на миллионы строк кода, ума не приложу.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 22:35 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3060
Откуда: Астрахань
Дык как раз перед паскалем Дейкстра и обозначил кризис программирования. С чего все и понеслось.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 22:38 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Я уже объяснял где-то почему с Дейкстрой этим случился гештальт. Вирт подхватил его "идеи" и придумал рекурсивный паскаль. Дейкстра не снял кризис, а просто переиначил все, нуи началось перестрачивание, а потом все уперлось туда же.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 22:45 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Кроме того, Дейкстра не владел классификацией. Вот, например, которую я предложил.
даже "боксовые" структуры всякие и то, массивы однородных элементов - "боксов". Хотя содержание бокса может быть любым. Нет необходимости в конструировании паскалеподобных структур. Они действенны только с рекурсией и указателями, записанными явно или неявно. Все эти примочки вроде сборщиков мусора и т.п. - следствие подобного подхода.
Ясно, что сборщик освобождаемую память , в общем случае , не сразу. Т.е. неизвестно, что эффективнее. Указывать сборщику на это - равносильно использованию Dispose, без которого , в противном случае, не обойтись. Если присмотреться к тому, сколько всякого бреда было изобретено в связи с этой "концепцией", то можно подавиться.


Последний раз редактировалось Рыжий Четверг, 17 Февраль, 2011 23:00, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 22:59 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Любопытная маразматическая параллель. Паскаль со структурами и sql это два проявления одного и того же процесса: попытки упаковать "сущности" и "связи" в одну коробку. Маразматичность этого занятия хорошо показал коллега ЧАЛ на sql.ru. Это там вызвало приматическую бурю.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 23:02 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Еще одним аргументов против Вирта является то, что все эти "концепции" вызваны , в сущности, проблемами с объемом доступной памяти. "Структура" не является концептом, это смесь аппратных и невнятных инкапсуляционных идей.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 23:12 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9127
Откуда: Россия, Орёл
Рыжий - математик :) :) И мозги выносит на раз :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Февраль, 2011 00:01 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3060
Откуда: Астрахань
Рыжему - ответ. Давно уже не структуры рулят... :)
А такая крупная сущность как контейнер... :) А реализация его - дело десятое...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Февраль, 2011 10:25 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8169
Откуда: Троицк, Москва
Рыжий писал(а):
Видимо забыли. Этот Вирт окружил вам головы приматическим элементом. И как это до Вирта писалося программные комплексы на миллионы строк кода, ума не приложу.
А я помню как:
поставишь 0 в качестве параметра чье-то процедуре, а потом такая хрень лезет, мама не горюй. Оказывается, процедура поменяла этот нуль на какую-то хрень. Причем каждый раз на разную.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Февраль, 2011 12:56 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3060
Откуда: Астрахань
Info21 писал(а):
Рыжий писал(а):
Видимо забыли. Этот Вирт окружил вам головы приматическим элементом. И как это до Вирта писалося программные комплексы на миллионы строк кода, ума не приложу.
А я помню как:
поставишь 0 в качестве параметра чье-то процедуре, а потом такая хрень лезет, мама не горюй. Оказывается, процедура поменяла этот нуль на какую-то хрень. Причем каждый раз на разную.

Да. Это была "фишка" фортрана... :) Когда константа-литерал вдруг оказывалась совсем не тем, что написано... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Февраль, 2011 15:30 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Info21 писал(а):
Рыжий писал(а):
Видимо забыли. Этот Вирт окружил вам головы приматическим элементом. И как это до Вирта писалося программные комплексы на миллионы строк кода, ума не приложу.
А я помню как:
поставишь 0 в качестве параметра чье-то процедуре, а потом такая хрень лезет, мама не горюй. Оказывается, процедура поменяла этот нуль на какую-то хрень. Причем каждый раз на разную.

Тут два момента. :mrgreen: Во первых , аккуратнее надо быть. Во вторых , языки развиваются и все это учитывается, фортран-90, это не фортран-4. В третьих, и самое главное: да, существуют и имеют право быть, концепции, наподобие этого Вирта. Но, данные идеи относятся к специфическим программным средам и инструментам. Субд Cache, например , реализует богатую объектную модель, приспособленную для тех задач, для которых данная модель изобреталась. Языки же программирования предназначены в первую очередь для вычислений , а не для моделирования бизнесс(или иных)-процессов, все вопросы связанные с моделированием неких структур не должны отражаться на синтаксисе и приоритетных способах использования языка. Должны они выделятся в некие библиотеки. Массив и его более развитые продолжения это естественная структура. Все остальное это надстройки.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Февраль, 2011 15:47 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 692
Откуда: Псков
Да нормально всё в Обероне . Есть достаточной величины и формы кирпичики, можно строить здания любой архитектуры и с комфортом там жить :)
И МАМПС с его массивами, и ТО и СЁ. Делать только надо кому-то , единственная трудность у нас :(


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Февраль, 2011 15:55 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Эти кирпичики жестко навязывают определенную манеру проектирования, которая, как и всякое столь жесткое ограничение, приведут и привели к очередному кризису ПО. Оберон взят как пример, в этом смысле он мало отличается от С++ и множества других "объектных" языков. Необходимая объектность, там все равно не реализована, поэтому требуются фишки типа контейнеров и т.п. Такая объектность может быть реализована, только в каждом конкретном случае, в специфическом инструменте типа того же мампса. А строчить книженки, как на основе записей организовать динамические структуры данных, как минимум, не лучше чем строчить на туже тему, но с помощью массивов. Еще один вариант "спасения" - реализован в С++, туда понапихано вообще все.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Февраль, 2011 16:16 

Зарегистрирован: Пятница, 20 Июль, 2007 17:26
Сообщения: 692
Откуда: Псков
Рыжий писал(а):
Эти кирпичики жестко навязывают определенную манеру проектирования, которая, как и всякое столь жесткое ограничение, приведут и привели к очередному кризису ПО. Оберон взят как пример, в этом смысле он мало отличается от С++ и множества других.

Не проектировал на Обероне, но считаю, что ... :) (Это я про себя)
Нет, действительно, не вижу проблемы навязывания манер.
Оберон - язык универсальный. Типа - любая задача в принципе решаема, но это же не значит, что его (универсальный язык) следует прямо ( тупо, в лоб и т.п.) использовать в разработке, только на голом Обероне и библиотеках. Я понимаю универсальность как возможность создания подходящего инструмента с нужными абстракциями и т.п. , а вот уже потом прикладную задачу и решать. И если качество Оберона позволяет делать качественный инструмент (качественными разработчиками, конечно), так это и есть счастие. Трудность только в разработке инструментов, а это проблема не от Оберона и его мнимых недостатков.
P.S.
Текст перекликается с продолжением цитированного, писали видать параллельно :)


Последний раз редактировалось albobin Пятница, 18 Февраль, 2011 16:24, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 18 Февраль, 2011 16:23 

Зарегистрирован: Вторник, 05 Январь, 2010 21:31
Сообщения: 1101
Откуда: Харків, Данилівка
Оберон - не универсальный язык. Оберон язык основанный на концепции расширяемой записи и указателей. С соответствующим способом построения алгоритмов. С++ , да, относительно универсальная помойка. Возьмите любую простую задачу:
последовательность перекрывающихся прямоугольников с заполнением на экране: z-последовательность. И попытайтесь рассмотреть задачу с точки зрения массивов, и сточки зрения "объектов" , во втором случае еще и связный список из "объектов" организуют, не сомневаюсь.


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

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


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

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


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

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