Язык Форт и его реализации



         

Встроенный ассемблер


Встроенный ассемблер позволяет программисту задавать реализацию слов непосредственно в машинном коде данной ЭВМ. Это дает ему возможность, с одной стороны, повышать быстродействие программы до максимально возможного уровня за счет перевода интенсивно используемых слов непосредственно в машинный код, а с другой — использовать особенности архитектуры данной ЭВМ и «напрямик» связываться с операционной системой и внешним окружением.

Примеры обоих случаев дает сама форт-система. Очевидно, что слова, выполняющие арифметические операции или действия с вершиной стека, естественно реализовывать непосредственно в машинном коде, поскольку скорость их исполнения в значительной степени определяет быстродействие системы. Вместе с тем слово 1+, увеличивающее на единицу значение на вершине стека, можно определить как в машинном коде (особенно если в данной ЭВМ есть специальная команда увеличения значения на единицу), так и через двоеточие:

: 1+ ( A ---> A+1 ) 1 + ;

В последнем случае, если к тому же слово 1 реализовано в виде отдельной словарной статьи 1 CONSTANT 1, шитый код займет всего три ячейки, что может быть короче аналогичной программы в машинном коде. Разумеется, при этом исполнение будет дольше за счет интерпретации последовательности из трех ссылок вместо прямого исполнения соответствующих машинных команд. Также очевидно, что, например, форт-слова для обмена с терминалом естественно задать на машинном уровне через обращения к соответствующим функциям операционной системы или непосредственно к аппаратуре.

Для определения слов непосредственно в машинном коде стандарт языка Форт предусматривает следующие слова:

ASSEMBLER ---> CODE ---> END-CODE ---> ;CODE ---> (компиляция)

составляющие стандартное ассемблерное расширение обязательного набора слов.

Слово ASSEMBLER (ассемблер) является именем списка слов, содержащего слова, с помощью которых строится машинный код (мнемоники машинных команд, обозначения регистров, способы адресации и т.д.).




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