Префиксы чисел
Для ввода чисел в Каллисто можно использовать префиксы Форта-2012, а именно $ для шестнадцатеричных чисел, # для десятичных и % для двоичных.
При вводе чисел в стек можно использовать все 12 разрядов мантиссы, дробную запятую ",", знак "-" и английскую букву "E" для указания порядка числа. Обычно число после E задаёт десятичный порядок, но в общем случае используется значение переменной BASE или использованного префикса числа. (Увы, это не верно для шестнадцатеричных чисел, т.к. в ней буква E не может обозначать порядок и является обычной цифрой.)
Также числом считается символ в апострофах, отличный от пробела. Ниже приведены примеры литералов (числовых констант) Каллисто:
3,14 -99 1E-1 $1A $10,5 #1917 %1101 %10,1 %1e101 '&'
Если целое число больше 32767 или меньше -32768, оно вызовет переполнение без сообщений об ошибке. Чтобы правильно записать такое число в исходном тексте Каллисто, добавьте в его конец запятую — диапазон десятичных чисел намного больше и ваше число будет скомпилировано правильно. Примеры:
65535, -40123, 999999,
Почему ' ' не является корректным числом? Числа считываются из входного потока обычным словом WORD, которое воспринимает пробел в качестве разделителя. ' ' будет воспринято Каллисто, как два слова '
Для ввода пробела существует стандартное слово BL — взятое из Форта и совместимое с ним.
Это интересно
Перед тем, как интерпретировать входное слово, как число, Каллисто ищет его в словаре. Это позволяет существовать и распознаваться таким каллистянским словами, как ' и 'N.
Обычно численная константа занимает в шитом коде две ячейки (четыре байта). В случае целых чисел в них записаны токен (LITERAL) и значение константы, в случае десятичных — токен (ИП) и номер десятичного регистра, куда слово FLITERAL занесло константу.
Наиболее употребимые числа реализованы отдельными словами. Например, в Каллисто встроен примитив 2 — он компактней и работает быстрее, чем другие числовые литералы. Вместо чисел 0 и -1 можно использовать примитивы FALSE и TRUE.
Если в вашем приложении часто встречается, например, число 1023 — определите его, как константу:
1023 CONSTANT 1023
Это поможет сэкономить место в шитом коде и ускорит компиляцию.