Forth
http://www.fforum.winglion.ru/

а плевал я на разбалансировку стеков!
http://www.fforum.winglion.ru/viewtopic.php?f=25&t=2168
Страница 1 из 1

Автор:  mOleg [ Вс июн 28, 2009 20:11 ]
Заголовок сообщения:  а плевал я на разбалансировку стеков!

вощем, бывает лень отслеживать что и сколько возвращает параметров, к примеру на выходе из слова (может ничего, а может мусора кучу) и вобщем не стоит напрягаться ловить, к примеру:
Код:
: something ( addr --> )
            BEGIN DUP WHILE  ( --> addr )
                  1st operation WHILE ( --> ??? )
                  2st operation WHILE ( --> ??? )
                <LINK
              REPEAT \ лишние элементы
            THEN     \ на стеке данных можно
            THEN     \ удалять тут
            ;

но можно сделать так:
Код:
: something ( addr --> )
            <: BEGIN DUP WHILE  ( --> addr )
                  1st operation WHILE ( --> ??? )
                  2st operation WHILE ( --> ??? )
                <LINK
               REPEAT THEN THEN
            ;> CATCH DDROP ;

Автор:  Hishnik [ Вс июн 28, 2009 20:16 ]
Заголовок сообщения: 

А еще можно запомнить DEPTH и потом восстановить.

Автор:  mOleg [ Вс июн 28, 2009 20:20 ]
Заголовок сообщения: 

Хищник писал(а):
А еще можно запомнить DEPTH и потом восстановить.

только CATCH это сделает сам (стеков может быть несколько отслеживаемых, например в форке еще и локальный стек есть)

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