Lisp

от wiki.linux-bg.org, свободната енциклопедия

Lisp е функционален език за програмиране от високо ниво с дълга история. Създаден е през 1958 година от Джон Макарти като изчислителен модел базиран на ламбда-смятането на Чърч. Постепено Lisp е налага като основен инструмент в изследванията в областта на изкуствения интелект. Постепенно езикът търпи развитие, добавят се нови и нови елементи, появяват се много диалекти. Поради големите възможности на езика и специфичните му изисквания стават популярни т.нар. lisp-машини -- компютри със специално разработен хардуер пригоден за изключително ефективна работа с Lisp. Lisp-машините допринасят както за разпространението на езика, така и за появата на още повече диалекти. През 80-те и 90-те години езикът бива стандартизиран и се появява езикът Common Lisp. Common Lisp, заедно с обектно-ориентираната си надстройка CLOS (Common Lisp Object System) и MOP (MetaObject Protocol) представлява най-силно развитата обектно-ориентирана система измежду езиците за програмиране (с изключение, може би, на Smalltalk). Обработката на изключения (които в Common Lisp се наричат "условия" (conditions)) е много по-гъвкава от аналогичните системи в други езици като C++ или Java. Системата на макросите дава на програмиста пълната мощ на езика по време на компилация, което позволява създаването на специализирани езици (domain-specific languages) за решаването на даден проблем.

Основни характеристики на езика са:

  • Префиксен синтаксис.
  • Не е строго типизиран език.
  • Автоматично управление на паметта.
  • Третиране на данните като код.
  • Компилируем -- обикновено не се правят интерпретатори на Lisp.

От семейството на езиците произлизащи от Lisp най-популярни са Common Lisp и Scheme.

Езикът (или негови диалекти) широко се използва в разработката на изкуствен интелект и експертни системи но успешно е прилаган и в други случаи. Известен пример е системата Maxima. Примери за използване на Lisp като език за разширения са Window manager-а на прозорци Sawfish и текстовия редактор Emacs.

Лични инструменти