Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 17:23

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Флуд: Как бы вы реализовали мн. наследование в ООП на форте?
Автор Сообщение
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
Сам спрашиваю сам предлагаю варианты)

1) Квадратно-гнездовой способ.
Суть: при мн. наследовании класса размер объекта изменяется не на всю длинну объекта-родителя, а на CELL (ячейку), в которой будет указатель на объект 2-го родителя.
Соотвественно все слова-методы надо перекомпилировать.
По факту будет получать значения из указателя по указателю.

2) Хранить во ВСЕХ объектах переменную со смещением для доступа к переменным.
Соотвественно, у всех объектов в этой переменной будет записан 0 (ноль).
А вот при множественном наследовании значение этой переменной будет иным. +40, например.

3) Такой простой, что уже сложно.
При создании класса дополнительно сохраняем его исходник.
И когда нам потребуется сделать наследование от 2 и более классов, мы просто прогоним заранее сохраненную строку через EVALUATE

Просто, дешево и сердито :)
Сообщение Добавлено: Чт окт 01, 2020 22:08
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
zma писал(а):
Часто ли нужны сложные структуры данных?

Вот тут во многом зависит от того комплекта инструментов, который используется. Если Форт заранее позиционируется как скриптовый, то сложные структуры в программе необязательны. По крайней мере, специально брать Форт в надежде, что там как-нибудь будут реализованы структуры, немного странно.
zma писал(а):
Правильно ли я понял, что в Вашем случае их реализация на Форте не сильно отличалась от реализаций на других языках?

В целом да. Чего-то особенного, укладывающегося в стек/регулярную грамматику, не нашлось. Структуры были в основном синтаксической мимикрией под аналогичные конструкции в других языках.
Сообщение Добавлено: Чт сен 17, 2020 02:25
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
Hishnik писал(а):
Как написать на Форте что-то еще, что есть в другом языке.
Видимо, компактность решений на Форте тут мало чем поможет сама по себе. Если нужна поддержка структур данных, ее придется как-то писать. Мы пробовали, неоднократно, в стиле Форта решение пока не находится (в том смысле, что код короткий, независимый и т.д.).

Часто ли нужны сложные структуры данных? Правильно ли я понял, что в Вашем случае их реализация на Форте не сильно отличалась от реализаций на других языках?
Сообщение Добавлено: Ср сен 16, 2020 22:35
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
Victor__v писал(а):
KPG, вот ваш выход)
Поделитесь ссылочкой на форт-систему, в которой есть реализация ООП с множественным наследованием :oops:

Как же это узнать, если нет такой практики ООП для Форт? :)

P.S. Может Mops близок к необходимому функционалу?

The Mops Programming Language—Part 1
The Mops Programming Language—Part 2
(Multiple Inheritance - множественное наследование - упоминается во второй части)
Код:
Как и несколько других объектно-ориентированных языков, Mops обеспечивает множественное наследование, при котором класс может иметь более одного непосредственного суперкласса и, таким образом, две или более разных линий происхождения, так же как у человека есть и мать, и отец, и наследует характеристики от обоих. Возможность множественного наследования позволяет смешивать функциональные возможности двух или более существующих классов в новом классе. (Сначала попробуйте классы с единичным наследованием.) При необходимости это очень мощная функция, которая часто считается пробным камнем полностью объектно-ориентированной реализации.
Сообщение Добавлено: Ср сен 16, 2020 18:12
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
Вопрос остаётся в силе: как прикрутить к реализации ООО на форте множественное наследование :)) :shuffle;
У кого какие идеи.

KPG, вот ваш выход)
Поделитесь ссылочкой на форт-систему, в которой есть реализация ООП с множественным наследованием :oops:
Сообщение Добавлено: Ср сен 16, 2020 17:26
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
KPG писал(а):
Предлагаете начать описывать конкретные проекты и что и как в них реализовано с применением того или иного Форт?

Ой как неожиданно! :D Давно уже пора.
Сообщение Добавлено: Пн сен 14, 2020 14:24
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
Victor__v писал(а):
KPG писал(а):
Можно ещё подумать о совмещении с ООП и программным кодом из Win32Forth, как частным вариантом полезного расширения Форт-системы. (хотя использование такого Форт ООП немного геморно и противоречит самому использованию базиса Форт в таком варианте его расширения, столкнулся с эти когда улучшал функционал поддержки scite.dll в IDE Win32Forth )


KPG, давайте еще раз. Что вы предлагаете сделать. По пунктам.

Как можно что то советовать, если интересы применения Форт у каждого Форт-юзера могут быть разные?

P.S. В приведённом проекте ясно же указано, что была идея улучшить поддержку в IDE Win32Forth редактировния Форт кода, в частности добавлена поддержка фолдингa кода и сама scite.dll пересобрана для подсветки Форт-кода по ранее озвученному варианту в рамках местного форума. При этом ещё столкнулся, что пересборка Win32Forth 6.15_ не запускалась в рамках разных Windows. (например можно ещё наблюдать, что пример консольного тетриса в ней не работает, хотя в других версиях с этим нет проблем, а также не собирался пример-программы HeXe с примерами OpenGL)

Конечно же, хотелось иметь возможность и запуска кода сделанного под Win32Forth в рамках SPF4, но это не так принципиально (учитывая все сложности сего действия) т.к. Форт достаточно остаётся Фортом в рамках разных Форт-систем и к тому же перенос может быть не так целесообразен как возможность на разной кодовой базе сделать какое то интегрированное решение.
Сообщение Добавлено: Пн сен 14, 2020 12:24
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
KPG писал(а):
Можно ещё подумать о совмещении с ООП и программным кодом из Win32Forth, как частным вариантом полезного расширения Форт-системы. (хотя использование такого Форт ООП немного геморно и противоречит самому использованию базиса Форт в таком варианте его расширения, столкнулся с эти когда улучшал функционал поддержки scite.dll в IDE Win32Forth )


KPG, давайте еще раз. Что вы предлагаете сделать. По пунктам.
Сообщение Добавлено: Пн сен 14, 2020 12:20
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
Victor__v писал(а):
Я уверен, что в рамках Win32Forth экосистемы есть программный код)
Вопрос в другом, что этот код собственно делает.

Это, что такой специфичный флуд? :)
Для чего программа создаётся, то в ней и делается в рамках реализованного кода!


Victor__v писал(а):
Вы же, как я понимаю, предлагаете переписать ВСЕ ПРОЕКТЫ НА Win32Forth В ООП-СТИЛЕ.
Короче, больше конкретики)

Где я такое говорил?
Отнюдь мне не нравится идея ООП для Форт, но, например, Гуишный интерфейс программы вполне с ним неплохо уживается.
Если интересный проект реализован в рамках какой то Форт-системы, то не обязательно его переписывать под другую Форт-систему, хотя заготовку проекта Enity.f -редактора узлов (Win32Forth) переписал и улучшил в рамках SPF4 и назвал Простой редактор узлов :) (первое, с чем там столкнулся при его переносе, что в Win32Forth совсем другой порядок вызова параметров функций Win32API)

P.S. Какой конкретики?
Конкретика присутствует в коде проектов сделанных в рамках той или иной Форт-системы.
Предлагаете начать описывать конкретные проекты и что и как в них реализовано с применением того или иного Форт?
Сообщение Добавлено: Пн сен 14, 2020 12:10
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
KPG писал(а):
Опять не понял посыла и сути вопроса. :)
Программный код - созданный в рамках Win32Forth экосистемы. Думаете его нет? (примеры в самой системе, сторонние разработки ... есть и игры и "субд", "Сапр" и варианты "ИИ", и возможно не только в демо-разработках...)
Сам, например, делал и применял Форт-систему программирования для процессора PDP-11 на Win32Forth.


Я уверен, что в рамках Win32Forth экосистемы есть программный код)
Вопрос в другом, что этот код собственно делает.
Вы же, как я понимаю, предлагаете переписать ВСЕ ПРОЕКТЫ НА Win32Forth В ООП-СТИЛЕ.
Короче, больше конкретики)

Ilya писал(а):
Например nnCron точно использует в своём составе либы (net, GUI), которые в свою очередь базируются на class.f (ООП от автора).

Это здорово, раз там есть ООП. то, надеемся, что он использовался по делу.
И?
Сообщение Добавлено: Пн сен 14, 2020 11:43
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
Victor__v писал(а):
Программный код, извините, чего?
Игры, СУБД, САПР, ИИ по захвату мира?
Код чего именно?

Опять не понял посыла и сути вопроса. :)

Программный код - созданный в рамках Win32Forth экосистемы. Думаете его нет? (примеры в самой системе, сторонние разработки ... есть и игры и "субд", "Сапр" и варианты "ИИ", и возможно не только в демо-разработках...)
Сам, например, делал и применял Форт-систему программирования для процессора PDP-11 на Win32Forth.
В этом архиве со старой версией Win32Forth для компиляции этого проекта
Сообщение Добавлено: Пн сен 14, 2020 11:26
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
Victor__v писал(а):
Программный код, извините, чего?
Игры, СУБД, САПР, ИИ по захвату мира?
Код чего именно?

Например nnCron точно использует в своём составе либы (net, GUI), которые в свою очередь базируются на class.f (ООП от автора).
Сообщение Добавлено: Пн сен 14, 2020 11:25
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
Программный код, извините, чего?
Игры, СУБД, САПР, ИИ по захвату мира?
Код чего именно?
Сообщение Добавлено: Пн сен 14, 2020 10:50
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
Victor__v писал(а):
KPG писал(а):
Можно ещё подумать о совмещении с ООП и программным кодом из Win32Forth, как частным вариантом полезного расширения Форт-системы. (хотя использование такого Форт ООП немного геморно и противоречит самому использованию базиса Форт в таком варианте его расширения)

Щито?

А, что не так?
Вроде не новость, что в Win32Forth используется вариант ООП для построения программного кода. :)

P.S. Близкий вариант JOOP (~day) в SPF4 Joop
(поэтому и написано - вариант ООП :)
Сообщение Добавлено: Вс сен 13, 2020 16:41
  Заголовок сообщения:  Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо  Ответить с цитатой
KPG писал(а):
Можно ещё подумать о совмещении с ООП и программным кодом из Win32Forth, как частным вариантом полезного расширения Форт-системы. (хотя использование такого Форт ООП немного геморно и противоречит самому использованию базиса Форт в таком варианте его расширения)

Щито?
Сообщение Добавлено: Вс сен 13, 2020 16:37

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


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