Операции интерфейса и управления.

Операции ввода/вывода

1. Вывод сообщений на экран.

<выв. Сообщ.> ::= _write(<сообщ.>)

2. Ввод с клавиатуры

<ввод с КВ>::=_read(<П. перем.>)

3. <откр. файла>::=_open(<И.Ф.>,<режим>)

4. <закр. файла>::=_close(<И.Ф.>)

5. <чтение из файла>::=_get(<И.Ф.>,<П. перем.>)

Читает строку в П. перем. Конец строки превращается в \n→\0

6. <запись в файл>::=_put(<И.Ф.>,<строка>)

7. <загр. БФ>::=_load_facts(<И.Ф.>,<образец факта>)

8. <сохр. БФ>::=_save_facts(<И.Ф.>,<образец факта>)

Операции управления

1.Запуск секции продукции

<опер. вызова секции>::=<имя секции>()

Операция вызова и сама секция могут быть в разных файлах; связывание осуществляет линкер (компановщик).

2. Запуск продукции

 <запуск продукции>::=<имя продукции>()

Предназначено для безусловного выполнения правой части продукции

3. Запуск программ или п/программ на СИ

<Запуск п/программ >::=<имя программы> <параметры>

4. <заверш. П. прогр.>::=_quit(<код возврата>)

5. <возврат из продукции>::=_return(<имя продукции>)

 По умолчанию выполнение секции заполняется когда конфликтное множество пусто. Управление возвращается в точку вызова. Если аргумент присутствует возврат производится на несколько шагов назад, если в цепочке вызова такой продукции не было. Это обеспечит возможность возврата на несколько шагов назад.

6. <опер. продолжения выполнения секции>::=_continue ([<  …..  >])

Данный  оператор возвращает управление не в правую часть вызываемой продукции, а в секцию в которой она находится. Когда при выполнении очередной продукции встречается оператор “продолжение секции”, выполнение данной продукции прекращается, выполнение правой части вызываемой продукции также  прекращается  и начинается по новой выполнение секции из которой была вызвана продукция с оператором продолжение выполнение секции. По умолчанию происходит возврат на один шаг назад.

7. <опер. повтора>::=_repeat()

Встретившись в правой части продукции заставляет в цикле повторятся все вышерасположенные операторы. Чтобы цикл был не бесконечный, какой-то из вышерасположенных операторов должен иметь процедуру выхода.

Hosted by uCoz