Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Краткое описание языка ПрологСодержание книги
Поиск на нашем сайте
Базовые понятия языка Пролог
Основными понятиями в языке Пролог являются факты, правила и вопросы. Из фактов и правил образуются описания данных, процедур и программы на языке Пролог. Вопросы — это основное средство ведения диалога с базами знаний и программами, имеющимися в памяти ЭВМ. Факты в Прологе служат для описания конкретных данных и простейших сведений. Примеры фактов: мама (зина, вова); — Зина — мама Вовы папа (миша, вова); — Миша — папа Вовы
Группы фактов могут образовывать данные. Совокупность данных, размещаемых на дисках, образует базы данных. Общее определение данных в Прологе:
данные:
Правила используются для описания определений, процедур принятия решений и обработки данных. Примеры использования правил для описания определения понятия «родитель»: родитель (х,у) ← папа (х,у); — Родитель — это папа илимама родитель (х,у) ← мама (х,у); Процедуры образуются из некоторых групп правил. Общая форма описания процедур в Прологе:
процедура:
Пример описания рекурсивной процедуры, в которой определяемое понятие задается через самое себя: предок (х,у) ← родитель (х,у); предок (x,z) ← родитель (х,у), предок (y,z);
Программа на Прологе — это совокупность процедур над определенными данными:
программа: Описания баз данных на Прологе образуют совокупность описаний данных:
база данных:
Базы знаний на Прологе описываются наборами фактов и правил определения обобщенных понятий над ними:
база знаний:
Вопросы в языке Пролог служат запросами к базам данных и знаний, а также обращениями к процедурам и программам. Примеры вопросов: ? мама (х,вова) ? предок (х,вова) Описания фактов
Факты в языке Пролог описываются в следующей форме:
факт:
Описание факта начинается с имени. В роли имен могут использоваться любые последовательности букв и цифр, начинающиеся с буквы:
имя:
Буквы могут быть выбраны из русского и латинского алфавитов. После имени в описаниях фактов задается список аргументов, заключаемых в круглые скобки. В конце описания каждого из фактов ставится точка с запятой. В роли аргументов могут быть указаны любые слова, словосочетания и числа. Словосочетание — это любая последовательность слов, соединенных знаком подчеркивания.
Словосочетание:
Слова, как и имена, — это любые последовательности из букв и цифр, начинающиеся с букв:
слово:
Числа в данной реализации Пролога — это только целые числа (отрицательные — со знаком минус):
число:
Примеры записи чисел — 0, 1, +3, —25.
Семантика: каждый факт в Прологе интерпретируется как некоторое истинное утверждение. Опираясь на эти утверждения, интерпретатор Пролога рассматривает различные вопросы как утверждения, которые должны быть доказаны или опровергнуты исходя из имеющихся фактов и правил. Правила записи вопросов Вопросы в Прологе служат для записи простых или сложносоставных запросов к базам знаний или обращений к процедурам и программам. Ответами на запросы к базам данных и знаний могут быть логические значения ДА (истина) или НЕТ (ложь) либо список конкретных данных, отвечающих запросу. Общая форма записи сложносоставных вопросов:
сложный вопрос:
В сложносоставных вопросах составляющие его подвопросы разделяются запятыми. Любой вопрос в Прологе начинается со знака вопроса «?» и заканчивается знаком «точка с запятой». Пример слож-носоставного вопроса: ? папа (х,у), папа (у,вова);
Простые вопросы имеют следующую форму записи:
простой вопрос:
Здесь <имя> — это имя некоторого факта или правила в программе или базе знаний. Количество аргументов в таком простейшем вопросе должно строго совпадать с количеством аргументов (параметров) в описаниях соответствующих фактов и правил.
В роли аргументов в вопросах могут указываться как конкретные значения, так и переменные. Если в вопросе указаны только конкретные значения, то ответом будет логическое значение ДА или НЕТ. Если же в вопросе указываются переменные, то при положительном ответе дополнительным результатом будет вывод конкретных значений переменных, указанных в исходном вопросе.
В роли переменных в Прологе могут указываться латинские и русские буквы, как строчные, так и прописные: а, b, с,..., х, у, z; A, В, С,..., X, Y, Z; а, б, в,..., э, ю, я; А, Б, В,..., Э, Ю, Я.
Кроме того, в качестве имен переменных могут употребляться любые слова и словосочетания, заканчивающиеся знаком апострофа ['].
Примеры имен: дед ', х1 ', оценка4 ' и т. п.
Кроме того, в вопросах и правилах на Прологе аргументы могут иметь неопределенные значения. Для этого вместо конкретных значений или имен переменных в вопросе указывается знак подчеркивания [ _ ].
Пример вопроса с использованием неопределенных значений: ? мама (мать', _);
Ответом на указанный вопрос будет перечень имен всех матерей, сведения о которых имеются в базе знаний. Запись правил и процедур
Правила в Прологе используются для описания определений, запросов к базам данных, а также обращений к другим правилам и процедурам. Примеры записи правил: родитель (х,у) ← мама (х,у); родитель (х,у) ← папа (х,у); бабушка (x,z) ← мама (х,у), родитель (y,z); дедушка (x,z) ← папа (х,у), родитель (y,z);
Общая форма записи правил на Прологе: правило:
Здесь <заголовок> отделяется от <определения> двумя знаками: ← «меньше» и «тире». В конце правила записывается «точка с запятой».
Заголовки правил имеют следующую форму: заголовок:
Здесь <имя> — это любое слово или словосочетание. В роли параметров в заголовках правил могут указываться переменные или конкретные значения либо неопределенные значения с помощью знака подчеркивания [ _ ]. Описание заголовка служит образцом записи обращений к правилам и процедурам. Определения в правилах образуются из обращений к другим правилам и процедурам, а также из запросов к данным и встроенным процедурам Пролога. Общая форма записи определений в правилах:
определение:
Запросы и определения отделяются в описаниях правил запятыми и записываются по тем же правилам, что и заголовки.
Порядок записи обращений и запросов в определениях правил в языке Пролог весьма существен, поскольку он задает порядок их применения и выполнения. Нарушение этого порядка может привести к значительному изменению конечных результатов выполнения правил и процедур.
Результатом выполнения любых процедур и правил в Прологе всегда являются логические значения — ДА либо НЕТ, соответствующие успеху или неуспеху их применения. В этом смысле применение правил в Прологе совпадает с проверкой условий в логике. Соответственно форма записи обращений к правилам и процедурам в Прологе совпадает с формой записи предикатов в математической логике.
Однако в отличие от математической логики, где существенны только логические значения этих предикатов, в Прологе результатом применения правил и процедур может быть конкретизация значений переменных, указанных в обращениях к ним.
Пример такого обращения: ? родитель (х,вова) х = зина
Полученный ответ имеет двойной результат: во-первых, подтверждение истинности наличия «родителей» у «вовы», а во-вторых, конкретизация переменной «х» в обращении к процедуре «родитель» с именем «вова», которая дает значение «х = зина».
Кроме конкретизации значений переменных в запросах и обращениях результатами выполнения процедур и правил в Прологе могут быть различного рода побочные эффекты — вывод на экран линий, точек, картинок, сообщений, запись и считывание данных и т. п.
В этом смысле результаты выполнения процедур и программнаПрологе могут быть эквивалентны результатам выполнения программ на других языках программирования.
|
||||
Последнее изменение этой страницы: 2016-12-16; просмотров: 582; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.76.159 (0.01 с.) |