Язык программирования Форт



         

Глава 6. Хранение чисел в памяти - часть 11


Смысл назначения константы- определять величину, которая остается неизменной в программе, теряется, если константа изменяется. Вы должны иметь возможность узнать значение константы из ее определения, не прибегая к поиску того места, где она, изменилась. Это абсолютно обязательно, если Форт-программа должна быть записана в ПЗУ. Поэтому в большинстве случаев константа не должна изменяться. Но иногда бывают случаи, когда необходимо изменить константу. Один из них возникает при отладке программы, другой случай, когда константа по-разному используется в основной части программы и в другой. Наиболее важный случай, когда константа может быть изменена, если таким путем достигается сокращение времени. Для помещения константы в стек требуется несколько меньше времени, чем для извлечения значения переменной, и это нужно иметь в виду, если время исполнения программы для вас становится критичным. Поэтому вам следует знать, как изменить значение константы. В стандарте Форт-79 и большинстве версий, не придерживающихся стандарта Форт-83, обязательным является слово ' (произносится "тик"), которое кладет в стек адрес содержимого слова. Так, * FT/MILE выдает, адрес ячейки памяти, где хранится число под именем FT/MILE, будь оно константой или переменной. Поэтому для изменения значения константы единственное, что нужно сделать,- это поменять содержимое ячейки по этому адресу, например нужно ввести 6076 ' FT/MILE ! чтобы изменить сухопутные мили на морские. Теперь, если ввести FT/MILE, в стек будет заслано число 6076. (Заметьте, что точно такая же процедура (с излишними издержками) может применяться для изменения значения переменной.

В стандарте Форт-83 процедура сложнее, так как слово ' возвращает не адрес содержимого указанного слова, а другой адрес, связанный с этим словом, что может привести к путанице (вскоре вы поймете, что этот адрес полезен, но не для изменения константы). Однако если адрес, извлекаемый словом ', в стандарте Форт-83 известен, то слово >BODY даст нужный нам адрес, т.е.


Содержание  Назад  Вперед