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




Слова для манипуляций в стеке - часть 2


/p>

Если вы пока еще не усвоили эти обозначения, не огорчайтесь: они станут вам понятнее в последующих главах и мы привели их для использования в последующих ссылках. Обычно ход программы становится более понятным, если вы применяете более содержательные описатели в диаграммах состояния стека. Например, скорость можно обозначить как "скор.", а адрес переменной, содержащей значение скорости, -- как "адр.скор." и т.д. Другой более полный набор символов приведен в стандарте Форт-83, но лучше всего все-таки использовать содержательные обозначения.

А теперь вернемся к рассмотрению каждого из слов для манипуляций в стеке. DROP -- это самое простое слово; оно просто очищает вершину стека, например, после ввода

1 2 3 DROP .S

мы получим

1 2 Ok

Помимо того, что слово DROP полезно для уничтожения неправильно введенных данных при вычислениях (что-то вроде клавиши очистки регистра в калькуляторе), оно чаще всего используется для того, чтобы убрать какие-либо числа из стека во время выполнения программы. Очевидно, при пустом стеке мы получим

хххх DROP ? Stack EMPTY ! (стек пуст!)

или аналогичное сообщение об ошибке. Вас может удивлять, почему Форт не знает о том, что стек пуст, и почему он не игнорирует слово DROP в этом случае. Дело в том, что проверка на наличие ошибок и принятие решения, игнорировать их или не игнорировать, занимает немало времени. В отличие от большинства других языков программирования Форт состоит из полуавтономных процедур -- (слов языка Форт), каждое из которых оптимизировано с точки зрения быстродействия. Если бы в каждое из них было включено принятие решений об ошибках, исполнение слов происходило бы с более низкой скоростью. В Форте принято, что программист, а не язык несет ответственность за предотвращение ошибок. Форт дает вам полный контроль над компьютером, но в то же время и всю полноту ответственности. С другой стороны, разрабатывая программу, вы будете отлаживать каждое ее слово, легко обнаруживая ошибки. И поэтому Форт не нуждается в сложных и требующих больших затрат времени методах контроля ошибок, необходимых другим языкам.




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