Краткое описание языка Пролог



Базовые понятия языка Пролог

 

Основными понятиями в языке Пролог являются факты, правила и вопросы. Из фактов и правил образуются описания данных, процедур и программы на языке Пролог. Вопросы — это основное средство ведения диалога с базами знаний и программами, имеющимися в памяти ЭВМ.

Факты в Прологе служат для описания конкретных данных и простейших сведений. Примеры фактов:

мама (зина, вова);   — Зина      — мама Вовы

папа (миша, вова); — Миша    — папа Вовы

 

Группы фактов могут образовывать данные. Совокупность данных, размещаемых на дисках, образует базы данных. Общее определение данных в Прологе:

 

данные:

 

Правила используются для описания определений, процедур принятия решений и обработки данных. Примеры использования правил для описания определения понятия «родитель»:

родитель (х,у) ← папа (х,у); — Родитель — это папа илимама

родитель (х,у) ← мама (х,у);

Процедуры образуются из некоторых групп правил. Общая форма описания процедур в Прологе:

 

процедура:

 

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

предок (х,у) ← родитель (х,у);

предок (x,z) ← родитель (х,у), предок (y,z);

 

Программа на Прологе — это совокупность процедур над определенными данными:

 

программа:

Описания баз данных на Прологе образуют совокупность описаний данных:

 

база данных:

 

Базы знаний на Прологе описываются наборами фактов и правил определения обобщенных понятий над ними:

 

база знаний:

 

Вопросы в языке Пролог служат запросами к базам данных и знаний, а также обращениями к процедурам и программам. Примеры вопросов:

? мама (х,вова)

? предок (х,вова)

Описания фактов

 

Факты в языке Пролог описываются в следующей форме:

 

факт:

 

Описание факта начинается с имени. В роли имен могут использоваться любые последовательности букв и цифр, начинающиеся с буквы:

 

имя:

 

Буквы могут быть выбраны из русского и латинского алфавитов.

После имени в описаниях фактов задается список аргументов, заключаемых в круглые скобки. В конце описания каждого из фактов ставится точка с запятой.

В роли аргументов могут быть указаны любые слова, словосочетания и числа. Словосочетание — это любая последовательность слов, соединенных знаком подчеркивания.

 

Словосочетание:

 

Слова, как и имена, — это любые последовательности из букв и цифр, начинающиеся с букв:

 

слово:

 

Числа в данной реализации Пролога — это только целые числа (отрицательные — со знаком минус):

 

число:

 

Примеры записи чисел — 0, 1, +3, —25.

 

Семантика: каждый факт в Прологе интерпретируется как некоторое истинное утверждение. Опираясь на эти утверждения, интерпретатор Пролога рассматривает различные вопросы как утверждения, которые должны быть доказаны или опровергнуты исходя из имеющихся фактов и правил.

Правила записи вопросов

Вопросы в Прологе служат для записи простых или сложносоставных запросов к базам знаний или обращений к процедурам и программам. Ответами на запросы к базам данных и знаний могут быть логические значения ДА (истина) или НЕТ (ложь) либо список конкретных данных, отвечающих запросу.

Общая форма записи сложносоставных вопросов:

 

сложный вопрос:

 

В сложносоставных вопросах составляющие его подвопросы разделяются запятыми. Любой вопрос в Прологе начинается со знака вопроса «?» и заканчивается знаком «точка с запятой». Пример слож-носоставного вопроса:

? папа (х,у), папа (у,вова);

 

Простые вопросы имеют следующую форму записи:

 

простой вопрос:

 

Здесь <имя> — это имя некоторого факта или правила в программе или базе знаний. Количество аргументов в таком простейшем вопросе должно строго совпадать с количеством аргументов (параметров) в описаниях соответствующих фактов и правил.

 

В роли аргументов в вопросах могут указываться как конкретные значения, так и переменные. Если в вопросе указаны только конкретные значения, то ответом будет логическое значение ДА или НЕТ. Если же в вопросе указываются переменные, то при положительном ответе дополнительным результатом будет вывод конкретных значений переменных, указанных в исходном вопросе.

 

