Логічні мови програмування: особливості, приклади

9 0 Новини високих технологій

Як часто ви стикалися з незрозумілим терміном «логічне програмування» і не могли зрозуміти, що це? Сьогодні ми остаточно визначимося з тим, що таке мови програмування логічного типу, і розглянемо приклади таких мов. Перш ніж починати огляд мов, необхідно спочатку дізнатися, що це таке і навіщо воно потрібно.

Що таке логічне програмування?

Логічні мови програмування: особливості, приклади
Це підхід до програмування, заснований на доведенні теорем та виведення інформації на основі фактів. Висновок результату є побічним продуктом роботи програми. Логічне програмування засноване на теорії математичної логіки, включає в себе розділ дискретної математики та деякі інші.

У чому відмінності?

Багато об'єднують логічні мови програмування з функціональними, проте вони володіють деякими відмінностями, про які ми далі поговоримо. На відміну від функціональних, логічні дуже добре підходять для створення штучного інтелекту. Також іноді дуже зручно, коли в мові змінні не поділяються на вхідні та вихідні. Саме в таких мовах це і відбувається, що іноді спрощує роботу з кодом. Знову ж програми є більш швидкими і виконують свої завдання іноді ефективніше. Основна особливість логічних мов програмування полягає в тому, що програма представляє певні відносини між елементами.


Однак існують і мінуси. Не все можна описати з допомогою логіки, тому у таких програмах функції будуть працювати не завжди так, як потрібно, або взагалі не будуть працювати.

Кому корисно вчити мови програмування логічного типу?

Варто відразу відповісти на питання: вчити дані мови корисно всім – від школяра до людини у віці. Адже логічні мови програмування здатні буквально змусити наш мозок думати логічно. Також такі мови будуть дуже корисні у створенні штучного інтелекту або при роботі з даними.

Логічні мови програмування

Таких мов не так багато, і вони відрізняються між собою. Ми поговоримо тільки про двох, а почнемо з того, з якого розпочалася ера логічних мов, і ім'я йому Prolog.
Логічні мови програмування: особливості, приклади
Ця мова був розроблений в 1972 році Аленом Колмероэ і є актуальним і свіжим і на сьогоднішній день. Хоч це і не самий простий мову в плані синтаксису, але зате дуже корисний в розумінні логіки комп'ютера. Подивіться, як виглядає код, що описує книгу:




book( 'Назва', '2009', 'Спб', authors( 'Перший автор', 'Другий автор' ) ).
Логічні мови програмування: особливості, приклади

Такий опис досить просто зрозуміти і розібрати що до чого. Саме тому навчання подібного мові далі не складе великих труднощів і не вимагає танців з бубном.

Давайте далі розберемо його плюси і мінуси.

Плюси.

1. Код легко зрозуміти і запам'ятати.

Як вже згадувалося вище, код в мові Prolog пишеться не так вже й складно. Він досить простий, в розумінні звичайного користувача.

2. Вираження і факти.

Даний мову можна використовувати без будь-яких обчислень, спираючись тільки на вираження і факти.

3. Шлях не впливає.

Який би шлях до реалізації вашої задумки ви не вибрали, він практично ніколи не впливає на результат виконання програми.

Мінуси.

Логічні мови програмування: особливості, приклади

1. Слабкі інвестиції.

З-за того, що ця мова мало підтримують в матеріальному плані – він розвивається досить повільно, маленькими кроками.

2. Неможливість створення комплексних програм.

Ця мова буде неможливо використовувати без зв'язки з іншими, якщо ви хочете створювати більш складні програми з великим функціоналом.

3. Обчислювальні операції.

Для обчислювальних операцій знову ж доведеться використовувати інші мови.

Mercury

Пішов від мови Prolog, Mercury створений, щоб вирішити дві проблеми, пов'язані з популярною мовою програмування.

1. Продуктивність.

Логічні мови програмування досить сильно поступаються в продуктивності імперативного типу.

2. Налагодження.

У мовах такого типу йде досить багато часу на налагодження програми, а також виробляється менше перевірок на помилки в програмі, з-за чого деколи трапляються неприємності.

Приклад коду на Mercury:

Hello, World!

  :- module hello. 
:- interface.
:- import_module io.
:- pred main(io::di, io::uo) is det.

:- implementation.
main(!IO) :-
io.write_string("Hello, World!n", !IO).


Синтаксис і розуміння цієї мови, як можна помітити, дуже відрізняються від «Прологу», що трохи ускладнює навчання, однак деякі його плюси, допомагають вирішити проблеми «Прологу», вельми корисні.

Висновок

Мовою логічного програмування є мова, яка обробляє вираження і факти, а побічним ефектом видає результат роботи даної програми. Такі мови дуже корисними в створенні штучного інтелекту і роботи з даними, проте рідко застосовуються без сторонніх мов програмування.