Cтраница 2
К данным командам относятся команды формирования меток, входа и выхода из процедуры. Перечень команд приведен в табл. 3.23. Команды ФМ, ФМБ и УФМ формируют процедурную метку с уровнем, указанным в команде, но с сохранением текущей базы. Команды ФМП, ФМБП и УФМП формируют метку перехода: адрес берется из базового регистра уровня, указанного в команде либо в стеке. [16]
Вызов FBD-программ осуществляется из процедур канала трансляция и управление. При настройке вызова FBD-программы используются соответствующие бланки диалога Реквизиты. В них задается имя программы, настраивается связь ее аргументов с атрибутами каналов текущей базы и задаются значения констант, передаваемых в программу. [17]
Образцы 1 и 2 представляют собой запросы на наличие в базе соответствующих слотов-фреймов. Поскольку [ F: S ] в базе нет, a [ F1: S2 ] - есть, значения образцов 1 и 2 соответственно false и true. Такой фрейм в определенной нами базе имеется ( вспомним, что фрейм-экземпляр наследует слоты своего прототипа), поэтому значение образца - true. Префикс этой переменной предписывает заносить в нее значения слева с сохранением. Ключевое слово one of в образце 6, явно указывающее на поиск только первого подходящего фрейма, - не обязательно, такая стратегия подразумевается по умолчанию. Условие соблюдается, и значение образца - true. Образец 7 показывает, что можно проверять значения нескольких слотов сразу. Семантика его следующая: найти первый фрейм со слотами S1 8 и S2; если такой фрейм будет найден, записать его имя в переменную V1 справа, протолкнув верхушку стека справа, а значение слота S2 - в переменную V2 слева, без сохранения значения в верхушке стека. С помощью образца 8 проверяется, есть ли вообще в текущей базе какие-нибудь фреймы. [18]