Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт мар 29, 2024 16:40

...
Google Search
Forth-FAQ Spy Grafic

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




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

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

Обзор темы - Как называется такой приём?
Автор Сообщение
  Заголовок сообщения:  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 писал(а):
Где можно применять?
так-что сам еще до самодостаточности свою мысль недовел.
Сообщение Добавлено: Пт сен 21, 2018 12:55
  Заголовок сообщения:  Re: Как называется такой приём?  Ответить с цитатой
KPG писал(а):

Тама обычный вектор, а ту-то векторами и не пахнет.
Сообщение Добавлено: Вт сен 11, 2018 00:02
  Заголовок сообщения:  Re: Как называется такой приём?  Ответить с цитатой
Victor__v писал(а):
Так вот, товарищи знатоки, как такой приём подмены массива данных для кода после DOES> называется?
Где можно применять?

Техника векторизованного DOER|MAKE из Броуди2 Не? :)
Сообщение Добавлено: Пн сен 10, 2018 23:38
  Заголовок сообщения:  Как называется такой приём?  Ответить с цитатой
Как рассказать не знаю, покажу кодом

Код:
\ для удобства можно вообще без него обойтись
: 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>
Сообщение Добавлено: Пн сен 10, 2018 19:25

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


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