LISP

'Lisp Лісп'
Парадигма: парадигм функціонального та процедурного
Дата появи: 1958
Дизайнер: Джон МкКартні
Розробник: Стів Расел, Тім Харт, Майк Левин
Система типізації: dynamic, strong
Діалекти: Common Lisp, Emacs Lisp, ISLISP, Scheme
Вплинула на: Logo, Python, Smalltalk, Ruby, Dylan, Mathematica

Лісп (LISP) — мова програмування загального призначення з підтримкою парадигм функціонального та процедурного програмування. Вихідна інформація записується у вигляді списків.

Мову програмування Лісп було розроблено в кінці 1950-тих в Масачусетському Технологічному Інституті для дослідження проблем штучного інтелекту. Але, через потужність закладених принципів, мова програмування Лісп також придатна для багатьох інших застосувань.

Зміст

[ред.] Формальне описання мови

Програма на мові програмування Лісп представляє рекурсивну функцію символьних виразів, яка будується аналогічно арифметичним функціям із елементарних з допомогою умовного оператору та операції суперпозиції. Умовний оператор має вигляд (p1l1; …, pnln). Результатом його виконання буде вираз li якщо pi вірне.

Існує п'ять елементарних функцій:

  • atom — булева функція, яка визначає чи є досліджуваний вираз атомом — неподільною одиницею інформації;
  • eq — булева функція, яка визначає рівність двох атомів;
  • car, cdr — функції, які виокремлюють перший та останній елемент списків відповідно;
  • cons — з'єднує два списки в один.

Окрім елементарних функцій визначаються ряд більш складних функцій, які будуються на їхній основі.

[ред.] Базові відомості

LISP означає LISt Processing (обробка списків), мова програмування працює із списками (та списками списків) розміщуючи їх між дужками. Дужки визначають межі спіску. Списки є базисом мови програмування Лісп. Мова програмування Лісп була однією із перших мов програмування з автоматичним прибиранням сміття із пам'яті.[1]

Однією з переваг LISP є те, що кожна змінна може виступати як рядок символів (власне ім'я), посилання на значення, структура даних або функція. Саме останній факт зробив цю мову дуже зручною при розробці лінгвістичних програм, особливо для природніх мов з чіткою структурою речення (наприклад, англійська). В таких мовах кожне слово, його зміст/смисл/імператив, можно інтерпритувати як функцію від слів, що знаходятся на чітко визначених позиціях у реченні, до того ж ці позиції визначаються самим цим словом. Приклад системи, що побудована на цій ідеї можно знайти в книзі Т.Вінограда "Програма яка розуміє природню мову". Ця система реалізує діалог з користвучем на природній мові. Користувач бачить перед собоюю стіл з деякими предметами різного кольору, і може віддавати накази природньою мовою, про перенесення якогось предмету. При цьому система (маніпулятор) сама визначає що треба зняти з цього предмету, який предмет на яких можна класти (на піраміду вже нічого не покладеш), і якщо є неоднозначність у виборі предмету задає уточнючі питання. Також реалізовано контекстне посилання займенників по тексту діалогу (користувач може сказати: "перестав той куб туди-то", і система з тексту далогу може визначити, який саме "той куб"). Це імперативи. Також система може відповідати на питання. Вивід відповіді схожий до прологівського. Також є можливисть користувачу висловлювати декларативи - вносити нові знання про об'єкти, наприклад, надавати їм імена. Хоча словник і база знань відносно не велика, але вона має можливості до розширення.

[ред.] Приклади

В наступному прикладі показано застосування «фундаментальної» функції cons — об'єднання списків:

(cons 'pine '(fir oak maple))

В результаті інтерпретації цього виразу, буде отримано список (pine fir oak maple).

Перший елемент (голова) списку може бути отриманий в результаті застосування функції car:

(car '(rose violet daisy buttercup))

Решту елементів списку можна отримати шляхом застосування функції cdr:

(cdr '(rose violet daisy buttercup))

Результат виконання цього виразу список (violet daisy buttercup).

[ред.] Джерела інформації

  1. http://portal.acm.org/citation.cfm?id=367177.367199

[ред.] Дивіться також

[ред.] Література

  • Mc Carthy J., Recursive functions of symbolic expressions and their computation by machine, part 1. «Communications of the Associations for Computing Machinery», 1960, v. 3, N. 4.
  • Є. Хювьонен, Й. Сеплянен, Мир Лиспа методы и системы программирования, Москва, «Мир», (в двох томах) 1990.
  • Пантелеев А. Г. Об интерпретаторе с языка Лисп для ЕС ЭВМ. — Программирование, 1980, No 3, с. 86-87.

[ред.] Навчальні матеріали

[ред.] Ресурси інтернету


Комп'ютер Це незавершена стаття про комп'ютери.
Ви можете допомогти проекту, виправивши або дописавши її.

kasyno Darmowe Tapety Na Komórkę Gta Kredyty Meble wypoczynkowe uroda opisy gg zakłady bukmacherskie 1% podatku nocleg wrocław F1 Gadu Gadu Suplementy aminokwasy Tekstunie kick koparki Bułgaria wczasy Karaoke tani kredyt hipoteczny COOLsurf