Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  06:20[Войти] | [Зарегистрироваться]
Обсуждение темы:
Оберон-технология: особенности и перспективы


Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение. 

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 6256 сообщений

Добавить свое сообщение

Отслеживать это обсуждение

Обсуждение из раздела
Школа ОБЕРОНА

<<<... | 4746—4737 | 4736—4727 | 4726—4717 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 153


№ 4736   14-05-2007 13:35 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4735« (Сергей Перовский)
___________________________

...
А мне пришлось отказаться от вариантного типа, т.к. он позволяет оперировать только стандартными типами данных и сделать объектные обертки над различными типами данных - это позволяет свободно расширять список типов данных не изменяя механизм хранения и обмена. Без наследования с такой задачей не справиться.


Ну, я не знаю, но по-моему для подобных вещей интерфейсный (абстрактный) модуль Оберона, то что доктор прописал. Вообще же, мне представляется, что обероновский модуль это своего рода "изоморф", есть такой термин в современной фантастике. Он может быть аналогом exe, или unit  (правда без циклических ссылок, но это по-моему и к лучшему),  или он может быть абстрактным (интерфейсным) модулем. Я также согласен с MS, что "неодобрение" наследования за пределы модуля носит скорее технологический характер, а именно, вызвано стремлением к максимальной независимости модуля. В тоже время, такое стремление, на мой взгляд, на самом деле подталкивает пользователя не ограничиваться наследованием, а  максимально использовать весь  арсенал ООП. В частности, есть у меня подозрение, что "широкая композиция" может быть предпочтительнее "глубокого наследования" (сам правда пока не пробовал).


№ 4735   14-05-2007 12:28 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4734« (Axcel)
___________________________
>>>При этом никаких специфических показаний для подобной схемы у нас нет, просто так удобнее, надежнее.
Показания очевидные: простота сведения взаимодействия модулей к обмену простыми данными или тектовыми файлами.
А мне пришлось отказаться от вариантного типа, т.к. он позволяет оперировать только стандартными типами данных и сделать объектные обертки над различными типами данных - это позволяет свободно расширять список типов данных не изменяя механизм хранения и обмена. Без наследования с такой задачей не справиться.


№ 4734   14-05-2007 12:08 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4733« (Сергей Перовский)
___________________________

Ответ на »сообщение 4730« (MS)
Кроме задач коллективной разработки операционных систем я так и не нашел применения раздельной загрузке. А потеря возможности обмениваться объектами с применением наследования, это, по моему, большой минус.


Я как-то уже приводил пример из своего опыта работы в Delphi. Повторюсь еще раз.
Как-то мы на скорую руку "слепили" приложение из отдельных exe - х, по "рабочее - крестьянски", через WinExec. Через некоторое время мы "вдруг" заметили, что такое наше "архитектурное" решение наиболее устойчиво (по сравнения с dll или монолитом),  очень удобно в плане модификаций, так что теперь мы уже совершенно осознано пользуемся этим приемом. При этом никаких специфических показаний для подобной схемы у нас нет, просто так удобнее, надежнее. Но ведь это же и есть истинная модульность. Просто в Обероне она поддерживается на уровне языка, а в Delphi приходится слегка изощрятся. 


№ 4733   14-05-2007 09:43 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4730« (MS)
___________________________
>>>Единственно что, неприветствуется (но и НЕзапрещается) межмодульное наследование, что, в общемто, вполне логично - если у Вас взаимодействуют несколько программ, Вы же их стараетесь сделать максимально не зависимыми.

Собственно этот "неодобрямс" и заставил меня принять участие в дискуссии. Единственная его причина - раздельная компиляция и загрузка модулей. (Сейчас Руслан прочтет лекцию о различиях раздельной и независимой компиляции, но дело не в тонкостях). Кроме задач коллективной разработки операционных систем я так и не нашел применения раздельной загрузке. А потеря возможности обмениваться объектами с применением наследования, это, по моему, большой минус.


№ 4732   13-05-2007 23:14 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4729« (Сергей Перовский)
___________________________

Никакого противоречия между модульным подходом и объектным не существует. Вообще это не подходы, а просто две разные стороны. Можно сказать, ортогональные. Модули позволяют разделить и изолировать куски программ, что очень и очень полезно.

Проблему Вы, Сергей, просто выдумали. Если у Вас логически простая задача -- ну, напишите ее в одном модуле и возитесь с ним. Кто мешает?
А я предпочту разбить на несколько -- опыт показывает, что так жить проще и удобнее.


№ 4731   13-05-2007 22:06 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4728« (Сергей Перовский)
___________________________

У меня все больше подозрение, что Оберон - идеальный инструмент для "попрограммирования" :)
Это не в укор, а только для очерчивания границ применимости.


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


№ 4730   13-05-2007 17:36 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4729« (Сергей Перовский)
___________________________

