Програмне забезпечення основане на використанні агентів

А пісня ця яка? — запитала Аліса в повній розгубленості.

— Я якраз збирався тобі про це сказати.

— Люіс Керрол (Lewis Carroll), Аліса в Задзеркаллі

Прагніть в складному бачити простоту. — Лао Тзу (Lao Tzu)

Вступ

За більш ніж сорокалітню історію свого існування LISP зарекомендував себе як хорошу мову програмування завдань штучного інтелекту. Спочатку розроблений для символьних обчислень, за час свого розвитку LISP був розширений і модифікований відповідно до нових потреб додатків штучного інтелекту. LISP — це імперативна мова (imperative language). Його програми описують, як виконати алгоритм. Цим він відрізняється від декларативних мов (declarative language), програми яких є визначення відносин і обмежень в наочній області завдання. Проте, на відміну від таких традиційних імперативних мов, як FORTRAN або C++, LISP — ще і функціональна мова (functional language): його синтаксис і семантика продиктовані математичною теорією рекурсивних функцій. Потужність функціонального програмування у поєднанні з багатим набором таких високорівневих засобів побудови символьних структур даних, як предикати, фрейми, мережі і об'єкти, забезпечили популярність LISP в співтоваристві ШІ. LISP широко використовується як мова реалізації засобів і моделей штучного інтелекту, особливо серед дослідників. Високорівнева функціональність і багате середовище розробки зробили його ідеальною мовою для побудови і тестування прототипів систем.

LISP: короткий огляд

1. Символьні вирази як синтаксична основа LISP

Синтаксичними елементами мови програмування LISP є символьні вирази (symbolic expression), які також називають s-виразами (s-expression). У вигляді s-виразів представляються і програми, і дані, s-вираз є або атом (atom), або список (list). Атоми LISP — це базові синтаксичні одиниці мови, що включають числа і символи

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

Приведемо декілька прикладів атомів LISP.

Список — це послідовність атомів або інших списків, розділених пропусками і розташованих в дужках. Ось декілька прикладів списків.

Відмітимо, що елементами списків можуть бути інші списки. При цьому глибина вкладеності може бути довільною, що дозволяє створювати символьні структури будь-якої форми і складності. Порожній список () грає особливу роль при побудові структур даних і управлінні ними. У нього навіть є спеціальне ім'я — nil; nil — це єдиний s-вираз, який одночасно є і атомом, і списком. Список — надзвичайно гнучкий засіб побудови структур уявлення. Наприклад, його можна використовувати для представлення виразів з теорії предикатів.

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

Важливою властивістю LISP є використання однакового синтаксису для представлення не тільки даних, але і програм. Наприклад, списки можна інтерпретувати як арифметичні вирази в префіксній формі запису. LISP обробляє ці вирази саме так: (* 7 9) означає добуток 7 на 9. Якщо на комп'ютері встановлений LISP, то користувач може вести інтерактивний діалог з його інтерпретатором. Інтерпретатор виводить запрошення (як приклад в цій книзі використовується символ >), прочитує введені користувачем дані, намагається оцінити їх і у разі успіху

1 2 3 4 5 6 7 8

Схожі роботи

Реферати

Курсові

Дипломні