Вступ
Мова програмування - це знакова система для опису алгоритмів програм, орієнтованих на конкретних
програм для завдань не чисельного характеру. Англійська назва цієї мови - LISP є абревіатурою виразу LISt Processing (обробка списків) і добре підкреслює основну область його застосування. Поняття “список” виявилося дуже ємним. У вигляді списків зручно представляти алгебраїчні вирази, графи, елементи кінцевих груп, правила виводу й багато інших складних об'єктів. Списки є найбільш гнучкою формою подання інформації в пам'яті комп'ютерів. Не дивно тому що зручна мова, спеціально призначена для обробки списків, швидко завоювала популярність. Перевагою Ліспа є її функціональна спрямованість, тобто програмування ведеться за допомогою функцій. Причому функція розуміється як правило, що зіставляє елементам деякого класу відповідні елементи іншого класу. Сам процес зіставлення не робить ніякого впливу на роботу програми, важливий тільки його результат - значення функції. Це дозволяє відносно легко писати й налагоджувати більші програмні комплекси. Ясність програм, чітке розмежування їхніх функцій, відсутність каверзних побічних ефектів при їхньому виконанні є обов'язковими вимогами до програмування таких логічно складних завдань, якимись є завдання штучного інтелекту. Дисципліна в програмуванні стає особливо важливою, коли над програмою працює не одна людина, а ціла група програмістів.
Мова програмування Лісп призначена у першу чергу для обробки символьної інформації. Тому природно, що у світі Ліспа числа грають далеко не головну роль. Основні типи даних у Ліспі називаються “атом” й “точкова пара”.
В основі виконання програми логічного прогамування лежить механізм автоматичного доведення теорем на основі логічного виведення. Найбільш відомий представник – це мова програмування Пролог.
Об'єктно-орієнтоване програмування є на сьогодні найбільш популярне і стрімко розвивається. Об'єктна програма розглядається як сукупність паралельно існуючих сутностей (об'єктів), які взаємодіють між собою. Кожний об'єкт вміє виконувати певні операції та характеризується певною поведінкою. Історично першою об'єктною мовою вважається Smalltalk. Найбільш відомими представниками цієї парадигми є C++; Object Pascal, що лежить в основі системи візуального програмування Delphi, Java. Мова Java потрібна була для створення інтерактивних продуктів для мережі Internet. Фактично, більшість архітектурних рішень, прийнятих при створенні Java, було продиктовано бажанням надати синтаксис, подібний із С й C++. В Java використовуються практично ідентичні угоди для оголошення змінних, передачі параметрів, операторів і для керування потоком виконанням коду. В Java додані всі гарні риси C++.
Ідея об’єктно-орієнтованого програмування вперше була висунута в мові Small talk. В об’єктно-орієнтоване програмування введене поняття об'єкта й реалізовані механізми обчислень, що дозволяють: описувати структуру об'єкта, описувати дії з об'єктами, використовувати спеціальні правила спадкування об'єктів, установлювати різний ступінь захисту компонентів об'єктів і визначати різні права доступу до них.
Становленню об’єктно-орієнтованого програмування в значній мірі сприяв розвиток функцій машинної графіки. Основні характеристики об’єктно-орієнтованих мов програмування є інкапсуляція, поліморфізм і спадкування. Під інкапсуляцією мається на увазі можливість описати як єдине ціле дані й програмний код, що маніпулює ними. Можна уявити собі об'єкт як супердані - які містять і дані, і властиву їм функціональність.
Говорячи про поліморфізм, мають на увазі те, що різні об'єкти можуть описувати різні реалізації того самого методу.
Спадкування означає створення нових об'єктів із уже існуючих. Починаючи з визначення самих загальних абстрактних об'єктів, можна створювати більш конкретні об'єкти нижнього рівня, які не тільки успадкують всі функції своїх попередників, але можуть додавати й свої власні.