Декларативные Языки Программирования

 
 

 

            Лисп (LISP, от англ. «List Processing» — «обработка списков») — первый язык программирования, поддерживающий функциональную парадигму программирования. Нетипизирован, содержит массу императивных свойств, однако в общем поощряет именно функциональный стиль программирования. При вычислениях использует «вызов-по-значению». Существует объектно-ориентированное расширение языка — CLOS.

            Основной структурой для хранения и манипулирования информацией в языке Лисп служит список.

            Списками являются даже функции, имеющие несколько входных параметров, и один или несколько выходных (результат функции). Программа представляет из себя список из нескольких функций (дерево функций), поэтому с точки зрения самого языка программа на нём также может являться (и зачастую является) входными данными. Чтобы использовать функцию, её надо определить. Определение функций происходит также через функцию.

            Сильными сторонами Лиспа являются однородность (в том числе, как уже указано, один формат представления программы и данных) и простота синтаксиса. Это позволяет легко создавать расширяемые системы, которые могут автоматически генерировать части собственного кода. К недостаткам можно отнести необычный вид программ, трудности с освоением после использования современных объектно-ориентированных языков.

            Многие начинающие программисты основной проблемой Лиспа считают огромное количество скобок «(» и «)» в тексте программ (основные диалекты Лиспа не поддерживают различные скобки). Редактирование Лисп-программ можно значительно упростить, используя текстовый редактор, поддерживающий автоматическое выравнивание кода, подсветку соответствующих пар скобок и команды типа «перейти через список вправо». Одним из таких редакторов является Emacs.

            Текст программы на Лиспе, печатающий сам себя:

    ((lambda (x)
      (list x (list (quote quote) x)))
     (quote
        (lambda (x)
          (list x (list (quote quote) x)))))

            Данная программа работает на большинстве диалектов Лиспа.

            Лисп используется как скриптовый язык в текстовом редакторе Emacs. По сути, большая часть Emacs'а написана на Лиспе, и он представляет собой большую расширяемую систему.

            Лисп используется в оконном менеджере Sawfish. В данном оконном менеджере используется диалект Лиспа Rep, который в значительной степени повторяет диалект Лиспа от Emacs, устраняя ряд его недостатков. Sawfish.

    

Вверх

Назад

 

 
 


Web-дизайн  © Лыгин К.И.

Hosted by uCoz