- •Общие сведения о Прологе, области применения, отличия Пролога от других языков программирования.
- •4. Способы объявления доменов (типов данных) в Турбо-Прологе.
- •5.Объявление предикатов в программах Турбо-Пролога.
- •6. Утверждения программы Турбо-Пролога: факты и правила.
- •7.Внутренняя и внешняя цели в программах Турбо-Пролога.Раздел goal
- •8.Этапы программирвоания на тп
- •9.Декларативный и процедурный смысл программы на Турбо-Прологе.
- •10.Сопоставление. Правила сопоставимости термов, структур.
- •11.Арифметика в тп, Арифметические функции в тп
- •12.Рекурсия.Пример рекурсивного правила(вычисление факториала, возведение числа в целую степень).
- •13 Стандартные предикаты. Поточный шаблон стандартного предиката.
- •14 Стандартные предикаты ввода-вывода в Турбо-Прологе.
- •15Отсечение в программах на Турбо-Прологе.
- •16Списки. Описание списков в программе. Голова и хвост списка.
- •17Основные стандартные предикаты Турбо-Пролога для работы со строками.
- •18Преобразование строки в список символов.
- •Преобразование строки в символ
- •19 Преобразование строки в список атомов
- •20 Основные предикаты Турбо Пролога для преобразования данных из одного типа в другой
- •Преобразование строки в символ
- •Преобразование, определяемые пользователем
- •21Предикаты Турбо-Пролога для переадресации внешних устройств.
- •22 Описание файловых доменов в Турбо-Прологе.
- •23 Запись данных в файл в программах на Турбо-Прологе.
- •24 Чтение данных из файла в программах на Турбо-Прологе.
- •25 Дозапись данных в конец существующего файла в программах на Турбо-Прологе
- •26 Предикаты Турбо-Пролога для работы с окнами
- •27Статические и динамические базы данных в программах на Турбо-Прологе
- •28Создание динамических баз данных средствами Турбо-Пролога
- •30Способы занесения информации в динамическую базу данных
- •29Предикаты Турбо-Пролога для работы с базой данных.
- •Общие сведения о Прологе, области применения, отличия Пролога от других языков программирования.
- •Основные элементы Турбо-Пролога: имена объектов, термы, константы, переменные, структуры, атомы.
Общие сведения о Прологе, области применения, отличия Пролога от других языков программирования.
Искуственный интеллект (ИИ) – это научное направление, связанное с разработкой программ, связанных с различной деятельностью, требющей человеческого интеллекта
К области применения ИИ относятся следующие:
Восприятия и распознавание образа;
Математика и математическое доказательство теорем;
Игры (шахматы);
Решение задач;
Понимание естественного языка.
Обычные языки программирования не очень удобны для разработки систем ИИ. Для построения данных систем были разработаны специальные языки, т. как Пролог, имеющий встр. Механизмы вывода, и ЛИСП – ориентированный на обработку списков.
Теоритической основа Пролога - символьная логика,(исчислением предикатов).
Области применения:
Управление производственными процессами.
использование баз данных;
перевод с одного языка на другой;
создание интерфейса на естественном языке;
создание экспертных систем;
доказательство теорем и др.
Отличие от традиционных процедурных языков Пролог язык описаний, а не как язык предписаний
Используемый в прологе подход состоит, в описании известных фактов и отношений (правил), касающихся решаемой задачи, а не в предписании последовательности шагов, выполняя которые ЭВМ решает задачу. Решение на прологе следует из составленного описания.
Основные элементы Турбо-Пролога: имена объектов, термы, константы, переменные, структуры, атомы.
Имена объектов должны начинаться с малой буквы, за которой могут следовать произвольные символы (буквы, цифры, знак подчеркивания).
Объекты данных в ТП называются термами.
Терм может быть константой, переменной или структурой. Классификация объектов данных приведена на схеме.
Атом – синтаксически неделимый терм.
Констаныты относятся к одному из 6 стандартных типов данных:
Тип |
Ключевое слово |
|
Диапазон значений |
Пример |
Символы |
char |
Все символы |
‘a’, ‘C’, ‘%’ |
|
Целые числа |
integer |
-32678…32767 |
-153, 125 |
|
Действительные числа |
real |
-1E-307…1E308 |
2.48 |
|
Строки |
string |
Последовательность символов |
“Sony”, “256” |
|
Символьные имена |
symbol |
|
real_data, ‘Delete string’ |
|
Файлы |
file |
Допустимое в ДОС имя файла |
a.txt |
Переменная – имя начинается большой буквы или знака подчеркивания. В качестве имени может использоваться знака подчеркивания, такая переменная называется анонимной. Она может использоваться вместо любой переменной, однако она никогда не принимает конктертного значения.
Структуры – объекты, которые состоят из нескольких компонент. Записывается с помощью указания ее функтора и компонента. Компоненты заключаются в ( ) и разделяются ,. Функтор записывается перед открывающей скобкой. В качестве компонент могут быть переменные или структуры.
data_rogd (D, mart, 1980)
Все структурные объекты можно избразить в виде деревьев. Корнем дерева является функтор, а ветвями, выходящими из него – компоненты.
3 Структура программы Турбо-Пролога, разделы программы.
Програма содержит описание задачи, имеющее 3 компоненты:
имена и структуры объектов, используемых в задаче;
имена отношений, которые существуют между объектами;
Факты и правила, описывающие отношения.
Программа состоит из нескольких разделов, каждому из которых предшествует ключевое слово.
domains <описание типов данных>
predicates <описание предикатов>
goal <целевое утверждение>
clauses <утверждения (предложения)>
В программе необязательно наличие всех разделов. Обычно должно быть, 2 и 4. Могут присутствовать еще 2 раздела для определения глобальных доменов и предикатов – global domains, global predicates. Они позволяют обеспечить междумодульный интерфейс, если программа состоит из нескольких модулей. Программа может создать несколько разделов domains, predicates, clauses. При этом надо соблюдать следующие ограничения:
раздел должен начинаться с ключевого слова;
при компиляции поддерживается только одна цель, может быть только один раздел goal;
все предложение раздела clauses, описывающие один и тот же предикат должны записываться друг за другом;
при компиляции может обрабатываться только один раздел глобальных предикатов, при этом перед ним не должен использоваться раздел объявления обычных предикатов;
разделы, создающие предикаты базы данных должны использоваться перед объявлением всех глобальных и обычных предикатов.