Префиксы чисел

Материал из ПМК вики
Перейти к: навигация, поиск
Пример префиксов Каллисто

Для ввода чисел в Каллисто можно использовать префиксы Форта-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

Это поможет сэкономить место в шитом коде и ускорит компиляцию.