Оформляем исследуемую эвристику в виде модуля или объекта.
Это не сопоставимые (в рамках Оберона) вещи. Т.к. в Оберонах модуль является единицей компиляции (и, соответственно, есть соответствие модуль-файл), то Вашу посылку можно представить в виде "Оформляем исследуемую эвристику в виде ФАЙЛА или объекта."
Модульный подход не протвостоит ООП. Модуль, фактически, является некой законченной программой, в которой могут быть и объекты и процедуры и т.д. и т.п.
Единственно что, неприветствуется (но и НЕзапрещается) межмодульное наследование, что, в общемто, вполне логично - если у Вас взаимодействуют несколько программ, Вы же их стараетесь сделать максимально не зависимыми.
Предложенная Вами схема, при модульном подходе, может выглядить следующим образом - 1) модуль ввода-вывода ("лабораторный стенд") 2) модуль(и) реализации модели (он(и) и являются объектом исследования).
В часть 2 Вы можете вставлять свои веками наработанные модели.
Как удобнее делать разбиение на модули в Вашем случае мне сказать трудно, но по идее выделяете в отдельный модуль наиболее изменяемую часть модели и меняете этот модуль в зависимости от задачи. А уж как Вы реализуете свою модель внутри модуля - Ваше личное дело - можете с ООП, можете без ...


№ 4729   13-05-2007 16:12 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4727« (info21)
___________________________
>>>То есть петли обратной связи (от уровня реализации назад, к аксиомам и постановке задачи), столь знаменитые в разработке ПО, существуют и в глобально-историческом масштабе.
Разумеется существуют.
Вопрос только в том, насколько важно сохранение программных наработок при изменении аксиом и какие парадигмы программирования позволяют сохранить заметную часть кода при их изменении.
Давайте сравним модульное и объектное программирование с этой точки зрения.
Нас будет интересовать трудоемкость написания программы и трудоемкость ее модификации при серьезном изменении постановки задачи.
Итак, мы не можем исследовать некоторую проблему аналитически, а только при помощи сравнения эвристических алгоритмов из некоторого множества.
Нам потребуется компьютерный эксперимент. Для начала придется спроектировать и реализовать некоторый "лабораторный стенд" на котором будут испытываться образцы. Методику испытаний считаем созданной, иначе какое может быть сравнение. Стенд не будет меняться в процессе наших исследований - он должен задавать исходные данные по известной методике, фиксировать полученные данные и обрабатывать результаты.
Поскольку  "лабораторный стенд" - штука многоразовая, основой для выбора является скорость реализации, а не скорость модификации. И большой разницы между модульным и объектным подходом мы не получим.
Теперь о исследуемых алгоритмах. Оформляем исследуемую эвристику в виде модуля или объекта. Модуль можно подключить к "лабораторному стенду" динамически, без перезагрузки. Правда время разработки модуля все равно будет много больше времени компиляции и загрузки и я тут выигрыша не вижу. Объект придется включать в исследовательскую систему при помощи компиляции. Зато мы имеем возможность испытывать сразу несколько объектов, как одинаковых, так и разных. Например при поиске оптимальных эвристик для поведения в массовых "играх", мы можем насоздавать множество объектов для каждой эвристики и наблюдать за их противоборством. Тут единственность модуля сослужит плохую службу - придется отделять от записи, несущей уникальные данные, процедуры принятия решений.
В общем, для решения исследовательских задач я не вижу преимуществ модульного подхода перед объектным.


№ 4728   13-05-2007 15:42 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4725« (Как слышно? Приём!)
___________________________
>>>Когда ясно как решать задачу - это школьный учебник.
Когда трем людям в мире ясно как решать задачу - это не школьный учебник :)
>>>Термин "случайное программирование" - передёргивание.
info21 предложил более удачный:
>>>пописал программу, вернулся к формулам, их пописал, потом снова попрограммировал, и т.д.
У меня все больше подозрение, что Оберон - идеальный инструмент для "попрограммирования" :)
Это не в укор, а только для очерчивания границ применимости.



№ 4727   12-05-2007 19:25 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 4726« (info21)
___________________________
Еще насчет раздвигания границ.
Есть замечательный пример в чистой математике, где подобная эволюция идет уже 100+ лет, и еще не закончилась.

Есть такая аксиома выбора в теории множеств. Формулировка естественная (=б.-м. первая попавшаяся). Но приводит ко всяким патологическим примерам. Когда поняли, что все ее патологические следствия неконструктивны, придумали ей замену -- аксиому детерминированности (Мычельски-Штейнгауз, 1964). Вещь замечательная ("любая функция измерима" и т.п.). Но до сих пор даже профессиональные математики в подавляющем большинстве о ней не знают (у меня даже был раз случай, когда аудитория осерчала; впрочем, это были не настоящие математики, а "математические физики"), хотя есть даже популярные для математиков-неспециалистов брошюрки (В.Кановей, Москва, 1984).

То есть петли обратной связи (от уровня реализации назад, к аксиомам и постановке задачи), столь знаменитые в разработке ПО, существуют и в глобально-историческом масштабе.


<<<... | 4746—4737 | 4736—4727 | 4726—4717 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 153


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования