Раздел domains
Существует 4 способа объявления типов данных (доменов);
1. name =d , где name – имена объектов стандартного типа, d – один из типов (char, symbol, integer, real, string)
2. list = element*, где list – список элементов element, element – элемент, лписанный в разделе domains или один из стандартных типов, * - список.
3. num1=f1 (d11, …, d1M); f2 )d21, …, d2N) Тип num1 включает сложные объекты, которые объявляются путем установления пунктора и описаний всех входящих в него компонент. collection = book (author, title) record (artist, album, type). Один оператор раздела domains описысвает только один уровень дерева. books = book (title, author (name, surname)) – неверно.
4. file = name1; name2; … Используется для обращения к файлам по символическим именам. В разделе domains может быть тоько один оператор этого типа. Симолические имена файлов, если их несколько, задаются в качестве альтернативы.
Раздел predicates
Предикат (отношение) – в общем случае эта стуктура выглядит так:
predname (comp1, …, compN), где predname – имя предиката, comp1, …, compN – имя компонент.
domains
fio=string
den, god = integer
mes = symbol
predicates
anketa (fio, den, mes, god)
Если в предикатах испоьзуется только стандартные типы данных, то раздел domains может отсутствовать.
anketa
(string, integer, symbol, integer)
Предикат может состоять только из одного имени, то есть не иметь компонент. Допускается многократное объявление предиката с одним и тем же именем. Альтернатива необяазтельно должна иметь одинаковое число компонентов.
Раздел clauses
Здесь размещаются предложения (утверждения). Они представляют собой факт ил правило, соответствующее одному из объявленных предикатов. Факт – простейший вид утверждения, который устанавливает отношения между объектами.
anketa ("Иванов”, 8, august, 1958).
Факт содержит содержит атом anketa, который является именем предиката и в () после него список соответствующих термов, соответствующих компонентам этого предиката. Факт всегда заканчиваетяс точкой. Факт содержит условие, которое являетяс верным. Правило сотоит из заголовка и тела, соединенных символом :- (если). Правила заканчиваются точкой. Заголовок являетяс одним из ранее описанных предикатов, в которых в качестве компонентов может быть переменные. Заголовок правила описывает факт, для определения которого предназначено это правило. Тело правила описывает цель, которая должна быть последовательно согласована с фактом для того, чтобы заголовок правила был истинным. Тело содержит список термов, разделенных запятыми или ; ( :- if) (. and) (; or).
Переменная означает один и тот же объект только в пределах одного правила.