Forth http://fforum.winglion.ru/ |
|
Сохранение и загрузка скомпилированного словаря http://fforum.winglion.ru/viewtopic.php?f=24&t=2206 |
Страница 1 из 1 |
Автор: | MrYuran [ Чт июл 16, 2009 21:15 ] |
Заголовок сообщения: | Сохранение и загрузка скомпилированного словаря |
Возник вопрос в процессе вялого колупания в gforth. Вот наколупал я , допустим, десяток-другой слов, поигрался, проверил и решил сохранить. А как? Исходников-то нету. Как можно сохранить уже скомпилированный словарь, а потом загрузить его обратно? Предположим, что колупал я в свой локальный словарь My_Voc. Ещё вопрос. Код: 41 constant star-symbol ok
: star star-symbol emit ; redefined star ok star ) ok 42 constant star-symbol redefined star-symbol ok star ) ok : star star-symbol emit ; redefined star ok star * ok Как видим, переопределение константы star-symbol никак не повлияло на уже скомпилированное слово star. Как написать так, чтобы переопределение константы отражалось на словах, которые её используют без повторной перекомпиляции? |
Автор: | VoidVolker [ Чт июл 16, 2009 22:28 ] |
Заголовок сообщения: | |
MrYuran писал(а): Как видим, переопределение константы star-symbol никак не повлияло на уже скомпилированное слово star. Есстественно, ведь адрес уже скопилирован. MrYuran писал(а): Как написать так, чтобы переопределение константы отражалось на словах, которые её используют без повторной перекомпиляции?
Словарь просматривается с конца. Используй вектора. |
Автор: | mOleg [ Пт июл 17, 2009 07:02 ] |
Заголовок сообщения: | |
обычно, сохранение наработанной системы производится с помощью слова SAVE можно ли отдельно сохранять словари или куски кода в gforth я не знаю (я знаю только одну такую систему, позволявшую так поступать SMAL32 ) если вам надо какой-то кусок кода переопределять, используйте векторизированные слова: VECT sample : first ." first sample" ; ' first TO sample sample : second ." second sample" ; ' second TO sample sample Еще, посмотрите на DOER MAKE механизм (описан в Thinking forth у Броуди), а так же scattered colon words от Гасаненко |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |