Работа с числами и константами

Числа. Создание и использование констант.

Числа


Используется 3 типа чисел: int long double (соответствует Java типам).

Пример: 123 - в стек помещается число 123 (int)

Пример: 123L (или 123l) - в стек помещается число 123 (long)

Пример: 123.0 - в стек помещается число 123.0 (double)

При выполнении операций с разными типами чисел, числа преобразуются: 5 123.0 + - в стек помещается число 128.0 (double)

Приведение к числовым типам


toi - преобразует объект на вершине стека (если это возможно) к int

ton - преобразует объект на вершине стека (если это возможно) к long

tod - преобразует объект на вершине стека (если это возможно) к double

Создание константы


Стек: ( q - )

Входной поток(код): const: имя_константы

Действие: слово const: читает из входного потока имя_константы, создает константу с таким именем и присваивает ей значение q (любой объект на вершине стека).
Далее значение константы изменить нельзя.

Стиль: лучше название константы давать, начиная с прописной буквы.

Пример: 12 const: Num

Другой вариант создания константы


Стек: ( q, s - )

Входной поток(код): const

Действие: слово const создает константу с именем s из стека и присваивает ей значение q (объект из стека).

Пример: 12 "Num" const

Использование констант


Стек: ( - q )

Входной поток(код): имя_константы

Интерпретатор: встречая во входном потоке имя_константы

в режиме интерпретации - выкладывает в стек её значение

в режиме компиляции - добавляет к определяемому слову ссылку на wrap-объект ConstantWrap, который при исполнении слова выкладывает на вершину стека значение константы.

Пример интерпретации: Num стек: ( - 12 ), здесь Num определено, как в примерах выше.

Пример компиляции: : addNum Num + ;

При выполнении слова addNum к объекту на вершине стека будет прибавлено значение 12.