Добро Пожаловать на сайт Clana C.S.R.IP Role Play: 46.174.52.17:27248 [ УЮТНЫЙ ПОДВАЛЬЧИК 03:45 АМ ] classic

Главная Файлы Форум Чат Новости Регистрация Вход

Меню











CSR-CS.CLAN.SU | CSR-TEAM
Меню Клана




CSR-CS.CLAN.SU | CSR-TEAM
Посетители
Онлайн:

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Зарег. на сайте:
Всего: 133
Новых за месяц: 0
Новых за неделю: 0
Новых вчера: 0
Новых сегодня: 0
Из них:
Администраторов: 1
Модераторов: 1
Проверенных: 49
Обычных: 82
Из них:
Парней: 119
Девушек: 13
Счетчик материалов:
Форум: 140/161
Файлов: 141
Новостей: 301
Cтатей: 182
Cайтов: 4
Серверов[css v34]: 27
Картинок: 4
Онлайн фильмов: 9104
Счетчики:
Сегодня нас посетили:

Главная » Статьи » Статьи для Программирования » Prolog

Язык программирования Prolog Пролог

Язык программирования Prolog Пролог

Пролог является одним из ведущих логических языков программирования. Он был создан Аленом Колмерье (Alain Colmerauer) в 1970-х годах. Это была попытка сделать язык программирования для начинающих, который дает возможность выразить логику, а не тщательно задавать инструкциями на экране компьютера то, что хочется получить.

Пролог используется во многих программах искусственного интеллекта, но его синтаксис и семантика очень простые и ясные (первоначальная цель заключалась в обеспечении инструментом для компьютерных неграмотных лингвистов ). Название Пролог акроним для ПРОграммирования в ЛОГике и широко известен при обучении основам программирования.

Пролог основан на исчислении предикатов (точнее первого порядка исчисления предикатов), однако он ограничен формулами Хорна. Программы Пролога эффективны для доказательства теорем в первом приближении. Основные понятия объединения, хвостовая рекурсии и отслеживание.

Типы данных

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

Атомы

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

Числа

Большинство реализаций Prolog не делают различий между действительными и дробными числами.

Переменные

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

Так называемые анонимные переменные записываются в виде одного подчеркивание (_).

Термины

Термины являются единственным способом , которым Пролог может представлять сложные данные. Термин состоит из головы, которая также называется функтор (который должен быть атомом) и параметров (не ограниченные типами). Число параметров, так называемых арностей термина, является важным. Термин определяется по его голове и арности, обычно записывается как функтор / арности. 
Списки

Список не является автономным типом данных, потому что он определяется рекурсивным построением (используя термин / 2 '.'): 

atom[] - пустой список

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

Если L является списком и X является элементом, то '.' (X, L) является членом списка. Первый элемент X, за которым следует содержимое контекста L, синтаксически представляют как.

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

Элемент перечисление: [abc, 1, f(x), Y, g(A,rst)] 
Предварение одного элемента: [abc | L1] 
Предварение несколько элементов: [abc, 1, f(x) | L2]
Расширение термина: '.'(abc, '.'(1, '.'(f(x), '.'(Y, '.'(g(A,rst), [])))))

Строки

Строки обычно записывается как последовательность символов в кавычках. Они часто представлены в виде списков кодов символов таблицы ASCII.

Факты

Программирование на языке ПРОЛОГ сильно отличается от работы с процедурными языками. В Прологе Вы работаете с базами данных из фактов и правил, вы можете выполнять запросы к базе данных. Основной единицей Пролог является предикат, который определен, чтобы быть правдой (true). Предикат состоит из головы и числа аргументов. Например: 

cat(tom).

Здесь "cat" это голова, и "tom" является аргументом. Вот некоторые примеры запросов вы можете выполнить с помощью транслятора Пролог на основе этого факта: 

?- cat(tom).
yes.

?- cat(X).
X = tom;
no. 


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

father(sally,pat). 
father(pat,sally). 


"father" в обоих случаях это голова, а "sally" и "pat"- аргументы. Однако в первом случае, Салли на первом месте в списке аргументов, а на втором Пэт на и наоборот. Первый случай является примером определения в порядке Глагол Предмет и Объект, ну а во втором примере порядок следующий Глагол Объект Предмет. Поскольку Пролог не понимает по-английски, обе версии прекрасно подходят, однако, считается хорошим стилем программирования придерживаться одного стиля, называемого соглашением, в ходе написания одной программы, чтобы потом не писать что-то вроде:

father(pat,sally). father(jessica,james). 

Некоторые предикаты встроены в язык, и позволяют Прологу уменьшить рутину повседневной деятельности (например, ввод / вывод с использованием графики и иного общения с операционной системой). Например, предикаты записи могут быть использованы для вывода на экран таким образом:

Write ('привет') 

будет отображать слово "Hello" на экране. 

Правила 

Второй тип заявлений в Пролог - это правила. Пример правила: 

light(on) :- switch(on). 

": -" означает "если", это правило означает, light (on) верно (включен), если switch (on) это правда (иначе, если переключатель switch включен, тогда есть свет light). Правила могут также использовать переменные, переменные начинаются с большой буквы в то время как константы начинаются со строчных буквам. Например,

father(X,Y) :- parent(X,Y),male(Y). 

Это означает, "если кто-то является родителем, и он мужчина, то он является отцом". Причины и следствия могут находиться и в обратном порядке, так что это не противоречит обычной логике. Можно разместить несколько предикатов в разделе следствий, объединив их вместе, например: 

a,b,c :- d. 

Что эквивалентно нескольким объявлениям: 

a :- d. b :- d. c :- d. 

Но не разрешаются инструкции вида:

a;b :- c. 

, что является эквивалентом "если с, то a или b". Это связано с ограничением, на накладываемым формулой Хорна.

Категория: Prolog | Добавил: Priboy (28.09.2012)
Просмотров: 1229 | Теги: Язык программирования Prolog Пролог | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории раздела
HTML [20]
CSS [15]
SCIRRA CONSTRUCT [1]
Pascal [1]
Pascal и Delphi [1]
Алгоритмы,Блок Схемы [1]
Microsoft Small Basic [1]
Разное [4]
Ada [1]
ALGOL [1]
Assembler [1]
Basic [1]
Brainfuck [1]
C [1]
C++ [1]
COBOL [1]
Delphi [1]
Modula [1]
FORTRAN [1]
Lisp [1]
JavaScript [1]
Java [1]
SQL [1]
Smalltalk [1]
Simula [1]
Ruby [1]
Python [1]
Prolog [1]
PHP [1]
Perl [1]
Pascal [1]
Баннеробмен





Друзья сайта:

Разное
Топ Файловиков ↑↓
Новое на форуме ↑↓
ТиЦ ↑↓
Новые файлы

Ники в CS
Скачиваний: 0
Добавил: Priboy
Добавлено: 22.10.2012

UCP 7.7
Скачиваний: 0
Добавил: Priboy
Добавлено: 20.10.2012
Случайные Файлы
Quake Squad


Подробнее о файле:
Quake Squad
Скины админов
Просмотров: 805
Добавил: Priboy
Дата: 21.06.2012
Перейти

скин админа железный человек,для cs:source


Подробнее о файле:
скин админа железный человек,для cs:source
Скины админов
Просмотров: 1059
Добавил: Priboy
Дата: 21.06.2012
Перейти

Наш Сервер

Clan.::[C.[S].R.]::. © 2024

CSR-TEAM