Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо |
|
|
Сам спрашиваю сам предлагаю варианты) 1) Квадратно-гнездовой способ. Суть: при мн. наследовании класса размер объекта изменяется не на всю длинну объекта-родителя, а на CELL (ячейку), в которой будет указатель на объект 2-го родителя. Соотвественно все слова-методы надо перекомпилировать. По факту будет получать значения из указателя по указателю. 2) Хранить во ВСЕХ объектах переменную со смещением для доступа к переменным. Соотвественно, у всех объектов в этой переменной будет записан 0 (ноль). А вот при множественном наследовании значение этой переменной будет иным. +40, например. 3) Такой простой, что уже сложно. При создании класса дополнительно сохраняем его исходник. И когда нам потребуется сделать наследование от 2 и более классов, мы просто прогоним заранее сохраненную строку через EVALUATE Просто, дешево и сердито
Сам спрашиваю сам предлагаю варианты)
1) Квадратно-гнездовой способ. Суть: при мн. наследовании класса размер объекта изменяется не на всю длинну объекта-родителя, а на CELL (ячейку), в которой будет указатель на объект 2-го родителя. Соотвественно все слова-методы надо перекомпилировать. По факту будет получать значения из указателя по указателю.
2) Хранить во ВСЕХ объектах переменную со смещением для доступа к переменным. Соотвественно, у всех объектов в этой переменной будет записан 0 (ноль). А вот при множественном наследовании значение этой переменной будет иным. +40, например.
3) Такой простой, что уже сложно. При создании класса дополнительно сохраняем его исходник. И когда нам потребуется сделать наследование от 2 и более классов, мы просто прогоним заранее сохраненную строку через EVALUATE
Просто, дешево и сердито :)
|
|
|
|
Добавлено: Чт окт 01, 2020 22:08 |
|
|
|
|
|
Заголовок сообщения: |
Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо |
|
|
zma писал(а): Часто ли нужны сложные структуры данных? Вот тут во многом зависит от того комплекта инструментов, который используется. Если Форт заранее позиционируется как скриптовый, то сложные структуры в программе необязательны. По крайней мере, специально брать Форт в надежде, что там как-нибудь будут реализованы структуры, немного странно. zma писал(а): Правильно ли я понял, что в Вашем случае их реализация на Форте не сильно отличалась от реализаций на других языках? В целом да. Чего-то особенного, укладывающегося в стек/регулярную грамматику, не нашлось. Структуры были в основном синтаксической мимикрией под аналогичные конструкции в других языках.
[quote="zma"]Часто ли нужны сложные структуры данных?[/quote] Вот тут во многом зависит от того комплекта инструментов, который используется. Если Форт заранее позиционируется как скриптовый, то сложные структуры в программе необязательны. По крайней мере, специально брать Форт в надежде, что там как-нибудь будут реализованы структуры, немного странно. [quote="zma"]Правильно ли я понял, что в Вашем случае их реализация на Форте не сильно отличалась от реализаций на других языках?[/quote] В целом да. Чего-то особенного, укладывающегося в стек/регулярную грамматику, не нашлось. Структуры были в основном синтаксической мимикрией под аналогичные конструкции в других языках.
|
|
|
|
Добавлено: Чт сен 17, 2020 02:25 |
|
|
|
|
|
Заголовок сообщения: |
Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо |
|
|
Hishnik писал(а): Как написать на Форте что-то еще, что есть в другом языке. Видимо, компактность решений на Форте тут мало чем поможет сама по себе. Если нужна поддержка структур данных, ее придется как-то писать. Мы пробовали, неоднократно, в стиле Форта решение пока не находится (в том смысле, что код короткий, независимый и т.д.). Часто ли нужны сложные структуры данных? Правильно ли я понял, что в Вашем случае их реализация на Форте не сильно отличалась от реализаций на других языках?
[quote="Hishnik"]Как написать на Форте что-то еще, что есть в другом языке. Видимо, компактность решений на Форте тут мало чем поможет сама по себе. Если нужна поддержка структур данных, ее придется как-то писать. Мы пробовали, неоднократно, в стиле Форта решение пока не находится (в том смысле, что код короткий, независимый и т.д.).[/quote] Часто ли нужны сложные структуры данных? Правильно ли я понял, что в Вашем случае их реализация на Форте не сильно отличалась от реализаций на других языках?
|
|
|
|
Добавлено: Ср сен 16, 2020 22:35 |
|
|
|
|
|
Заголовок сообщения: |
Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо |
|
|
Victor__v писал(а): KPG, вот ваш выход) Поделитесь ссылочкой на форт-систему, в которой есть реализация ООП с множественным наследованием Как же это узнать, если нет такой практики ООП для Форт? P.S. Может Mops близок к необходимому функционалу? The Mops Programming Language—Part 1 The Mops Programming Language—Part 2(Multiple Inheritance - множественное наследование - упоминается во второй части) Код: Как и несколько других объектно-ориентированных языков, Mops обеспечивает множественное наследование, при котором класс может иметь более одного непосредственного суперкласса и, таким образом, две или более разных линий происхождения, так же как у человека есть и мать, и отец, и наследует характеристики от обоих. Возможность множественного наследования позволяет смешивать функциональные возможности двух или более существующих классов в новом классе. (Сначала попробуйте классы с единичным наследованием.) При необходимости это очень мощная функция, которая часто считается пробным камнем полностью объектно-ориентированной реализации.
[quote="Victor__v"]KPG, вот ваш выход) Поделитесь ссылочкой на форт-систему, в которой есть реализация ООП с множественным наследованием :oops:[/quote] Как же это узнать, если нет такой практики ООП для Форт? :)
P.S. Может [url=http://powermops.org/]Mops[/url] близок к необходимому функционалу?
[url=http://www.atpm.com/8.03/mops.shtml]The Mops Programming Language—Part 1[/url] [url=http://www.atpm.com/8.04/mops.shtml]The Mops Programming Language—Part 2[/url] (Multiple Inheritance - множественное наследование - упоминается во второй части) [code] Как и несколько других объектно-ориентированных языков, Mops обеспечивает множественное наследование, при котором класс может иметь более одного непосредственного суперкласса и, таким образом, две или более разных линий происхождения, так же как у человека есть и мать, и отец, и наследует характеристики от обоих. Возможность множественного наследования позволяет смешивать функциональные возможности двух или более существующих классов в новом классе. (Сначала попробуйте классы с единичным наследованием.) При необходимости это очень мощная функция, которая часто считается пробным камнем полностью объектно-ориентированной реализации. [/code]
|
|
|
|
Добавлено: Ср сен 16, 2020 18:12 |
|
|
|
|
|
Заголовок сообщения: |
Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо |
|
|
Вопрос остаётся в силе: как прикрутить к реализации ООО на форте множественное наследование У кого какие идеи. KPG, вот ваш выход) Поделитесь ссылочкой на форт-систему, в которой есть реализация ООП с множественным наследованием
Вопрос остаётся в силе: как прикрутить к реализации ООО на форте множественное наследование :)) :shuffle; У кого какие идеи.
KPG, вот ваш выход) Поделитесь ссылочкой на форт-систему, в которой есть реализация ООП с множественным наследованием :oops:
|
|
|
|
Добавлено: Ср сен 16, 2020 17:26 |
|
|
|
|
|
Заголовок сообщения: |
Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо |
|
|
KPG писал(а): Предлагаете начать описывать конкретные проекты и что и как в них реализовано с применением того или иного Форт?
Ой как неожиданно! Давно уже пора.
[quote="KPG"]Предлагаете начать описывать конкретные проекты и что и как в них реализовано с применением того или иного Форт? [/quote] Ой как неожиданно! :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, но это не так принципиально (учитывая все сложности сего действия) т.к. Форт достаточно остаётся Фортом в рамках разных Форт-систем и к тому же перенос может быть не так целесообразен как возможность на разной кодовой базе сделать какое то интегрированное решение.
[quote="Victor__v"][quote="KPG"]Можно ещё подумать о совмещении с ООП и программным кодом из Win32Forth, как частным вариантом полезного расширения Форт-системы. (хотя использование такого Форт ООП немного геморно и противоречит самому использованию базиса Форт в таком варианте его расширения, столкнулся с эти когда [url=http://sendfile.su/1576364]улучшал функционал поддержки scite.dll в IDE Win32Forth[/url] )[/quote]
KPG, давайте еще раз. Что вы предлагаете сделать. По пунктам.[/quote] Как можно что то советовать, если интересы применения Форт у каждого Форт-юзера могут быть разные?
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, давайте еще раз. Что вы предлагаете сделать. По пунктам.
[quote="KPG"]Можно ещё подумать о совмещении с ООП и программным кодом из Win32Forth, как частным вариантом полезного расширения Форт-системы. (хотя использование такого Форт ООП немного геморно и противоречит самому использованию базиса Форт в таком варианте его расширения, столкнулся с эти когда [url=http://sendfile.su/1576364]улучшал функционал поддержки scite.dll в IDE Win32Forth[/url] )[/quote]
KPG, давайте еще раз. Что вы предлагаете сделать. По пунктам.
|
|
|
|
Добавлено: Пн сен 14, 2020 12:20 |
|
|
|
|
|
Заголовок сообщения: |
Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо |
|
|
Victor__v писал(а): Я уверен, что в рамках Win32Forth экосистемы есть программный код) Вопрос в другом, что этот код собственно делает. Это, что такой специфичный флуд? Для чего программа создаётся, то в ней и делается в рамках реализованного кода! Victor__v писал(а): Вы же, как я понимаю, предлагаете переписать ВСЕ ПРОЕКТЫ НА Win32Forth В ООП-СТИЛЕ. Короче, больше конкретики) Где я такое говорил? Отнюдь мне не нравится идея ООП для Форт, но, например, Гуишный интерфейс программы вполне с ним неплохо уживается. Если интересный проект реализован в рамках какой то Форт-системы, то не обязательно его переписывать под другую Форт-систему, хотя заготовку проекта Enity.f -редактора узлов (Win32Forth) переписал и улучшил в рамках SPF4 и назвал Простой редактор узлов (первое, с чем там столкнулся при его переносе, что в Win32Forth совсем другой порядок вызова параметров функций Win32API) P.S. Какой конкретики? Конкретика присутствует в коде проектов сделанных в рамках той или иной Форт-системы. Предлагаете начать описывать конкретные проекты и что и как в них реализовано с применением того или иного Форт?
[quote="Victor__v"]Я уверен, что в рамках Win32Forth экосистемы есть программный код) Вопрос в другом, что этот код собственно делает.[/quote] Это, что такой специфичный флуд? :) Для чего программа создаётся, то в ней и делается в рамках реализованного кода!
[quote="Victor__v"] Вы же, как я понимаю, предлагаете переписать ВСЕ ПРОЕКТЫ НА Win32Forth В ООП-СТИЛЕ. Короче, больше конкретики) [/quote] Где я такое говорил? Отнюдь мне не нравится идея ООП для Форт, но, например, Гуишный интерфейс программы вполне с ним неплохо уживается. Если интересный проект реализован в рамках какой то Форт-системы, то не обязательно его переписывать под другую Форт-систему, хотя заготовку проекта 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 (ООП от автора). Это здорово, раз там есть ООП. то, надеемся, что он использовался по делу. И?
[quote="KPG"] Опять не понял посыла и сути вопроса. :) Программный код - созданный в рамках Win32Forth экосистемы. Думаете его нет? (примеры в самой системе, сторонние разработки ... есть и игры и "субд", "Сапр" и варианты "ИИ", и возможно не только в демо-разработках...) Сам, например, делал и применял Форт-систему программирования для процессора PDP-11 на Win32Forth.[/quote]
Я уверен, что в рамках Win32Forth экосистемы есть программный код) Вопрос в другом, что этот код собственно делает. Вы же, как я понимаю, предлагаете переписать ВСЕ ПРОЕКТЫ НА Win32Forth В ООП-СТИЛЕ. Короче, больше конкретики)
[quote="Ilya"]Например nnCron точно использует в своём составе либы (net, GUI), которые в свою очередь базируются на class.f (ООП от автора).[/quote] Это здорово, раз там есть ООП. то, надеемся, что он использовался по делу. И?
|
|
|
|
Добавлено: Пн сен 14, 2020 11:43 |
|
|
|
|
|
Заголовок сообщения: |
Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо |
|
|
Victor__v писал(а): Программный код, извините, чего? Игры, СУБД, САПР, ИИ по захвату мира? Код чего именно? Опять не понял посыла и сути вопроса. Программный код - созданный в рамках Win32Forth экосистемы. Думаете его нет? (примеры в самой системе, сторонние разработки ... есть и игры и "субд", "Сапр" и варианты "ИИ", и возможно не только в демо-разработках...) Сам, например, делал и применял Форт-систему программирования для процессора PDP-11 на Win32Forth. В этом архиве со старой версией Win32Forth для компиляции этого проекта
[quote="Victor__v"]Программный код, извините, чего? Игры, СУБД, САПР, ИИ по захвату мира? Код чего именно?[/quote] Опять не понял посыла и сути вопроса. :)
Программный код - созданный в рамках Win32Forth экосистемы. Думаете его нет? (примеры в самой системе, сторонние разработки ... есть и игры и "субд", "Сапр" и варианты "ИИ", и возможно не только в демо-разработках...) Сам, например, делал и применял Форт-систему программирования для процессора PDP-11 на Win32Forth. [url=http://sendfile.su/1576453]В этом архиве со старой версией Win32Forth для компиляции этого проекта[/url]
|
|
|
|
Добавлено: Пн сен 14, 2020 11:26 |
|
|
|
|
|
Заголовок сообщения: |
Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо |
|
|
Victor__v писал(а): Программный код, извините, чего? Игры, СУБД, САПР, ИИ по захвату мира? Код чего именно? Например nnCron точно использует в своём составе либы (net, GUI), которые в свою очередь базируются на class.f (ООП от автора).
[quote="Victor__v"]Программный код, извините, чего? Игры, СУБД, САПР, ИИ по захвату мира? Код чего именно?[/quote] Например 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(поэтому и написано - вариант ООП
[quote="Victor__v"][quote="KPG"]Можно ещё подумать о совмещении с ООП и программным кодом из Win32Forth, как частным вариантом полезного расширения Форт-системы. (хотя использование такого Форт ООП немного геморно и противоречит самому использованию базиса Форт в таком варианте его расширения)[/quote] Щито?[/quote] А, что не так? Вроде не новость, что в Win32Forth используется вариант ООП для построения программного кода. :)
P.S. Близкий вариант JOOP (~day) в SPF4 [url=https://github.com/rufig/spf4-utf8/tree/master/devel/~day/joop]Joop[/url] (поэтому и написано - вариант ООП :)
|
|
|
|
Добавлено: Вс сен 13, 2020 16:41 |
|
|
|
|
|
Заголовок сообщения: |
Re: Флуд: Как бы вы реализовали мн. наследование в ООП на фо |
|
|
KPG писал(а): Можно ещё подумать о совмещении с ООП и программным кодом из Win32Forth, как частным вариантом полезного расширения Форт-системы. (хотя использование такого Форт ООП немного геморно и противоречит самому использованию базиса Форт в таком варианте его расширения) Щито?
[quote="KPG"]Можно ещё подумать о совмещении с ООП и программным кодом из Win32Forth, как частным вариантом полезного расширения Форт-системы. (хотя использование такого Форт ООП немного геморно и противоречит самому использованию базиса Форт в таком варианте его расширения)[/quote] Щито?
|
|
|
|
Добавлено: Вс сен 13, 2020 16:37 |
|
|
|
|