Forth http://fforum.winglion.ru/ |
|
Как называется такой приём? http://fforum.winglion.ru/viewtopic.php?f=2&t=3195 |
Страница 1 из 1 |
Автор: | Victor__v [ Пн сен 10, 2018 19:25 ] |
Заголовок сообщения: | Как называется такой приём? |
Как рассказать не знаю, покажу кодом Код: \ для удобства можно вообще без него обойтись : DOES: HERE LAST-LFA L>CFA @ >param ! \ присвоить указатель месту DOES> в CREATE-слове -1 STATE ! ; \ подменить изначальные данные, которые использует DOES. : USING \ ?? addr xt -- ?? >param @ \ перейти к месту DOES> >R \ можно и EXECUTE, но так меньше трасса на стеке возвратов. м. б. и критично через EXECUTE ; \ пример CREATE CELL+ 4 , DOES: @ + ; VARIABLE TST 2 TST ! 10 CELL+ . 10 TST ' CELL+ USING . 10 STATE ' CELL+ USING . Так вот, товарищи знатоки, как такой приём подмены массива данных для кода после DOES> называется? Где можно применять? Связку CREATE .... DOES: можно применять, к примеру, для опр. слов должных работать как в штатном так и в доп. режимах Как вариант, пригодится для задания портов по умолчанию и функций обработки для всяких-там работ с сетью и БД. Надо быстренько заменить? Не вопрос, формируем свой массив и подсовываем за DOES> |
Автор: | KPG [ Пн сен 10, 2018 23:38 ] |
Заголовок сообщения: | Re: Как называется такой приём? |
Victor__v писал(а): Так вот, товарищи знатоки, как такой приём подмены массива данных для кода после DOES> называется? Где можно применять? Техника векторизованного DOER|MAKE из Броуди2 Не? |
Автор: | Victor__v [ Вт сен 11, 2018 00:02 ] |
Заголовок сообщения: | Re: Как называется такой приём? |
KPG писал(а): Тама обычный вектор, а ту-то векторами и не пахнет. |
Автор: | Ethereal [ Пт сен 21, 2018 12:55 ] |
Заголовок сообщения: | Re: Как называется такой приём? |
Victor__v писал(а): Так вот, товарищи знатоки, как такой приём подмены массива данных для кода после DOES> называется? Да никак.Твой прием можно обобщить от залетания управлением в точку сразу после DOES> , до залетания управлением в любую точку в середине шитого кода в определении любого другого слова и выполнение хвоста этого определения вплоть до ; Вопрос всегда ли такое будет работать, на любом-ли шитом коде ? Вон, я проверил на своем дурном Фиг-32 с косвенным шитым кодом : Код: Win-32 FIG-Forth Alpha (C)Ethereal Ну залетание в середину шитого кода слова и довыполнение хвоста определения работает. Ну можно использовать в момент воспаления фантазии. Просто одна из возможностей, которую можно наверно превратить в самодостаточную смыслом идею, но ты-же сам спрашиваешь0 VARIABLE POINT Ok : ZZZ ." BLABLA" [ HERE POINT ! ] ." BLIBLI" ; Ok : TEST POINT @ >R ; Ok TEST BLIBLI Ok BYE Victor__v писал(а): Где можно применять? так-что сам еще до самодостаточности свою мысль недовел.
|
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |