Интересное слово k

0 views
Skip to first unread message

Sergey Karakovskiy

unread,
Mar 24, 2008, 7:17:30 PM3/24/08
to Forth On TOP @ AMCP
Hello Forth,

Что означает сабж?

хотел поюзать в качестве счётчика для цикла своего, но получил
warning: is redefined. Стало интересно, что это:

see k
K IS CODE
( $4011F0 53 ) push ebx
( $4011F1 8B5D18 ) mov ebx, $18 ( $400000+$FFC00014 ) [ebp]
( $4011F4 035D1C ) add ebx, $1C ( $400000+$FFC00018 ) [ebp]

ok

По значению оставляемому на стеке можно предположить, что это адрес.
Чего-то.
Магического. Так как каждый раз разное и имеет малое отношение к
программе/статье.
Попробуйте, например, в Win32Forth поисполнять
k ok.
count type ction (а дальше не копируемый трэш, внутри которого можно
встретить Couldn't find the replacable word in function..)
k ok.
k ok..
k ok...
k k k k k k k k k ok........
count type б@!Couldn't find end of the function
count type Couldn't find end of the function ok.......

ну и т.д.

--
Best regards,
Sergey mailto:sergey.ka...@gmail.com

rgsof...@gmail.com

unread,
Mar 27, 2008, 1:48:26 PM3/27/08
to Forth On TOP @ AMCP
I ( - n) или ( -- u)
Заносит в стек индекс цикла do-loop. Может использоваться
только
непосредственно, а не в словах, к которым происходит обращение в
цикле
do-loop. См. также I'; J; К.

J ( -- n)
Используется во вложенных циклах do-loop в форме
DO ... DO ... J ... LOOP ... +LOOP ;
Засылает в стек значение индекса очередного внешнего цикла, в
данном
примере цикла, завершающегося оператором +LOOP. Подобно I, J
может
использоваться только непосредственно, а не внутри другого
слова, к
которому происходит обращение внутри цикла.

К ( -- n)
Используется во вложенных циклах do-loop в форме
DO...DO...DO...K...+LOOP...+LOOP...LOOP
Засылает в стек значение индекса цикла второго по отношению к тому,
где
применено К, в данном случае цикла, завершаемого оператором LOOP.

---
М. КЕЛЛИ Н.СПАЙС ЯЗЫК ПРОГРАММИРОВАНИЯ Ф0РТ
Перевод с английского Е. В. Куркова, Ю. А. Семенова
Москва "РАДИО И СВЯЗЬ" 1993

(хорошая книжка)

Sergey Karakovskiy

unread,
Mar 27, 2008, 3:53:56 PM3/27/08
to Forth...@googlegroups.com
Hello rgsoftware,

О, спасибо =)
Понятно. Стоит отметить, что слов после K нет.
А что делать, если я хочу 4 уровня вложенности цикла?

PS
Книжка есть здесь:
http://forth.rhub.firstvds.ru/books.php

(там, кстати, много других интересных книжек имеется)

--
Best regards,
Sergey mailto:sergey.ka...@gmail.com

rgsof...@gmail.com

unread,
Mar 27, 2008, 5:49:35 PM3/27/08
to Forth On TOP @ AMCP
> Понятно. Стоит отметить, что слов после K нет.
> А что делать, если я хочу 4 уровня вложенности цикла?
Песни петь :)

Вероятно, авторы Форта (справедливо) полагают, что четыре уровня --
это уже изврат.
Кроме того, вероятно, не так сложно написать собственное слово (L,
M, ...?) по образу и подобию...

Michael Gasanenko

unread,
Apr 2, 2008, 8:54:22 AM4/2/08
to Forth On TOP @ AMCP
Слово K -- нестандартное. Когда новички реализуют Форт, его реализуют,
а потом не используют. Профессионалы его даже не реализуют.

Sergey Karakovskiy

unread,
Apr 2, 2008, 1:50:39 PM4/2/08
to Forth...@googlegroups.com
Авторы Win32Forth -- новички? :)

02.04.08, Michael Gasanenko <ml...@yandex.ru> написал(а):

Michael Gasanenko

unread,
Apr 4, 2008, 11:05:13 AM4/4/08
to Forth On TOP @ AMCP
On 2 апр, 21:50, "Sergey Karakovskiy" <sergey.karakovs...@gmail.com>
wrote:
> Авторы Win32Forth -- новички? :)
>

Любители.
Reply all
Reply to author
Forward
0 new messages