Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
Wlad писал(а): Вот, для меня ООП - это больше проектирование, а - не конкретный язык. А, с применением в Форт это как то связано? Мне вот, например, немного не понравилось добавлять недостающюю функциональность к ForhIDE из Win32Forth для задействования больших возможностей по использованию Scintilla.dll (результаты сего действа были представлены на местном форуме) \ код видимости слов приходится задавать в нескольких местах программы, для включения требуемой функциональности P.S. При этом когда экспериментировал с кодом редактора FEDN из SPF 2.5 (под ДОС) такого дискомфорта не было и всё было интересно, но и остались нерешённые вопросы по использованию данного ООП-сного подхода в дизайне данного редактора. (надо, наверное, и результаты тех экспериментов опубликовать на форуме, если кому интересно
[quote="Wlad"]Вот, для меня ООП - это больше проектирование, а - не конкретный язык.[/quote] А, с применением в Форт это как то связано?
Мне вот, например, немного не понравилось добавлять недостающюю функциональность к ForhIDE из Win32Forth для задействования больших возможностей по использованию Scintilla.dll (результаты сего действа были представлены на местном форуме) \ код видимости слов приходится задавать в нескольких местах программы, для включения требуемой функциональности
P.S. При этом когда экспериментировал с кодом редактора FEDN из SPF 2.5 (под ДОС) такого дискомфорта не было и всё было интересно, но и остались нерешённые вопросы по использованию данного ООП-сного подхода в дизайне данного редактора. (надо, наверное, и результаты тех экспериментов опубликовать на форуме, если кому интересно :)
|
|
|
|
Добавлено: Сб июл 27, 2019 18:41 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
Hishnik писал(а): ООП ведь, кроме собственно структур данных, подразумевает взаимодействие объектов посредством сообщений. Вот, для меня ООП - это больше проектирование, а - не конкретный язык. Хотя, если брать именно ООП-языки, то это Смолток и Варианты оберонов. Но, законченный вид ООП (лично для меня) приобрело через Активный Оберон в Зонноне. В принципе, именно в последнем произошло Великое Объединение в программировании - мир ООП естественным и наиболее верным способом слился с миром многозадачности. Произошло объединение описаний статических и динамических аспектов жизни проектируемых систем. Причём, был выработан минимальный базис такого описания. Так скажем, ортогональное, без излишеств.
[quote="Hishnik"]ООП ведь, кроме собственно структур данных, подразумевает взаимодействие объектов посредством сообщений.[/quote] Вот, для меня ООП - это больше проектирование, а - не конкретный язык. Хотя, если брать именно ООП-языки, то это Смолток и Варианты оберонов. Но, законченный вид ООП (лично для меня) приобрело через Активный Оберон в Зонноне. В принципе, именно в последнем произошло Великое Объединение в программировании - мир ООП естественным и наиболее верным способом слился с миром многозадачности. Произошло объединение описаний статических и динамических аспектов жизни проектируемых систем. Причём, был выработан минимальный базис такого описания. Так скажем, ортогональное, без излишеств.
|
|
|
|
Добавлено: Сб июл 27, 2019 15:14 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
ООП ведь, кроме собственно структур данных, подразумевает взаимодействие объектов посредством сообщений. Не зря явно прослеживаемый взлет ООП был связан с распространением Windows, которая, в отличие от DOS, на сообщения завязана полностью. В принципе, сейчас можно и в Си сделать сложные структуры, включающие и данные, и указатели на функции, и на С++ писать "в стиле Си".
ООП ведь, кроме собственно структур данных, подразумевает взаимодействие объектов посредством сообщений. Не зря явно прослеживаемый взлет ООП был связан с распространением Windows, которая, в отличие от DOS, на сообщения завязана полностью. В принципе, сейчас можно и в Си сделать сложные структуры, включающие и данные, и указатели на функции, и на С++ писать "в стиле Си".
|
|
|
|
Добавлено: Пт июл 26, 2019 11:29 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
Всех, кому не интересно - вычеркиваем...
Всех, кому не интересно - вычеркиваем... :))
|
|
|
|
Добавлено: Пт июл 26, 2019 09:16 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
Total Vacuum писал(а): Недавно наткнулся на статью. ООП на чистом С (не С++): https://www.cs.rit.edu/~ats/books/ooc.pdfНемножко не по теме, но может кому-то будет интересно. Ждем статью ООП на ассемблере А - что такого? Я уже давно только в ооп-стиле на чистом си (без плюсов) проектирую и пишу для микроконтроллеров. Примерно, как у Миро Самека ( но - не совсем ). А ещё в 2002 году сделал макросы для работы в ооп на асме adsp2192. А в 90-х и у ТурбоАссемблера был режим написания ооп-кода.
[quote="Total Vacuum"]Недавно наткнулся на статью. ООП на чистом С (не С++): [url]https://www.cs.rit.edu/~ats/books/ooc.pdf[/url] Немножко не по теме, но может кому-то будет интересно. Ждем статью ООП на ассемблере :))[/quote] А - что такого? Я уже давно только в ооп-стиле на чистом си (без плюсов) проектирую и пишу для микроконтроллеров. Примерно, как у Миро Самека ( но - не совсем ). А ещё в 2002 году сделал макросы для работы в ооп на асме adsp2192. А в 90-х и у ТурбоАссемблера был режим написания ооп-кода.
|
|
|
|
Добавлено: Пт июл 26, 2019 02:30 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
f02732 писал(а): Total Vacuum писал(а): Недавно наткнулся на статью. ООП на чистом С (не С++) И что тут такого? ООП на сишке уже давно эмулировать научились. Просто к структуре (инкапсуляция) добавляют указатели на функции (полиморфизм), методы/функции первым аргументом принимают указатель на объект-структуру. Так, навскидку, такое используется в COM и основанных на нём технологиях (COM+ и т.д.), во freetype, вроде, нечто подобное. Я на форте для ООП сделал механизм для завуалирования указателя на струкутруру В итоге можно было писать сразу методы. Эх, помогает
[quote="f02732"][quote="Total Vacuum"]Недавно наткнулся на статью. ООП на чистом С (не С++)[/quote] И что тут такого? ООП на сишке уже давно эмулировать научились. Просто к структуре (инкапсуляция) добавляют указатели на функции (полиморфизм), методы/функции первым аргументом принимают указатель на объект-структуру. Так, навскидку, такое используется в COM и основанных на нём технологиях (COM+ и т.д.), во freetype, вроде, нечто подобное.[/quote] Я на форте для ООП сделал механизм для завуалирования указателя на струкутруру В итоге можно было писать сразу методы. Эх, помогает
|
|
|
|
Добавлено: Чт июл 25, 2019 17:05 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
Total Vacuum писал(а): Недавно наткнулся на статью. ООП на чистом С (не С++) И что тут такого? ООП на сишке уже давно эмулировать научились. Просто к структуре (инкапсуляция) добавляют указатели на функции (полиморфизм), методы/функции первым аргументом принимают указатель на объект-структуру. Так, навскидку, такое используется в COM и основанных на нём технологиях (COM+ и т.д.), во freetype, вроде, нечто подобное.
[quote="Total Vacuum"]Недавно наткнулся на статью. ООП на чистом С (не С++)[/quote] И что тут такого? ООП на сишке уже давно эмулировать научились. Просто к структуре (инкапсуляция) добавляют указатели на функции (полиморфизм), методы/функции первым аргументом принимают указатель на объект-структуру. Так, навскидку, такое используется в COM и основанных на нём технологиях (COM+ и т.д.), во freetype, вроде, нечто подобное.
|
|
|
|
Добавлено: Чт июл 25, 2019 14:43 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
ИМХО, ООП нужен, когда имеется дофига структур и нужны слова для работы с их элементами.
ИМХО, ООП нужен, когда имеется дофига структур и нужны слова для работы с их элементами.
|
|
|
|
Добавлено: Ср июл 24, 2019 17:33 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
Ethereal писал(а): - по объекту класса на каждый пин; - объект, инкапсулирующий все пины для их инициализации одним методом; Подумал, а как бы я это "инкапсулировал" на Форте. Вышло так : Код: HEX
: PIN ( bit addr -- ) CREATE , 1 SWAP LSHIFT , DOES> 2@ ; : PIN@ ( mask addr -- flag ) C@ AND 0<> ; : PIN! ( flag mask addr -- ) 2DUP C@ SWAP INVERT AND 2SWAP AND OR SWAP C! ;
18 CONSTANT PORTB 0 PORTB PIN PORTB.0 1 PORTB PIN PORTB.1 2 PORTB PIN PORTB.2 3 PORTB PIN PORTB.3 4 PORTB PIN PORTB.4 5 PORTB PIN PORTB.5 6 PORTB PIN PORTB.6 7 PORTB PIN PORTB.7
\ \\\\\\\\\\\\\\\\\\\\\\\\\\
8F PORTB C! \ Initialization by one method ... TRUE PORTB.5 PIN! \ _- FALSE PORTB.5 PIN! \ -_ PORTB.3 PIN@ IF ... ELSE ... THEN Там после той статьи такой диалог в обсуждениях : - Но нужно предохраняться, чтобы не подхватить ООП головного мозга. ... Возможно, вы слишком сильно разбиваете задачу на объекты. Зачем на каждый пин по объекту? - Тогда нарушается принцип «один объект — одна область ответственности».Ну вот выше я сделал одно слово - одна область ответственности - "пин" и слово инкапсулирующее все пины в "порт". Чо що то нужно ? Зачем огород городить ? Не понимаю я в итоге этого ООП. Как в студенческие годы не понял так и до сих пор. В чем там фишка ?
[quote="Ethereal"][i]- по объекту класса на каждый пин; - объект, инкапсулирующий все пины для их инициализации одним методом;[/i][/quote]Подумал, а как бы я это "инкапсулировал" на Форте. Вышло так : [code]HEX
: PIN ( bit addr -- ) CREATE , 1 SWAP LSHIFT , DOES> 2@ ; : PIN@ ( mask addr -- flag ) C@ AND 0<> ; : PIN! ( flag mask addr -- ) 2DUP C@ SWAP INVERT AND 2SWAP AND OR SWAP C! ;
18 CONSTANT PORTB 0 PORTB PIN PORTB.0 1 PORTB PIN PORTB.1 2 PORTB PIN PORTB.2 3 PORTB PIN PORTB.3 4 PORTB PIN PORTB.4 5 PORTB PIN PORTB.5 6 PORTB PIN PORTB.6 7 PORTB PIN PORTB.7
\ \\\\\\\\\\\\\\\\\\\\\\\\\\
8F PORTB C! \ Initialization by one method ... TRUE PORTB.5 PIN! \ _- FALSE PORTB.5 PIN! \ -_ PORTB.3 PIN@ IF ... ELSE ... THEN[/code]Там после той статьи такой диалог в обсуждениях : [i]- Но нужно предохраняться, чтобы не подхватить ООП головного мозга. ... Возможно, вы слишком сильно разбиваете задачу на объекты. Зачем на каждый пин по объекту? - Тогда нарушается принцип «один объект — одна область ответственности».[/i] Ну вот выше я сделал одно слово - одна область ответственности - "пин" и слово инкапсулирующее все пины в "порт". Чо що то нужно ? Зачем огород городить ? Не понимаю я в итоге этого ООП. Как в студенческие годы не понял так и до сих пор. В чем там фишка ?
|
|
|
|
Добавлено: Ср июл 24, 2019 16:52 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
Я кстати видел где-то в инете пример ООП на асме.
Я кстати видел где-то в инете пример ООП на асме.
|
|
|
|
Добавлено: Ср июл 24, 2019 15:10 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
Недавно наткнулся на статью. ООП на чистом С (не С++): https://www.cs.rit.edu/~ats/books/ooc.pdfНемножко не по теме, но может кому-то будет интересно. Ждем статью ООП на ассемблере
Недавно наткнулся на статью. ООП на чистом С (не С++): [url]https://www.cs.rit.edu/~ats/books/ooc.pdf[/url] Немножко не по теме, но может кому-то будет интересно. Ждем статью ООП на ассемблере :))
|
|
|
|
Добавлено: Ср июл 24, 2019 13:29 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
Ethereal писал(а): Да уж. Мне малознаком C++ , но увидел в статье упоминание про какие-то constexpr и почитал что это такое https://habr.com/ru/post/228181/ Да это-же попытка закосить под Форт и прикрутить к C++ какую-никакую интерпретацию на этапе компиляции. Правда constexpr Новый препроцессор! Теперь банановый
[quote="Ethereal"]Да уж. Мне малознаком C++ , но увидел в статье упоминание про какие-то constexpr и почитал что это такое https://habr.com/ru/post/228181/ Да это-же попытка закосить под Форт и прикрутить к C++ какую-никакую интерпретацию на этапе компиляции. Правда [/quote] constexpr Новый препроцессор! Теперь банановый :))
|
|
|
|
Добавлено: Ср июл 24, 2019 13:25 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
Да уж. - по объекту класса на каждый пин; - объект, инкапсулирующий все пины для их инициализации одним методом; - объект контроля RCC, который инкапсулирует все объекты, которые находятся на аппаратных шинах; - проект конвертера CAN<->RS485 по протоколу заказчика содержит под 60 объектов;Это пипец какой-то. Метод родил дикое усложнение только ради того чтобы уложить реальность в прокрустово ложе парадигмы. Мне малознаком C++ , но увидел в статье упоминание про какие-то constexpr и почитал что это такое https://habr.com/ru/post/228181/ Да это-же попытка закосить под Форт и прикрутить к C++ какую-никакую интерпретацию на этапе компиляции. Правда Но тут у C++ большие проблемы с синтаксисом: ... Также все это сопровождается непонятными сообщениями об ошибке, которые могут занимать сотни строк. Но на этом проблемы не заканчиваются. используемые шаблоны и constexpr невозможно просчитать до просмотра map, asm и bin файлов конечной прошивки (или запуска отладки в микроконтроллере);Воистину превращение C в C++ - это нездоровая деятельнось по притаскиванию за уши всего удачного, что можно подсмотреть в других языках. Чтобы в итоге получилось C++ the best. Только меня почему-то воротит от всего этого.
Да уж.
[i]- по объекту класса на каждый пин; - объект, инкапсулирующий все пины для их инициализации одним методом; - объект контроля RCC, который инкапсулирует все объекты, которые находятся на аппаратных шинах; - проект конвертера CAN<->RS485 по протоколу заказчика содержит под 60 объектов;[/i]
Это пипец какой-то. Метод родил дикое усложнение только ради того чтобы уложить реальность в прокрустово ложе парадигмы.
Мне малознаком C++ , но увидел в статье упоминание про какие-то constexpr и почитал что это такое https://habr.com/ru/post/228181/ Да это-же попытка закосить под Форт и прикрутить к C++ какую-никакую интерпретацию на этапе компиляции. Правда
[i]Но тут у C++ большие проблемы с синтаксисом: ... Также все это сопровождается непонятными сообщениями об ошибке, которые могут занимать сотни строк. Но на этом проблемы не заканчиваются. [/i]
[i]используемые шаблоны и constexpr невозможно просчитать до просмотра map, asm и bin файлов конечной прошивки (или запуска отладки в микроконтроллере);[/i]
Воистину превращение C в C++ - это нездоровая деятельнось по притаскиванию за уши всего удачного, что можно подсмотреть в других языках. Чтобы в итоге получилось C++ the best. Только меня почему-то воротит от всего этого.
|
|
|
|
Добавлено: Ср июл 24, 2019 13:03 |
|
|
|
|
|
Заголовок сообщения: |
Re: Форт и ООП |
|
|
Сложность уровня абстракций (ради абстракций?) Статья на хабр Пять лет использования C++ под проекты для микроконтроллеров в продакшенеP.S. В рамках Форт решалось бы минимальными трудозатратами. Чем хорош данный форум, что по разным вопросам уже было форумное обсуждение.
Сложность уровня абстракций (ради абстракций?) Статья на хабр [url=https://habr.com/ru/post/461113/]Пять лет использования C++ под проекты для микроконтроллеров в продакшене[/url]
P.S. В рамках Форт решалось бы минимальными трудозатратами. Чем хорош данный форум, что по разным вопросам уже было форумное обсуждение. :)
|
|
|
|
Добавлено: Ср июл 24, 2019 11:20 |
|
|
|
|
|
Заголовок сообщения: |
|
|
|
вопрос писал(а): Олег, это всё-таки несколько разные вещи и я уверен, преимущества ООП будут оценены, не сомневаюсь. Прсто не удаётся совместить некоторые свойства Форта с привычными приёмами ООП
собственно, почти эксклюзивно для вас написана следующая статья языковая среда программирования так же советую почитать статьи, посвященные ЯОП (его пророчат на смену ООП, почему-то не замечая, что Форт уже есть, и давно) там озвучены претензии к ООП технологии, и перечисленны преимущества ЯОП. Почитайте хотя бы ту ссылку, которая дана в конце статьи
[quote="вопрос"]Олег, это всё-таки несколько разные вещи и я уверен, преимущества ООП будут оценены, не сомневаюсь. Прсто не удаётся совместить некоторые свойства Форта с привычными приёмами ООП[/quote]
собственно, почти эксклюзивно для вас написана следующая статья [url=http://fforum.winglion.ru/viewtopic.php?t=2089]языковая среда программирования[/url] так же советую почитать статьи, посвященные ЯОП (его пророчат на смену ООП, почему-то не замечая, что Форт уже есть, и давно) там озвучены претензии к ООП технологии, и перечисленны преимущества ЯОП. Почитайте хотя бы ту ссылку, которая дана в конце статьи ;)
|
|
|
|
Добавлено: Пн апр 27, 2009 22:44 |
|
|
|
|