Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт июл 03, 2020 01:31

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 83 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 07, 2009 20:59 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Цитата:
Ведь от ООПа на самом деле не все и не всегда нужно.
Не всегда, но долгоиграющий проект лучше делать с ООП - сильно организует


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 07, 2009 23:04 
Не в сети
Аватара пользователя

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 289
Благодарил (а): 12 раз.
Поблагодарили: 10 раз.
Согласен.
Например, в обсуждаемом нами Инферно-Лимбо, применен приём (как я называю) "выбор типа по месту".
Если в функцию (метод) передаётся некий объект, то мы можем затребовать у этого объекта наличие метода данной сигнатуры.
И тогда не нужны чисто "антуражно-украшательские" танцы с бубнами по описанию интерфейсов-классов.
Очень удобно.
Напрмер мы имеем некую обобщённую функцию, в которой описан вызов методов (именно с такой сигнатурой), про которые мы думаем, что они именно такую функциональность и обеспечивают. И не заморачиваемся типами и классами даже ещё не созданных (и не спроектированных!) классов и типов. Более того, собственно ничего формального (обусловленного в языке правилами описания "классов-типов") делать-то и не надо! Просто вводим в объект функцию нужного вида и наполняем её неким кодом.

А всякия там синтаксически-мазохистические изыски оставляем дяде Бьярну со товарисчи.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 08, 2009 09:57 
Не в сети
Аватара пользователя

Зарегистрирован: Вт сен 11, 2007 11:07
Сообщения: 187
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Wlad писал(а):
в обсуждаемом нами Инферно-Лимбо, применен приём (как я называю) "выбор типа по месту".

у этого есть общепринятое название - "duck typing" - свои недостатки тоже есть http://www.xoltar.org/old_site/misc/static_typing_eckel.html, подход, кстати, не уникален, используется многими языками и в чём-то перекликается со "structural subtyping".

в любом случае, этот подход не является взаимоисключающим к тому, что принято называть ООП.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 08, 2009 11:06 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5012
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
пардон, выделил обсуждениее Форт и ООП в отдельную тему для удобства.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 08, 2009 11:09 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5012
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
вот интересно, в какой последовательности вы определите свойства ООПа с точки зрения важности\частоты применимости?
вот по-моему скромному мнению, главное самое - это управление пространством имен, а остальное второстепенно и как бы в нагрузку идет.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 08, 2009 13:26 
Не в сети
Аватара пользователя

Зарегистрирован: Вт сен 11, 2007 11:07
Сообщения: 187
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Wlad писал(а):
А ЧТО ПРИНЯТО НАЗЫВАТь ООП ? Опять скатимся на ....

Необязательно, всё уже сказано http://www.helloworld.ru/texts/comp/other/oop/ch02.htm
особенно интересно сравнить с первым изданием (это там, где был common lisp, smalltalk, object pascal, ada и куча других экзотических систем).

mOleg писал(а):
вот интересно, в какой последовательности вы определите свойства ООПа с точки зрения важности\частоты применимости?

в книгах за последние 10-15 лет точка зрения плавно смещается от encapsulation, inheritance, polymorphism к abstraction, encapsulation, modularity, hierarchy.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 08, 2009 14:36 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5012
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
garbler писал(а):
а что касается моего мнения - я бы не выделял, чем больше можно использовать в процессе написания (и при этом контролировать получающийся код) - тем лучше.

в данном случае стоит как раз выделить и обсудить каждый, откуда и почему взялся, какая есть альтернатива в Форте.

Все-таки наше все - это ПРЕОБРАЗОВАНИЕ ПОТОКА ДАННЫХ, или как там у Броуди написано?
ООП в Форте лишняя и самое главное - это чужеродный набор абстракций/понятий (имхо, конечно),
а главное есть собственный набор средств и методик, позволяющих делать то же.
к тому же, когда говорят про ООП, сразу возникает необходимость/проблема типизации...

Мне кажется, что разговоры про ООП в Форте чаще всего возникают из незнания/непонимания идеалогии Форта и собственно самого языка.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 08, 2009 20:23 
Не в сети

Зарегистрирован: Чт окт 25, 2007 08:01
Сообщения: 154
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
mOleg писал(а):
Мне кажется, что разговоры про ООП в Форте чаще всего возникают из незнания/непонимания идеалогии Форта и собственно самого языка.


ООП есть способ структурирования нашего представления предметной области. Обеспечивает, конечно, некоторый оверхед, но это цена за гораздо большую гибкость. В чём противоречие со средствами Форта - мне не ясно, например.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 08, 2009 20:52 
Не в сети
Аватара пользователя

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 289
Благодарил (а): 12 раз.
Поблагодарили: 10 раз.
А в чём гибкость?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 09, 2009 07:15 
Не в сети

Зарегистрирован: Чт окт 25, 2007 08:01
Сообщения: 154
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Wlad писал(а):
А в чём гибкость?


Гораздо меньшая связность между компонентами. Это надо самому попробовать, чтобы понять. Особенно полезная штука - полиморфизм. Чем-то напоминает обычные операторы +/-* в каком-нибудь Си - их тоже можно произвольно применять к аргументам, которые это допускают. Только уровень, в общем, другой - даже в Форте это будет оправдано.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 09, 2009 07:24 
Не в сети

Зарегистрирован: Чт окт 25, 2007 08:01
Сообщения: 154
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Вообще, на это можно взглянуть несколько по другому. Мы не можем <u>эффективно</u> сделать операцию +, работающую с произвольным типом данных (в разумных пределах, конечно). Просто в силу природы Форта - это обратная сторона его расширяемости. Поэтому у нас и есть набор D+ F+ и т.п. Там, где обычный компилятор заранее знает аргументы, которые будут, мы можем лишь потребовать их. Т.е. для "+" - чтобы было две ячейки на стеке. Опять же, возвращаясь к давнему спору, именно поэтому я сторонник раздельных стеков для адресов. Ну а в классических скриптовых языках эта проблема решается сами знаете как... оверхед жуткий.
Но вот в случае с манипуляцией объектами нам ничто не мешает использовать полиморфизм, т.к. на нижнем-то уровне это всегда будет работа с адресами - т.е. зоопарка из <u>физически</u> разных типов тут нет! Поэтому, имхо, некоторый <u>стандартный</u> ООП в Форте иметь дюже желательно. Да и вообще стандартную библиотеку следовало бы развить.
Конечно, оффтопик, но я хотел бы видеть примерно следующее:
1.ООП
2.Стандартный GUI (примитивный, но достаточный для мелких задач)
3.Работу с потоками
4.Строки - СТАНДАРТНЫЕ (с этим есть сейчас некоторые проблемы, да, что именно делать)
Ну и т.д. Но это, опять же, не для микроконтроллеров задачи решать... :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 09, 2009 08:08 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
K`[f писал(а):
4.Строки - СТАНДАРТНЫЕ (с этим есть сейчас некоторые проблемы, да, что именно делать)

Я постоянно в ннкроне работаю со строками и соответственно есть опыт и наработки, так что могу поделиться 8)

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 09, 2009 17:12 
Не в сети
Аватара пользователя

Зарегистрирован: Чт апр 26, 2007 21:09
Сообщения: 289
Благодарил (а): 12 раз.
Поблагодарили: 10 раз.
K`[f писал(а):
Wlad писал(а):
А в чём гибкость?


Гораздо меньшая связность между компонентами. Это надо самому попробовать, чтобы понять. Особенно полезная штука - полиморфизм. Чем-то напоминает обычные операторы +/-* в каком-нибудь Си - их тоже можно произвольно применять к аргументам, которые это допускают. Только уровень, в общем, другой - даже в Форте это будет оправдано.


Понятно.
Позвольте поинтересоваться, Лёха, а Вам, извините, годкофф-то скольки?
Никакого наезду!
Всё - касательно перечисленных Вами "гибкостей"! И - "надо самому попробовать, чтобы понять". Просто, видите ли, СТОЛЬКО, не то, что "пробовал", а прям-таки изваял систем, что - "имею право"... :D Я, извините, уже просто ДЫШУ ООП. Лет 17. И, в отличие от восторженных юношей, которые только-только начинают входить в серьёзную программерскую и проектную жизнь, мне уже не всё (ДАЛЕКО НЕ ВСЁ!!!) в таком розовом свете видится и зрится. ОСОБЕННО - на счёт "меньшей связности между компонентами"...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 09, 2009 18:51 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5012
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
K`[f писал(а):
Гораздо меньшая связность между компонентами. Это надо самому попробовать, чтобы понять. Особенно полезная штука - полиморфизм. Чем-то напоминает обычные операторы +/-* в каком-нибудь Си - их тоже можно произвольно применять к аргументам, которые это допускают. Только уровень, в общем, другой - даже в Форте это будет оправдано.


вот недавно приводил пример для человека, повторюсь:
util/ utit.fts

Unit: Двигай

Sub Unit: Рукой
F: Вперед ... ;F
F: Назад ... ;F
EndUnit

Sub Unit: Ногой
F: Вперед ... ;F
F: Назад ... ;F
EndUnit
EndUnit

И пример использования:
... Двигай Рукой Вперед Двигай Ногой Назад ...


похоже?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт апр 09, 2009 18:57 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5012
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 21 раз.
Поблагодарили: 58 раз.
K`[f писал(а):
Опять же, возвращаясь к давнему спору, именно поэтому я сторонник раздельных стеков для адресов.

я вас понимаю, и думаю о том же, но есть ряд неприятностей тут:
1) код становится не совместим
2) может не хватить регистров для указателя стека (на ix86 это проблема)
3) увеличение количества слов

K`[f писал(а):
3.Работу с потоками

что под этим имеется ввиду? в смысле что не так с потоками в том же СПФ, например?

K`[f писал(а):
4.Строки - СТАНДАРТНЫЕ (с этим есть сейчас некоторые проблемы, да, что именно делать)

Какие проблемы по-вашему?

P.S.
почему-то как только к Форту приходит человек с маинстрим языка, сразу пытается писать ООП собственный...
а старые Фортеры ООП как-то не слишком пользуют в Форте

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


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

Часовой пояс: UTC + 3 часа [ Летнее время ]


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

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


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

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB