Forth
http://fforum.winglion.ru/

ООП в форте как он должен выглядеть?
http://fforum.winglion.ru/viewtopic.php?f=4&t=3233
Страница 1 из 2

Автор:  Victor__v [ Пн апр 15, 2019 13:19 ]
Заголовок сообщения:  ООП в форте как он должен выглядеть?

Тема для флейма.

Решил продолжить писать редактор и столкнулся с одной проблемой. В коде стало сложнее разбираться.
Поэтому решил это как-то оформить.
Вид получился ООП-ный: структура данных плюс функции для работы с этими данными.
ЧТо-то вроде:
CLASS: FILE
CELL IS BODY
CELL IS HASH-LIST
CELL IS NAME
M: TYPE-NAME NAME @ COUNT TYPE CR ;
CLASS;

Также создал синтаксис а-ля "область видимости".
Пример
: PRINT CURRENT-FILE >OBJ: FILE TYPE-NAME TYPE-BODY OBJ; ;

В итоге весь полученный ООП-набор сводится к 2 фичам:
В методах ( М: ) при определении переменные знают адрес, от которого им надо "плясать"
Область видимости, которая даёт методам и переменным адрес от которого они будут плясать.

Скомпилированный код условно:

M: TEST P2 @ ; --- >R R@ CELL+ @ RDROP ;

: T2 >OBJ: TEST P2 P1 + OBJ; ; --- >R R@ TEST R@ CELL+ R@ 0 + + RDROP ;

НА САМОМ ДЕЛЕ КОД НЕСКОЛЬКО СЛОЖНЕЕ, но идея такая же.

В итоге при использовании всего этого код становится проще тупо за счёт сокрытия некоторых деталей (Было "указатель на структуру, функция" стало просто "функция") и медленнее за счёт постоянного использования локальной переменной.

Короче вот так вот выглядит ООП или что-то похожее на него. Идею честно стырил из СПФ (см. микроклассы).

У кого есть ещё какие-либо соображения по форт-синтаксису для ООП?

Автор:  mOleg [ Вт апр 16, 2019 19:10 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

Объект - чужеродная абстракция, в Форте ее заменяет Слово.
Не нужно загромождать язык чужеродными конкурирующими абстракциями!

Автор:  Ilya [ Вт апр 16, 2019 20:43 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

Victor__v писал(а):

Короче вот так вот выглядит ООП или что-то похожее на него. Идею честно стырил из СПФ (см. микроклассы).

У кого есть ещё какие-либо соображения по форт-синтаксису для ООП?

Посмотрите ~nn/class. У Николая на этой базе построены некоторые либы (GUI, net, ...)

Автор:  Victor__v [ Вт апр 16, 2019 20:57 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

mOleg писал(а):
Объект - чужеродная абстракция, в Форте ее заменяет Слово.
Не нужно загромождать язык чужеродными конкурирующими абстракциями!


Я бы с Вами согласился, если бы не одно "но". Это помогает программировать.
В настоящий момент у меня есть наработка, где ООП смотрелось бы более органично.

Автор:  mOleg [ Вт апр 16, 2019 22:23 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

Victor__v писал(а):
Я бы с Вами согласился, если бы не одно "но". Это помогает программировать.

"это лишь показывает, что в Форте и так можно"
вы просто привычно тянете инородное в Форт.
Ну, и вопрос, что у вас не получается делать со словами, что нужно добавлять объекты?

Автор:  Victor__v [ Ср апр 17, 2019 00:50 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

mOleg писал(а):
вы просто привычно тянете инородное в Форт.

Что, простите? Вы человеком не ошиблись?
mOleg писал(а):
Ну, и вопрос, что у вас не получается делать со словами, что нужно добавлять объекты?

Некорректно.
Получается всё. Вот только "объекты" (структуры по факту) уменьшают кол-во ошибок в коде.

Автор:  Victor__v [ Ср апр 17, 2019 00:52 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

Ilya писал(а):
Посмотрите ~nn/class. У Николая на этой базе построены некоторые либы (GUI, net, ...)

Вещь большая покопаемся.

Автор:  mOleg [ Ср апр 17, 2019 21:35 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

Victor__v писал(а):
Что, простите? Вы человеком не ошиблись?

Что не так? Вы не про ООП пишите?

Victor__v писал(а):
Вот только "объекты" (структуры по факту) уменьшают кол-во ошибок в коде.

ну, вот, можно примеры привести?

Victor__v писал(а):
Ilya писал(а):
Посмотрите ~nn/class. У Николая на этой базе построены некоторые либы (GUI, net, ...)

Вещь большая покопаемся.


spf4/devel/~af/microclass.f ?

Автор:  zma [ Чт апр 18, 2019 02:30 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

Victor__v, не совсем понял, в чём заключается "область видимости"? Поля и методы класса находятся в отдельном словаре? NAME класса FILE не будет перекрывать NAME ранее определённого класса?

Автор:  Ethereal [ Чт апр 18, 2019 12:09 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

Словарь - это и есть область видимости, причем я сам переключаю чего я вижу, а чего нет. Так-что нет смысла в чем-то дополнительном, все уже есть.
Victor__v писал(а):
Получается всё. Вот только "объекты" (структуры по факту) уменьшают кол-во ошибок в коде.
Количество ошибок уменьшает ограничение плохого программиста, так сказать помещение его в стойло. Чем больше в языке будет низзя, тем меньше такой программист наделает ошибок. Но это-же наверно не идеология Форта.

Автор:  Victor__v [ Чт апр 18, 2019 12:11 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

zma писал(а):
Victor__v, не совсем понял, в чём заключается "область видимости"? Поля и методы класса находятся в отдельном словаре? NAME класса FILE не будет перекрывать NAME ранее определённого класса?

Всё делается через словари в этом плане ничего особенного.

mOleg, пример приведу потом.
Цитата:
spf4/devel/~af/microclass.f ?

У меня тоже вопрос. К чему это?
Вроде бы сам упоминал эту реализацию
Цитата:
Идею честно стырил из СПФ (см. микроклассы).

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

Автор:  diver [ Чт апр 18, 2019 20:41 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

В SPF-е есть ООП библиотеки hype.f, joop.f - достаточно функциональны и просты

Автор:  mOleg [ Пт апр 19, 2019 20:30 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

Victor__v писал(а):
Цитата:
spf4/devel/~af/microclass.f ?

У меня тоже вопрос. К чему это?
Вроде бы сам упоминал эту реализацию

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

Автор:  Ilya [ Пт апр 19, 2019 22:07 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

diver писал(а):
В SPF-е есть ООП библиотеки hype.f, joop.f - достаточно функциональны и просты

Реализаций то много, но вот у Николая (aka ~nn) это имело практическое продолжение в виде множества либ.

Автор:  Hishnik [ Пн апр 22, 2019 22:47 ]
Заголовок сообщения:  Re: ООП в форте как он должен выглядеть?

А сопоставление словарей и объектов уже было?

Страница 1 из 2 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/