OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 15 Ноябрь, 2019 13:33

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




Начать новую тему Ответить на тему  [ Сообщений: 69 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: есть ли ООП в Обероне-07
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 12:08 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8196
Откуда: Троицк, Москва
Вот опять странное утверждение:
bohdant писал(а):
В Оберон-07 нету ООП!
viewtopic.php?p=31729#p31729

Подозревается, что это интуитивно отчасти оттого, что хочется AO похвалить.

Этих дискуссий (есть или нет ООП, и что такое ООП) было уже миллион строк на Королевстве. Но там они благополучно похоронены.

Может, кто-нить найдёт силы тут заформулировать под специальным заголовком. Чтобы потом снова не возвращаться. (А то ведь наверняка...)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 14:05 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
Info21 писал(а):
Подозревается, что это интуитивно отчасти оттого, что хочется AO похвалить.


Во первых Оберон-07 мне очень нравится, я бы его позиционировал, как замену Си.
Во вторых вот описание языка, зачем что то доказывать?
Oberon07.Report

Конечно есть наследование записей (см. 6.3. Record types )... но извините, это немного не то.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 14:33 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8196
Откуда: Троицк, Москва
bohdant писал(а):
Info21 писал(а):
Подозревается, что это интуитивно отчасти оттого, что хочется AO похвалить.


Во первых Оберон-07 мне очень нравится, я бы его позиционировал, как замену Си.
Одно другому не противоречит :)

bohdant писал(а):
Конечно есть наследование записей (см. 6.3. Record types )... но извините, это немного не то.
Да ла-а-адно...

Самую главную вещь оно делает -- "расслоение" функциональности динамических структур между модулями.
Всё остальное -- почти только синтаксический сахар.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 18:13 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
Info21 писал(а):
"расслоение" функциональности динамических структур между модулями.

Хм... в первый раз слышу, что это главный принцип ООП. :roll:

Общепринятые "Основные понятия":
1. Абстракция данных
2. Наследование.
3. Инкапсуляция.
4. Полиморфизм.

Не могли бы по пунктам пройтись и рассказать на каком уровне они поддерживаются в О07 ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 18:20 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9154
Откуда: Россия, Орёл
Цитата:
Общепринятые "Основные понятия":
1. Абстракция данных
2. Наследование.
3. Инкапсуляция.
4. Полиморфизм.


"Доктор, умоляю, не читайте перед обедом советских газет" (С) :)

Лично мне нравится формулировка одного дядечки с ВМК МГУ, как он когда-то объяснил моим студентам: "ООП - это механизм, позволяющий дополнять систему без переписывания уже существующего кода. Есть в языке эта возможность - можно считать его ОО, а есть ли в нём ключевые слова КЛАСС, ОБЪЕКТ... и прочее - дело десятое". Это и так было ясно после Оберона и Ады, но просто запомнилось, потому что было явно проговорено.

Но пункты названные тоже, конечно, присутствуют.

Скажите-ка лучше Вы, по какому из них терзают смутные сомнения :)
Разве инкапсуляция, если брать её в аспекте конструктивного скрепления данных и процедур?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Воскресенье, 12 Июль, 2009 22:25 

Зарегистрирован: Суббота, 12 Май, 2007 08:41
Сообщения: 102
Откуда: Беларусь, Минск
bohdant писал(а):
Общепринятые "Основные понятия":

Общепринятые в мейнстриме? :) Посмотрите на ООП в таких языках, как JavaScript с его прототипированием, Common Lisp (как в ранних так и в более поздних реализациях), Haskell и в конце концов Smalltalk. Во всех них как общую черту можно выделить разве что полиморфизм в виде возможности применения одноимённых функций к объектам различных типов. Так что, как мне кажется, обсуждать надо не наличие / отсутствие в Обероне ООП, а наличие / отсутсвие в языке определённых средств. Для Вас какие средства критичны?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Понедельник, 13 Июль, 2009 01:13 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8196
Откуда: Троицк, Москва
bohdant писал(а):
Info21 писал(а):
"расслоение" функциональности динамических структур между модулями.
Хм... в первый раз слышу, что это главный принцип ООП. :roll:
Работа такая 8)

bohdant писал(а):
Не могли бы по пунктам пройтись и рассказать на каком уровне они поддерживаются в О07 ?
Разве Вирт убрал оттуда модули?


