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/ |