Forth http://fforum.winglion.ru/ |
|
ООП в форте как он должен выглядеть? http://fforum.winglion.ru/viewtopic.php?f=4&t=3233 |
Страница 2 из 2 |
Автор: | Victor__v [ Вт апр 23, 2019 10:19 ] |
Заголовок сообщения: | Re: ООП в форте как он должен выглядеть? |
Hishnik писал(а): А сопоставление словарей и объектов уже было? Лично автор этого сообщения пилит свою реализацию ООП, которая уже облегчает по мнению автора процесс написания программ так или иначе работающих с объектами. Поэтому смысл Вашего сообщения несколько ускользает от моего понимания. Проще говоря, что имеется ввиду? |
Автор: | Hishnik [ Вт апр 23, 2019 23:30 ] |
Заголовок сообщения: | Re: ООП в форте как он должен выглядеть? |
Victor__v писал(а): Проще говоря, что имеется ввиду? На форуме несколько раз отмечалось, что словари в принципе обеспечивают основные свойства объектов. Инкапсуляция - слова принадлежат словарю и видны только в его контексте. Наследование - если слова нет в словаре, поиск продолжается в словаре-родителе. Полиморфизм - несколько словарей могут иметь слова с одинаковыми именами. Тем не менее, попытки сделать ООП в Форте возникают достаточно регулярно. У меня даже возникло соображение, что дело может быть и не в ООП как таковом, а в реализации определенного стиля программирования, или просто разработке удобного синтаксиса. Потому что регулярное появление у разных разработчиков схожих идей свидетельствует скорее о наличии объективной потребности в чем-то похожем на объекты. |
Автор: | Victor__v [ Вт апр 23, 2019 23:51 ] |
Заголовок сообщения: | Re: ООП в форте как он должен выглядеть? |
Как я дошёл до такой жизни. Объект суть структура отражающая ту или иную программную сущность (масло масленное). И должны быть слова, которые могут работать с этими структурами. И получается, что как-то напряжно каждый раз передавать доп. параметром указатель на эту самую структуру, особенно в служебных словах. Если его как-то завуалировать, то процесс идёт проще (я сделал черел лок. переменную как в СПФ-ской либе, микроклассов). Да и синтаксис можно упростить. К примеру, вместо того, чтобы писать что-то вроде file-strut-sizem men-struct-size и пр. Писать SIZE-OBJ: file SIZE-OBJ: men Меньше путаницы. |
Автор: | reijii [ Сб апр 27, 2019 20:35 ] |
Заголовок сообщения: | Re: ООП в форте как он должен выглядеть? |
Цитата: И получается, что как-то напряжно каждый раз передавать доп. параметром указатель на эту самую структуру, особенно в служебных словах. Да, так удобно записывать. Только вот на низком уровне эти параметры всё равно передаются, скрытно. В "крестах" (C++) this передаётся в ECX (в 32 битном варианте). Это удобство стоИт на абстракции которой в форте нет. Имитация её в форте приведёт к ограничениям. Вот это вот мне и чешет мозг больше всего. Ограничение голой машины Тьюринга (чем форт по-сути является) до уровня си-подобной абстракции. Типа на тебе костыли - на них безопаснее. И пофиг, что без костылей ты можешь бегать и прыгать, а на костылях нет. |
Автор: | Victor__v [ Сб апр 27, 2019 21:10 ] |
Заголовок сообщения: | Re: ООП в форте как он должен выглядеть? |
reijii писал(а): Цитата: И получается, что как-то напряжно каждый раз передавать доп. параметром указатель на эту самую структуру, особенно в служебных словах. Да, так удобно записывать. Только вот на низком уровне эти параметры всё равно передаются, скрытно. В "крестах" (C++) this передаётся в ECX (в 32 битном варианте). Да ладно (тут мем "лицо Якубовича") Я и не знал По остальной части. Абстрагироваться от этого можно. Это тупо повышает понятность кода. |
Автор: | Ethereal [ Сб апр 27, 2019 22:36 ] |
Заголовок сообщения: | Re: ООП в форте как он должен выглядеть? |
Victor__v писал(а): Объект суть структура отражающая ту или иную программную сущность (масло масленное). И должны быть слова, которые могут работать с этими структурами. сущность, структура, все это можно представить как запись. А слово для создания записей в спф-форте можно подсмотреть. Это слово -- суть прибавление смещения от начала структуры. И больше ведь ничего не надо.0 \ Определение объекта : ... CЕLL -- Имя_метода ... CONSTANT Размер_объекта Имя_экземпляра_объекта CREATE Размер_объекта ALLOT ' Метод Имя_экземпляра_объекта Имя_метода ! \ Инициализация виртуального метода <параметры> Имя_экземпляра_объекта Имя_метода EXECUTE Victor__v писал(а): Это тупо повышает понятность кода. Интуитивная понятность кода хороша пока не начнешь ловить ошибки. А тогда нужна не интуитивная, а абсолютная понятность. А она достигается минимумом сущностей. Ведь мне чтобы отловить ошибку придется пол твоей Новы разгребать, чтобы уяснить что это за объекты ты там наклепал, как они работают и не там ли косяк зарылся. Вот если ты пишешь Нову только для себя, то и понятность нужна только для тебя. Тогда конечно можно наворотить что угодно.Мысль - не надо добавлять сущностей, которые принципиально нового не дают и лишь следуют моде. Ведь какой огород ни городи все равно все сведется к <параметры> Имя_экземпляра_объекта Имя_метода EXECUTE и менимальнее не сделать. А это достигается добавлением единственного : -- ( n1 n2 -- n1+n2 ) CREATE OVER , + DOES> @ + ; |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |