Forth
http://www.fforum.winglion.ru/

Форт и ООП
http://www.fforum.winglion.ru/viewtopic.php?f=25&t=2050
Страница 1 из 6

Автор:  be_nt_all [ Чт апр 02, 2009 09:33 ]
Заголовок сообщения: 

Ок, бэкфортом занимаюсь...
mOleg писал(а):
насчет ООПа надо думать, кстати, для чего он вам нужен?

Привычка, наверное :)
mOleg писал(а):
в смысле какие аспекты ООПа вам нужны

А так, что можно получить от ООП в Форте -- удобная надстройка над словарями (переключения и полиморфизм путём динамического поиска по этим словарям в момент исполнения). Именно так работает hype, и большинство ООП надстроек над Фортом.

Вот такие http://fforum.winglion.ru/viewtopic.php?t=2003&start=0 структуры + наследование и полиморфизм

Автор:  mOleg [ Чт апр 02, 2009 22:01 ]
Заголовок сообщения: 

be_nt_all писал(а):
А так, что можно получить от ООП в Форте -- удобная надстройка над словарями

а может просто работу со словарями развить? ;)

be_nt_all писал(а):
переключения и полиморфизм путём динамического поиска по этим словарям в момент исполнения

ну вот, а зачем оно? это же достаточно медленно, и потенциально бажно.

Автор:  вопрос [ Чт апр 02, 2009 23:49 ]
Заголовок сообщения: 

Цитата:
а может просто работу со словарями развить?
А может ООП это больше хорошо чем плохо?

Автор:  mOleg [ Чт апр 02, 2009 23:55 ]
Заголовок сообщения: 

вопрос писал(а):
А может ООП это больше хорошо чем плохо?

чем?
вы понимаете, что ООП это просто другая идеалогия и к Форту она не очень близка, и решает проблемы не Форта, а маинстримовских языков
(управление пространствами имен, к примеру)

Автор:  вопрос [ Пт апр 03, 2009 00:06 ]
Заголовок сообщения: 

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

Автор:  mOleg [ Пт апр 03, 2009 00:29 ]
Заголовок сообщения: 

вопрос писал(а):
Я так не думаю, тем не менее, недурно было бы в рамках проекта поэкспериментировать с ООП - может быть, какие-то из идей и прижились.

с ООПом в Форте очень много экспериментов переделано, аж жуть как много. И практически ничего интересного (ну было интересно 1001bytes).
выхода как бы не видно, каждый раз создают новую ООП либу, и потом, собственно, а что потом-то?

Автор:  mOleg [ Пт апр 03, 2009 00:30 ]
Заголовок сообщения: 

вопрос писал(а):
ООП не имеет отношения к языку, это организация структуры программы для программиста.

еще как имеет. В Форте принята несколько другая организация структуры.

Автор:  Гость [ Пт апр 03, 2009 07:24 ]
Заголовок сообщения: 

mOleg писал(а):
Гость писал(а):
В spf4 при запуске, первым делом, интерпритируются параметры командной строки
( например передача числа на стек при старте программы )
и нет в forke

здрасте, все есть.


При запуске в командной строке fork.exe 123
На стеке системе после входа 123 нет ( в отличии от spf4 )
хотя интерпритатор и обрабатывает аргументы входной строки:)

Автор:  вопрос [ Пт апр 03, 2009 09:16 ]
Заголовок сообщения: 

mOleg писал(а):
вопрос писал(а):
ООП не имеет отношения к языку, это организация структуры программы для программиста.

еще как имеет. В Форте принята несколько другая организация структуры.

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

Автор:  be_nt_all [ Пт апр 03, 2009 12:46 ]
Заголовок сообщения: 

mOleg писал(а):
а может просто работу со словарями развить? ;).

Ну Си-структуры ты сам предложил, а от них до наследования -- пол шага... Да, это неплохо бы увязать с другими особенностями форт-системы-окружения.

mOleg писал(а):
be_nt_all писал(а):
переключения и полиморфизм путём динамического поиска по этим словарям в момент исполнения
ну вот, а зачем оно? это же достаточно медленно, и потенциально бажно.

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

mOleg писал(а):
с ООПом в Форте очень много экспериментов переделано, аж жуть как много. И практически ничего интересного (ну было интересно 1001bytes).
выхода как бы не видно, каждый раз создают новую ООП либу, и потом, собственно, а что потом-то?

Ну под СПФ-ом есть оконная библиотека WFC. И вообще все эти эксперименты в основном друг на друга похожи, hype -- неплохое среднее арифметическое от них.

зы. Hype судя по ссылкам в инете претендует на стандарт de-facto...

А про ООП в форте вообще, такой гуру Форта как Лео Броуди хоть и написал в своей книге ThinkingForth что ООП - это ненужная вещь, в предисловии к переизданию поправил себя, написав что он попробовал объектно-ориентированное расширение форта и ему понравилось :)

Автор:  mOleg [ Пт апр 03, 2009 21:11 ]
Заголовок сообщения: 

Гость писал(а):
При запуске в командной строке fork.exe 123
На стеке системе после входа 123 нет ( в отличии от spf4 )
хотя интерпритатор и обрабатывает аргументы входной строки

да, это действительно так. Числа не передаются, но все из коммандной строки обрабатывается.

Автор:  mOleg [ Пт апр 03, 2009 22:55 ]
Заголовок сообщения: 

be_nt_all писал(а):
mOleg писал(а):а может просто работу со словарями развить? .
Ну Си-структуры ты сам предложил, а от них до наследования -- пол шага...

а у нас и так есть наследование:
ALSO VOC1 ALSO VOC2 (множественное причем 8)

be_nt_all писал(а):
Да, это неплохо бы увязать с другими особенностями форт-системы-окружения.

ведь все в Форте есть, просто называется иначе несколько.
вот полиморфизм:

0 VALUE zzz
USER-VALUE yyy
10 TO zzz
zzz TO yyy
( были и более развитые примеры у меня)

что там еще, от ООПа-то?
инкапсуляция - это словари обеспечивают

или вот CREATE DOES> механизм

а насчет сишных структур, так ведь лень вычислять поля :)

be_nt_all писал(а):
Да, но иногда это нужно. Словари классы - маленькие, а если ещё и хэш задействован получаем нормальную такую ООП в стиле скриптовых языков. Альтернатива - таблицы виртуальных методов, или что то аналогичное. В идеале -- и то другое должно реализовываться масенькими такими библиотечками, используемыми когда они действительно нужны...

да есть оно уже все, только терминология принята другая. Ну, тот же NOTFOUND (мною не любимый), или тут лежит либа поддерживающая множетсвенный does> (вот и таблица методов для работы с данными).

Автор:  be_nt_all [ Вт апр 07, 2009 15:26 ]
Заголовок сообщения: 

да, по кусочкам всё у нас уже есть, а все ООП б-ки -- это дело просто собирают до кучки и присыпают синтаксическим сахаром, типа переключения словарей "на одно слово". А multi-DOES> -- да отличная таблица методов, но насколько я помню без наследования (пока).

Автор:  Wlad [ Вт апр 07, 2009 17:43 ]
Заголовок сообщения: 

А наследование сильно нужно?
Может лучше какой другой способ повторно функциональность использовать придумать?

Автор:  mOleg [ Вт апр 07, 2009 20:05 ]
Заголовок сообщения: 

be_nt_all писал(а):
А multi-DOES> -- да отличная таблица методов, но насколько я помню без наследования (пока).

а зачем там наследование? собственно, оно ведь как раз у DOES> имеется:

: sample CREATE , DOES> @ ;
10 sample aaa
20 sample bbb
это что? разве не наследование методов класса?

Wlad писал(а):
Может лучше какой другой способ повторно функциональность использовать придумать?

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

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