ми написаної на будь-якому іншому мовою, Пролог-програма призначена для вирішення окремої задачі.
Пролог (Prolog) - Мова логічного програмування, заснований на логіці диз'юнктів Хорна, представляє собою підмножину логіки предикатів першого порядку. Початок історії мови відноситься до 70-м рокам XX століття. Будучи декларативним мовою програмування, Пролог сприймає в якості програми деякий опис завдання, і сам робить пошук рішення, користуючись механізмом бектрекінга і уніфікацією.
Пролог відноситься до так званих декларативним мовам, що вимагає від автора уміння скласти формальний опис ситуації. Тому програма на Пролозі не є такою у традиційному розумінні, оскільки не містить керуючих конструкцій типу if ... then, while ... do; немає навіть оператора присвоювання. В Пролозі задіяні інші механізми. Завдання описується в термінах фактів і правил, а пошук рішення Пролог бере на себе за допомогою вбудованого механізму логічного висновку.
Перелік можливих синтаксичних конструкцій Прологу невеликий, і в цьому сенсі мову проста для вивчення. З іншого боку, декларативний стиль програмування виявляється настільки незвичним і новим для досвідчених програмістів, що викликає шок і в ряді випадків виявляється гальмом.
Пролог реалізований практично для всіх відомих операційних систем і платформ. В число операційних систем входять OS для мейнфреймів, все сімейство Unix, Windows, OS для мобільних платформ. Багато сучасних реалізації мови мають внутрішнє розширення за рахунок ООП-архітектури. Крім пропрієтарних рішень, існують вільні реалізації Пролог. Пролог критикується в першу чергу за свою недостатню гнучкість, отчого рішення на звичайних мовах програмування (Типу C + +, Java) в поєднанні з базами даних виявляються більш технологічними, ніж аналогічні рішення на Пролозі. Негнучкість полягає в труднощі вивчення мови, більш високих вимогах до кваліфікації програміста на Пролозі, труднощі налагодження програми, нерозвиненості технології програмування, поганий контрольованості проміжних результатів.
Основні віхи розвитку мови Prolog
Prolog став втіленням ідеї використання логіки як мови програмування, яка зародилася на початку 1970-х років, і сама його назва є скороченням від слів "programming in logic" (програмування в термінах логіки). Першими дослідниками, які зайнялися розробкою цієї ідеї, були Роберт Ковальські (Robert Kowalski) з Единбурга (теоретичні основи), Маартен ван Емден (Maarten van Emden) з Единбурга (експериментальна демонстраційна система) і Ален Колмерое (Alain Colmerauer) з Марселя (реалізація). Популяризації мови Prolog багато в чому сприяла ефективна реалізація цієї мови в середині 1970-х років Девідом Д. Г. Уорреном (David DH Warren) з Единбурга. До числа новітніх досягнень в цій області відносяться засоби програмування на основі логіки обмежень (Constraint Logic Programming - CLP), які зазвичай реалізуються в складі системи Prolog. Засоби CLP показали себе на практиці як виключно гнучкий інструмент для вирішення завдань складання розкладів і планування матеріально-технічного постачання. А в 1996 році був опублікований офіційний стандарт ISO мови Prolog.
Найбільш помітні тенденції в історії розвитку мови Prolog
У розвитку мови Prolog спостерігаються дуже цікаві тенденції. Ця мова швидко набув популярність в Європі як інструмент практичного програмування. В Японії навколо мови Prolog були зосереджені всі розробки комп'ютерів п'ятого покоління. З іншого боку, в США ця мова в цілому був прийнятий з невеликою запізненням у зв'язку з деякими історичними причинами. Одна з них полягала в те, що Сполучені Штати спочатку познайомилися з мовою Microplanner, який також був близький до ідеї логічного програмування, але неефективно реалізований. Певна частка низької популярності Prolog в цій країні пояснюється також реакцією на існуючу спочатку "ортодоксальну школу" логічного програмування, представники якої наполягали на використанні чистої логіки і вимагали, щоб логічний підхід не був "заплямований" практичними засобами, що не відносяться до логіки. У минулому це призвело до широкому поширенню невірних поглядів на мову Prolog. Наприклад, деякі вважали, що цією мовою можна програмувати тільки міркування з висновком від цілей до фактів. Але істина полягає в тому, що Prolog - універсальна мова програмування і на ньому може бути реалізований будь-який алгоритм. Далека від реальності позиція "ортодоксальної школи" була подолана практиками мови Prolog, які прийняли більш прагматичний підхід, скориставшись плідним об'єднанням нового, декларативного підходу з традиційним, процедурним.
Елементи синтаксису:
Коментар до кінця рядка
%
Регістрозавісімость
да
Регулярний вираз ідентифікатора змінної
[_A-Z] [_a-zA-Z0-9] *
Регулярний вираз ідентифікатора функції
[_a-z] [_a-zA-Z0-9] *
Угрупування виразів
(...)
Список використовуваної літератури
1. sedok.narod.ru/fuzzy.html - Ключові поняття теорії нечітких множин.
2. ru.wikipedia.org/wiki/Лингвистическая_переменная
3. .intuit.ru/department/ds/fuzzysets/9/
4. progopedia.ru/language/prolog/