Последний раз редактировалось Info21 Понедельник, 13 Июль, 2009 17:28, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Понедельник, 13 Июль, 2009 16:17 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
В чистом ООП инкапсуляция поддерживается на уровне объектов. В виртовстких же языках единицей инкапсуляции является модуль. Это различие мне представляется настолько фундаментальным, что я рискну утверждать, что линейка виртовских языков (начиная с Оберон 2) -- это не ООП, это гораздо лучше, чем ООП :!:
В своё время, помню, накувыркался в Delphi с одним проектом. Как раз из-за этого, там мне нужно было использовать группу тесно взаимодействующих классов. Я тогда никак не мог понять, почему использовать ООП так не удобно, все же используют, ещё и хвалят. Теперь давно уже в голове всё встало на свои места. Пожалуй, ничто уже не заставит меня перейти обратно на Delphi :wink: Хотя дело, конечно, не в инструментальных средствах, а в голове. Можно работать и в Delphi, только зачем себя насиловать, если есть средства получше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Понедельник, 13 Июль, 2009 19:21 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8196
Откуда: Троицк, Москва
igor писал(а):
В чистом ООП инкапсуляция поддерживается на уровне объектов. В виртовстких же языках единицей инкапсуляции является модуль. Это различие мне представляется настолько фундаментальным, что я рискну утверждать, что линейка виртовских языков (начиная с Оберон 2) -- это не ООП, это гораздо лучше, чем ООП :!:
Да, настоящие модули -- вещь.
Начинаешь это остро ощущать, когда приходится типа переносить на какой-нибудь С++ программу с Оберона.
Не зря Гуткнехт в объявлении об Дне Оберона в ЦЕРНе в 2004 ставил слово "модульный" впереди "объектно-ориентированный".
Правда, "зная наш народ" (С), было в итоге сочтено рекламно-правильным передвинуть ОО вперёд, от греха подальше.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Вторник, 14 Июль, 2009 09:18 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4525
Откуда: Россия, Орёл
Проблемы трансляции Оберон в Си++ выделены отдельной темой: viewtopic.php?f=30&t=1713


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Вторник, 14 Июль, 2009 10:16 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3109
Откуда: Астрахань
igor писал(а):
В чистом ООП инкапсуляция поддерживается на уровне объектов. В виртовстких же языках единицей инкапсуляции является модуль. Это различие мне представляется настолько фундаментальным, что я рискну утверждать, что линейка виртовских языков (начиная с Оберон 2) -- это не ООП, это гораздо лучше, чем ООП :!:

А вот создатель Эйфеля Бертран Мейер в своей книжке ратует за то, чтобы было эквивалентно один класс-один модуль.
Хотя по мне модуль - более крупная единица, нежели класс, ибо в одном модуле может быть несколько классов, а не наоборот.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Вторник, 14 Июль, 2009 10:50 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Вторник, 14 Июль, 2009 12:19 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
Илья Ермаков писал(а):
Скажите-ка лучше Вы, по какому из них терзают смутные сомнения :)
Разве инкапсуляция, если брать её в аспекте конструктивного скрепления данных и процедур?


Изначально возникло из обсуждения программирования GUI на О-07. Как по мне так под эту задачу не хватает в языке механизма Полиморфизма. Конечно, можно все ручками делать... но не проще ли взять средство там где реализованные необходимые механизмы, тем более, что такие средства(в смысле ЯП и компиляторы с них под целевую платформу) есть?


Info21 писал(а):
Ну... нравится ему так :)
А лично мне нравится, когда модуль :)


Т.е. кому как нравится тот так и считает :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Среда, 15 Июль, 2009 23:47 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9154
Откуда: Россия, Орёл
bohdant писал(а):
Как по мне так под эту задачу не хватает в языке механизма Полиморфизма. Конечно, можно все ручками делать..


Погодите-погодите... Полиморфизм - это, на пальцах, способность алгоритма, работающего с "рыбами", принимать и "селёдки" тоже. Расширяемые записи т.е. Что Вы имеете в виду?

Касательно графики - я вот вообще мечтаю выкинуть в помойку методы и иметь каркас ББ только под RECORD-сообщения, обрабатываемые отдельным параллельным алгоритмом вместо объекта... Стандартное ООП и сквозное скакание по методам - не от хорошей жизни было придумано когда-то. Его место - для "алгебраической типизации", но никак не для имитации поведения объектов.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Четверг, 16 Июль, 2009 00:09 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
Илья Ермаков писал(а):
иметь каркас ББ только под RECORD-сообщения

Интересно было бы глянуть пример, если можно в приват(т.к. оффтоп), мне действительно интересно.

Илья Ермаков писал(а):
способность алгоритма, работающего с "рыбами", принимать и "селёдки" тоже

Ну да.
Главное не злоупотреблять, как и во всем...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Четверг, 16 Июль, 2009 00:12 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9154
Откуда: Россия, Орёл
Ну так как же ж его нету??
Если я могу передать параметром VAR р: Рыба эту самую селёдку, которая = RECORD (Рыба)...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Четверг, 16 Июль, 2009 00:14 
Модератор
Аватара пользователя

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


Ну, крутится себе цикл в параллельно запущенном алгоритме, вводит RECORD-ы и ими же пуляется во внешний мир..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Четверг, 16 Июль, 2009 00:27 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
Илья Ермаков писал(а):
Ну так как же ж его нету??
Если я могу передать параметром VAR р: Рыба эту самую селёдку, которая = RECORD (Рыба)...

Ну как я понял ООП- понятие расплывчатое, по этому уже категорически не заявляю, что его нету :lol:
Да можете, а как быть с методами (грубо говоря прорисовки и т.п.)? Может как то можно проще поступить, поэтому я и попросил красивый пример.

Цитата:
Ну, крутится себе цикл в параллельно запущенном алгоритме, вводит RECORD-ы и ими же пуляется во внешний мир..

Ну очень похоже на некоторые библиотечки, но интересно глянуть пример :twisted:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Четверг, 16 Июль, 2009 00:34 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9154
Откуда: Россия, Орёл
В A2 что, message buses вообще не используются?
Сочинять пример не буду )) Взять message bus - и наложить на параллелизм, вот и пример.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: есть ли ООП в Обероне-07
СообщениеДобавлено: Четверг, 16 Июль, 2009 00:53 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
Илья Ермаков писал(а):
В A2 что, message buses вообще не используются?
Сочинять пример не буду )) Взять message bus - и наложить на параллелизм, вот и пример.

Используется, но что то мы разговариваем о разных вещах, мне так кажется. Да ладно... чего спорить :)


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

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


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

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


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

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