В роли переменных в Прологе могут указываться латинские и русские буквы, как строчные, так и прописные: а, b , с, ..., х, у, z; A, В, С, ..., X, Y, Z; а, б, в, ... , э, ю, я; А, Б, В, ..., Э, Ю, Я.

 

Кроме того, в качестве имен переменных могут употребляться любые слова и словосочетания, заканчивающиеся знаком апострофа ['].

 

Примеры имен: дед ', х1 ', оценка4 ' и т. п.

 

Кроме того, в вопросах и правилах на Прологе аргументы могут иметь неопределенные значения. Для этого вместо конкретных значений или имен переменных в вопросе указывается знак подчеркивания [ _ ].

 

Пример вопроса с использованием неопределенных значений:

? мама (мать', _ );

 

Ответом на указанный вопрос будет перечень имен всех матерей, сведения о которых имеются в базе знаний.

Запись правил и процедур

 

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

родитель (х,у) ← мама (х,у);

родитель (х,у) ← папа (х,у);

бабушка (x,z) ← мама (х,у), родитель (y,z);

дедушка (x,z) ← папа (х,у), родитель (y,z);

 

Общая форма записи правил на Прологе:

правило:

 

Здесь <заголовок> отделяется от <определения> двумя знаками: «меньше» и «тире». В конце правила записывается «точка с запятой».

 

Заголовки правил имеют следующую форму:

заголовок:

 

Здесь <имя> — это любое слово или словосочетание. В роли параметров в заголовках правил могут указываться переменные или конкретные значения либо неопределенные значения с помощью знака подчеркивания [ _ ].

Описание заголовка служит образцом записи обращений к правилам и процедурам. Определения в правилах образуются из обращений к другим правилам и процедурам, а также из запросов к данным и встроенным процедурам Пролога. Общая форма записи определений в правилах:

 

определение:

 

Запросы и определения отделяются в описаниях правил запятыми и записываются по тем же правилам, что и заголовки.

 

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

 

Результатом выполнения любых процедур и правил в Прологе всегда являются логические значения — ДА либо НЕТ, соответствующие успеху или неуспеху их применения. В этом смысле применение правил в Прологе совпадает с проверкой условий в логике. Соответственно форма записи обращений к правилам и процедурам в Прологе совпадает с формой записи предикатов в математической логике.

 

Однако в отличие от математической логики, где существенны только логические значения этих предикатов, в Прологе результатом применения правил и процедур может быть конкретизация значений переменных, указанных в обращениях к ним.

 

Пример такого обращения:

? родитель (х,вова)

х = зина

 

Полученный ответ имеет двойной результат: во-первых, подтверждение истинности наличия «родителей» у «вовы», а во-вторых, конкретизация переменной «х» в обращении к процедуре «родитель» с именем «вова», которая дает значение «х = зина».

 

Кроме конкретизации значений переменных в запросах и обращениях результатами выполнения процедур и правил в Прологе могут быть различного рода побочные эффекты — вывод на экран линий, точек, картинок, сообщений, запись и считывание данных и т. п.

 

В этом смысле результаты выполнения процедур и программнаПрологе могут быть эквивалентны результатам выполнения программ на других языках программирования.

Встроенные предикаты Пролога

 

Для операций над числами в рассматриваемой версии Пролога имеются следующие арифметические предикаты:

 

Предикат:                     Смысл:

СУММА (x,y,z)             х + у = z

ПРОИЗВ (x,y,z)           х*у = z

ЧАСТНОЕ (x,y,z)      [х/у] = z

ОСТАТОК (x,y,z)      х - [х/у] = z

РАВНО (х,у)               х = у

БОЛЬШЕ (х,у)           х > у

МЕНЬШЕ (х,у)          х < у

Арифметические предикаты по смыслу и функциям существенно отличаются от арифметических операций в традиционных языках программирования. Прежде всего любой из этих предикатов вырабатывает логическое значение ИСТИНА или ЛОЖЬ в зависимости от того, имеет или не имеет решение арифметическая задача, представляемая предикатом.

Примеры:

? СУММА (2,2,5)

НЕТ

? СУММА (2,2,z)

z=4

? СУММА (х,2,5)

х = 3

 

Таким образом, арифметические предикаты позволяют решать простейшие арифметические уравнения с одной или несколькими переменными, автоматически производя соответствующие вычисления, если эти решения существуют. Однако обращение к предикатам, связанным с умножением и делением целых чисел, может дать отрицательный результат из-за отсутствия решений в некоторых случаях:

? ПРОИЗВ (2,у,5)

НЕТ

? ЧАСТНОЕ (5,2,z)

z= 2

? ОСТАТОК (5,2,r)

г = l

 

Предикаты БОЛЬШЕ и МЕНЬШЕ вместе с предикатом РАВНО могут использоваться для сравнения различных численных переменных и констант. А предикаты «неменьше» и «небольше» могут быть определены через отрицание предикатов БОЛЬШЕ и МЕНЬШЕ:

небольше (х,у) ← НЕ (БОЛЬШЕ (х,у));

неменьше (х,у) ← НЕ (МЕНЬШЕ (х,у));

 

Предикат РАВНО может использоваться также для сравнения значений переменных и констант. При этом переменные могут быть и числовыми, и символьными, и других типов. Примеры:

? РАВНО (5,z)

z = 5

? РАВНО (х.миша)

х = Mишa

? РАВНО (коля,оля)

НЕТ

 

Вывод графических изображений на экран в настоящей версии интерпретатора может производиться с помощью следующих предикатов:

ТОЧКА (х,у,с);

ЛИНИЯ (x,y,u,v,c);

ОКРУЖНОСТЬ (х,у,с);

 

где (х,у) и (u,v) — координаты точек на экране, а с — цвет точки. Конкретные значения кодов цветов и диапазоны значений координат точек на экране зависят от типа ЭВМ.

А. Графические предикаты:

 

Предикат:                     Смысл:                         Пример:

 

ФОН (с)                       задание цвета фона        ФОН (8)   

ТОЧКА (х,у,с)            вывод точки                ТОЧКА (0,0,2)

ЛИНИЯ (x,y,u,v,c)       вывод отрезка линии       ЛИНИЯ (0,0,50,50,4)

ОКРУЖНОСТЬ (х,у,с) вывод окружности        ОКРУЖНОСТЬ (90,90,10, 6)

ЗАКРАСКА (х,у,с)     закраска фигур            ЗАКРАСКА (10,40,8)

 

Б. Предикаты ввода-вывода:

 

Предикат:                     Смысл:                         Пример:

 

ВЫВОД (<3начение>)   вывод набора значений ВЫВОД («имя», х)

ВВОДСИМВ (s)         ввод символьных данных

ВВОДЦЕЛ ( n)            ввод числовых данных

ПС                                перевод строки

 

В. Логические предикаты:

Предикат:                     Смысл:                         Пример:

 

ИСТИНА                    логическая константа

ЛОЖЬ                         логическая константа

НЕ (<Предикат>)           отрицание предиката НЕ (РАВНО (z,0))

 

 

Толковый словарь

Автор — лицо, творческим трудом которого создано произведение (программа для ЭВМ или база данных).

Авторские права — права на имя, внесение изменений и имущественные права на созданное произведение.

Алгоритм — совокупность действий со строго определенными правилами выполнения.

Алгоритм массовый, если он применим для решения некоторого класса задач.                                                        

Алгоритм однозначный, если однозначны правила его выполнения.

Алгоритм правильный, если он дает правильные результаты для любых допустимых данных и ситуаций.

Алгоритм результативен, если его выполнение завершается определенными результатами.

Алгоритм содержит ошибки, если его выполнение приведет к неправильным результатам либо не дает никаких результатов.

Алгоритмизация — составление алгоритмов для решения поставленных задач.

Алгоритмические ошибки — ошибки в методе, постановке, сценарии и реализации.

Алгоритмические языки — языки описания алгоритмов.

Антивирусные программы — программы для защиты от вирусов.

База данных — форма представления и организации совокупности данных в ЭВМ, допускающих поиск информации по запросам.

База знаний — форма представления и организация совокупности данных и правил вывода, допускающих логический вывод и осмысленную обработку данных в ЭВМ.

Байт — 8-разрядное двоичное число (1 байт = 8 бит).

Бит — величина, принимающая значение 0 или 1.

Безошибочное программирование — составление алгоритмов и программ без ошибок.

Бейсик — диалоговый язык программирования для персональных компьютеров.

Бумажные технологии — информационные технологии, связанные с бумагой.

Верификация — проверка правильности работы алгоритмов и программ для ЭВМ.                               

Вопрос в Прологе — запрос к базе знаний или программе.

Входные данные — данные, вводимые в ЭВМ.

Выходные данные — данные, выводимые из ЭВМ.

Вычислительная машина — устройство для организации автоматических вычислений и обработки информации.

Вычислительные процессы — процессы вычислений и обработки информации в вычислительных машинах и системах.

Вычислительная система — объединение вычислительных машин для организации хранения, обработки и поиска информации.

Вычислительная сеть — совокупность ЭВМ, объединенных сетью связи, позволяющей компьютерам проводить обмен информацией.

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

Гипертекст — текст со ссылками на другие гипертексты в сети Интернет.

Глобальная сеть — сеть, в которой объединены компьютеры в различных странах на различных континентах.

Дизъюнкция — логическая связка «ИЛИ».

Дисплей — устройство отображения информациина электронном экране.

Дистанционное обучение — обучение на расстоянии с использованием учебников, персональных компьютеров и сетей ЭВМ.

Доказательство — последовательность суждений, обосновывающих некоторое утверждение.

Доказательное программирование — составление алгоритмов и программ одновременно с доказательством их правильности.

Документ — информация, зафиксированная на материальном носителе, имеющем реквизиты (подпись, дату и т. п.), позволяющие его идентифицировать.

Закон достаточных оснований: «Всякое утверждение должно предполагать наличие аргументов и фактов, достаточных для его обоснования».

Закон двойного отрицания: «Если неверно отрицание, то суждение — истинно».

Закон исключения третьего: «Истинно суждение либо его отрицание — третьего не дано».

Закон противоречия: «Не могут быть истинны одновременно суждение и его отрицание».

Закон тождества: «Предмет рассмотрения должен быть строго определен и не должен меняться до конца обсуждения».

Законы логики — общие законы логического вывода.

Защита информации — действия и средства по предотвращению утечки, хищения, искажения или подделки информации.

Импликация — логическое следование А → В.               

Импликация А В ложна, когда посылка А истинна, а следствие В ложно.                                    

Импликация А В истинна, когда истинно следствие либо ложны и следствие, и посылка.

Имущественные права — права собственности на произведение (программы для ЭВМ или базы данных).

Индукция — вывод общих суждений из частных примеров.

Интеллектуальная собственность — результаты и продукты творческого интеллектуального труда.

Интеллект — способность производить логические умозаключения и осмысленную переработку информации.

Интернет — международная компьютерная сеть.

Интернет-адрес — символическое имя сайта или сервера в сети Интернет.

Интерпретатор — это система интерпретации (выполнения) программ на ЭВМ.

Информатика — научная дисциплина, изучающая законы и методы накопления, обработки и передачи информации с помощью ЭВМ.

Информация — сведения о лицах, предметах, фактах, событиях и процессах независимо от формы их представления.

Информационная культура — умение читать книги, искать данные, осмысливать информацию и предоставлять ее людям.

Информационные процессы — процессы сбора, обработки, накопления, хранения, поиска и распространения информации.

Информационные ресурсы — совокупность документов в архивах, библиотеках, фондах, банках данных и других информационных системах.          

Информационная система — организация совокупности документов с использованием средств вычислительной техники и телекоммуникационной связи.

Информационные технологии — технологии передачи, накопления и обработки информации.

Информационные услуги — действия людей, организаций и служб по сбору, поиску, хранению и предоставлению информации.

Искусственный интеллект — компьютерные системы, моделирующие или воспроизводящие интеллектуальную деятельность.

Исходные данные — данные, исходные по постановке решаемых задач.

Калькуляция — таблица с определенным набором надписей, формул и данных, используемых для расчетов.

Компакт-диск — оптический диск, используемый для постоянного хранения информации больших объемов.

Компилятор — система трансляции программ с одного языка на другой.

Компьютер — электронная вычислительная машина.

Компьютерная грамотность — это умение читать, писать, а также работать на персональных ЭВМ и искать информацию в Интернет.

Компьютерные вирусы — саморазмножающиеся программы, способные разрушать информацию на ЭВМ.

Контрпример — пример, опровергающий некоторое общее утверждение.

Конфиденциальная информация — информация, доступ к которой ограничен.

Конъюнкция — логическая связка «И».

Конъюнкция А и В истинна, когда истинны оба суждения А и В.

Конъюнкция А и В ложна, когда ложны суждения А илиВ.

Курсор — значок для указания места на экране ЭВМ.

Лемма — вспомогательное утверждение, предполагающее самостоятельное доказательство.

Лицензия — документ, подтверждающий права на использование программ для ЭВМ.     

Логика — наука, изучающая правильность суждений, рассуждений и доказательств.

Логические функции — функции, аргументами и значениями которых могут быть 0 или 1.

Логические элементы — устройства, обрабатывающие двоичные сигналы 0 и 1.                      

Локальная вычислительная сеть сеть, объединяющая компьютеры в комнате или соседних помещениях.

Магнитные диски средство хранения информации, программ и данных в ЭВМ,

Массив — область машинной памяти, выделяемая для размещения совокупности данных.

Математическая индукция — принцип доказательства истинности последовательностей утверждений.

Математическая логика — дисциплина, изучающая технику математических доказательств.

Массовая информация — информация, предназначенная для неограниченного круга лиц.

Машинная программа — последовательность машинных команд и данных, реализующих определенные функции ЭВМ.

Метод — единый способ решения некоторого класса задач.

Метод правильный, если он дает правильные результаты для любой задачи данного класса.  

Метод неправильный, если существует задача данного класса, для которой он дает неправильные результаты или вовсе не дает результатов.            

Мобильность программ — возможность переноса программы на другую ЭВМ.            

Модем — устройство связи компьютеров для передачи файлов по каналам связи.

Мышка — приспособление, которое можно перемещать по столу и которое подсоединено к ЭВМ.

Новостной сайт — ежеминутно обновляемая электронная газета.

Объем понятия — совокупность вещей или явлений, отвечающих данному понятию.

Операционная система — главная управляющая программа на ЭВМ.

Отказ — ситуация, когда прекращается выполнение программы.

Отладка программ — процесс поиска и исправления ошибок в программах на ЭВМ.

Паскаль — язык структурного программирования.

Персональные компьютеры — малогабаритные вычислительные машины.

Поиск данных — отбор данных по определенной комбинации признаков.

Поисковые системы — системы поиска информации в сети Интернет.

Почтовый сервер — компьютер, выделенный для переписки по электронной почте.                     

Постановка задачи — четкое выделение в задаче требуемого и исходного.                           

Правила в Прологе — правила логического вывода.

Правильность программ — правильность результатов, получаемых при выполнении программ на ЭВМ.

Предикаты — математические высказывания о некоторых объектах или их свойствах.

Представление данных — подбор массивов, переменных и других структур для размещения данных в памяти ЭВМ.

Принтеры — печатающие устройства, подсоединяемые к компьютерам.

Провайдер — организация, предоставляющая подсоединение и доступ в Интернет.

Программа для ЭВМ — форма представления данных и команд, предназначенных для получения определенных результатов или способа функционирования ЭВМ.      

Программа правильная, если она дает правильные результаты для любых допустимых исходных данных. 

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

Пролог — система искусственного интеллекта, способная воспроизводить логические выводы и умозаключения.

Процессор — устройство управления компьютеров и автоматических приборов.

Псевдокод — язык для описания логики работы программ с использованием лексики родного языка.

Разработка сверху-вниз — способ последовательной разработки проектов от основной задачи к решению вспомогательных подзадач.

Региональная вычислительная сеть — сеть, связывающая компьютеры в пределах определенного региона.

Редакторы текстов — программы подготовки и редактирования текстов на ЭВМ.

Результат неправильный, если он противоречит требованиям задачи.

Результат правильный, если он отвечает поставленным требованиям.

Результирующие данные — результаты обработки данных.

Реляционные базы — базы данных, в которых информация хранится в форме таблиц.

Сайт — набор гипертекстов, размещенных на сервере с определенным адресом в Интернет.

Сбой — потеря части данных либополучение непредусмотренных данных.

Сервер — сетевой компьютер, используемый для хранения общей информации.

Сетевые программы — программы приема и передачи данных в сетях ЭВМ.

Символьные переменные — переменные, значениями которых являются символьные данные.

Система тестов — полный набор тестов для проверки знаний или программ.

Система управления базами данных — специальные программы, используемые для организации баз данных на ЭВМ.

Систематическое программирование — составление алгоритмов и программ с применением спецификаций.

Сложность алгоритмов — сложность вычислений для получения требуемых результатов.

Сложность задач — это сложность данных и сложность алгоритмов их решения.

Содержание понятия — совокупность признаков, выделяющих объекты, отвечающие данному понятию.

Сортировка данных — упорядочение данных по определенному признаку.

Сохраняемые данные — данные, хранящиеся в долговременной памяти ЭВМ.

Способ неправильный, если он дает неправильные результаты.

Способ правильный, если он дает правильные результаты.

Спецификации — точные математически строгие описания.

Спецификации программ — описание результатов выполнения программ на ЭВМ.

Структурное программирование — составление алгоритмов и программ с использованием правил структурной композиции.

СУБД — система управления базами данных.

Суждение истинно, если оно отражает действительное положение вещей.

Суждение ложно, если оно противоречит истинному положению вещей.

Сценарии программ — совокупность картинок и сообщений, появляющихся на экранах ЭВМ.

Таблица истинности — таблица значений логической функции.

Тесты — контрольные данные.

Тесты — контрольные вопросы.

Тестирование программ— проверка программ на ЭВМ на некотором наборе тестов.

Тестирование знаний — проверка знаний с использованием тестов.

Файл — последовательность записей на машинном носителе информации.

Факты — конкретные сведения.

Факты в Прологе — предикаты с конкретными значениями.

ЭВМ — электронные вычислительные машины (компьютеры).

Экспертные системы — диалоговые программы, которые могут отвечать на вопросы подобно людям.

Электронная библиотека — совокупность электронных книг, размещенных на одном или нескольких сетевых серверах.

Электронная коммерция — организация продажи товаров и услуг с помощью Интернет.

Электронная книга — гипертексты, размещенные на серверах и доступные для чтения.

Электронная почта — передача писем в Интернет с помощью персональных ЭВМ.

Электронные деньги — цифровые файлы на сервере электронного банка.

Электронные таблицы — программы для выполнения расчетов и хранения таблиц с данными.

Электронные технологии — информационные технологии, связанные с представлением информации в электронном виде.

Электронные учебники — программы с учебными материалами и тестами по определенному предмету.

Электронный банк — банк, осуществляющий электронные платежи в Интернет.

Электронный магазин — магазин, продающий товары и услуги с помощью Интернет.

Эффективность программ — минимальность времени выполнения программ на ЭВМ.

Языки программирования — языки для записи программ для ЭВМ.

Языки спецификаций — языки для записи спецификаций.

Excel — электронные таблицы на компьютерах IBM PC с операционной системой Windows.

IP-адрес — десятичный номер сервера в сети Интернет.

IBM PC — наиболее распространенные персональные компьютеры.

Macintosh — самые удобные персональные компьютеры.

MS DOS — операционная система для компьютеров IBM PC.

Quick Basic — язык структурного программирования для компьютеров IBM PC с операционной системой MS DOS.

URL — символический адрес гипертекста в сети Интернет.

Visual Basic — объектно-ориентированный язык программирования для IBM PC с операционной системой Windows.

Windows — операционная система для старших моделей компьютеров IBM PC.

Word — редактор текстов для операционной системы Windows.

WWW (world-wide web) — всемирная распределенная сеть (электронных библиотек).

 


Дата добавления: 2019-02-26; просмотров: 256; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!