Сборник работ зарубежных специалистов, отражающий современное состояние в новом направлении программирования, тесно связанном с математической логикой. Это направление активно развивается как в теоретическом, так и в практическом плане, включая в себя новые языки (Пролог, Логлнсп и др.), методы реализации н проекты машинных архитектур, В сборник включен специально написанный обзор литературы по логическому программированию. Среди авторов известные зарубежные специалисты: Б. Домелкн, П. Середи (ВНР), А. Колмероэ (Франция), Дж. Робинсон (США), Р. Ковальский (Великобритания).
Поэтому нужно отметить, что в данной версии . Его нельзя использовать динамически, подставляя вместо переменной. Этот механизм используется главным образом для обработки ошибок, например. ; блок выполняет нормально рр. Если во время выполнения рр. В противном случае управление передается на высший блок и т. Если этот процесс не останавливается, то выдается ошибка НЕПРАВИЛЬНОЕ ОКОНЧАНИЕ КОНЦА. команда строка вывц. Здесь правило команда исполняет одну команду редактора. Правило проверить проверяет окончание этой команды, причем возможны четыре случая. Нормальный выход из блока, команда выполнилась без ошибки. Произошла ошибка в процессе выполнения команды либо во встроенном правиле, либо в системе. В этом случае Пролог выдает конецблока. Чтобы завершить команду редактора заменить, порождается конец. Этот последний случай соответствует правилу конец. Обработка высказываний Обработка высказываний производится, вообще говоря, редактором дизъюнктов, однако встроенные правила, которые в этом участвуют, могут употребляться и независимо. Напомним, что существует текущий указатель высказываний . Вся работа происходит в текущем мире. Более полное описание этих команд . Если произошла ошибка, происходит считывание до символа . Выполнение вставить заканчивается нормально, когда считывается пустое высказывание, т. Это правило ие меняет положения указателя. Он устанавливается на первое следующее за удаленным высказывание. Введение В системе есть . буфер ввода и вывода. входной файл на диске. выходной файл на диске. В каждый момент имеется одно активное устройство ввода и одно активное устройство вывода. Весь обмен происходит с помощью этих двух активных устройств. вам Канегем Считывание происходит построчно. При обмене буфер — другое устройство положение указателя символа сохраняется. В случае обмена диск — консоль сохраняется лишь положение указателя строки. все, что остается на строке, теряется. Устройство представляет собой одно из устройств ввода. обозначение имени файла во включающей системе. Несколько замечаний относительно БУФЕРА Устройство буфер соответствует набору файлов виртуальной памяти. Поскольку в каждый момент буфер можно использовать одновременно для ввода и для вывода, необходимо внимательно следить за порядком следования запросов иа ввод. Каждый раз при переходе от ввода к выводу требуется сменить строку . Некоторые встроенные правила, например вывод, производят возврат на строку. Несмотря на все эти объяснения, использование буфера остается делом весьма деликатным, и поэтому желательно дополнительное ознакомление с супервизором ввода. Буфер используется в следующих командах. Ниже приводится программа, использующая буфер для конкатенации двух цепочек. Встроенные правила для ввода . Нижеследующие встроенные правила считывают с активного устройства ввода. В реализации положение указателя символа меняется после исполнения сим. Синтаксис терма устроен так, что появление одного символа, не принадлежавшего терму, вызывает прекращение считывания. Если читаемый объект не обладает синтаксисом числа, то считывания не происходит. В противном случае последний считанный символ — это последний символ целого числа. каждая последовательность букв, преобразуется в идентификатор сл. Каждое целое число, т. последовательность цифр, преобразуется в соответствующее число. Всякий другой символ заменяется на соответствующую цепочку. По умолчанию конец строки является пробелом. В редакторе дизъюнктов конец строки есть символ П. Обычный вывод Вывод происходит на активное выводное устройство. Это правило выполняется автоматически при выходе из редактора или из Пролога. При этом атомы не разбиваются — если атом не помещается в строку, он обрезается. Если терм ие помещается в строку, то выдается конец строки и происходит переход иа следующую строку с отступом в три пробела. Учитывая эти ограничения, всякий терм, выданный посредством правила выв, может быть прочитан правилом вв. Правило выв позволяет выводить и бесконечные деревья. Правило выв не оптимизирует дерево, т. не ищет минимальное представление дерева. Ниже приводится несколько примеров исполнения этого правила. При этом, как и в предыдущих случаях, сохраняется требование. По умолчанию длина строки равна . Речь идет о своего рода табуляции. Текущий указатель символа нельзя двигать назад. Вывод иа принтер Принтер рассматривается как устройство, которое копирует все, что появляется иа экране при вводе или выводе. Можно также копировать содержимое экрана в файл. Для этого достаточно определить этот файл как . Проверки Речь идет о выяснении типа атома. Арифметика Вся арифметика делается посредством встроенного правила знач, которое вычисляет значение арифметического выражения. Целые числа расположены в интервале от . На данный момент в нашей реализации имеются только положительные числа, но в скором времени появятся действительные и отрицательные числа. Вычисляемый терм составлен из вычисляемых функций, которые применяются только к известным термам. Значение целого или цепочки совпадает с ними самими. В случае идентификатора дело обстоит сложнее. Если вычисляемая функция имеет неправильное число аргументов или какой. Разумеется, это — восстанавливаемая ошибка. Идентификатор может обозначать. В этом случае значением является сам идентификатор. Вычисляемую функцию, задаваемую внутренним примитивом супервизора. В этом случае значение определяется вычисляемым предикатом присвоить. К настоящему времени имеются следующие вычисляемые функции. Аргументами функции меньше могут быть и другие атомы. Для целых чисел меньше означает отношение меньше на числах. Для цепочек — это отношение лексикографического порядка, для идентификаторов — отношение лексикографического порядка на соответствующих цепочках. Для булевых функций мы приняли то же соглашение, что и в Бейсике. Это позволяет легко выполнять и и или иа булевых выражениях. При этом должны выполняться следующие требования.