Forth
http://fforum.winglion.ru/

ШК в нативе
http://fforum.winglion.ru/viewtopic.php?f=2&t=3156
Страница 1 из 1

Автор:  Victor__v [ Сб янв 27, 2018 14:45 ]
Заголовок сообщения:  ШК в нативе

ШК может быть нативным, если он расположен в стеке возвратов.
Банально.
Чуть интересней его использование.
Можно создавать продвинутые действия по восстановлению контекста.
К примеру, в начале файла создаётся врем. словарь для всяких полезных слов, коие не будут нужны последствии.
Это вынуждает писать в конце файла код для освобождения памяти под словарь.
Используя ШК на стеке возвратов мы можем при завершении трансляции освободить память, а сам код поместить в начало файла, где создаётся временный словарь.

При компиляции слова тоже появляются интересные возможности.
Т.к. указатели на код помещаются в стек, то мы можем спокойно модифицировать полученный ШК для каких-либо действий.

P.S.
Первому нашлось применение.
Второе маловероятно.

Автор:  _KROL [ Сб янв 27, 2018 22:50 ]
Заголовок сообщения:  Re: ШК в нативе

Victor__v писал(а):
При компиляции слова тоже появляются интересные возможности.
Т.к. указатели на код помещаются в стек, то мы можем спокойно модифицировать полученный ШК для каких-либо действий.

P.S.
Первому нашлось применение.
Второе маловероятно.
Я бы сказал, что второе тоже может пригодится! Когда я писал слово для вызова прерывания, то у меня была проблема с оптимальной загрузкой/сохранением регистров. Кроме этого, кое-какой код я даже пытался исполнить из стека. Может быть на Форте в стеке возвратов решение получится лучше? Не знаю, но если получится, то выложу.

Автор:  Victor__v [ Вс янв 28, 2018 17:27 ]
Заголовок сообщения:  Re: ШК в нативе

_KROL писал(а):
Я бы сказал, что второе тоже может пригодится! Когда я писал слово для вызова прерывания, то у меня была проблема с оптимальной загрузкой/сохранением регистров. Кроме этого, кое-какой код я даже пытался исполнить из стека. Может быть на Форте в стеке возвратов решение получится лучше? Не знаю, но если получится, то выложу.


Скажем так, попробуй найти решение попроще, чем самодификация экземпляра кода на стеке возвратов. Всё-таки это достаточно специфичное решение.

Страница 1 из 1 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/