вторник, 19 октября 2010 г.

Язык программирования LISP

Раз уж пошла тема освещения довольно старых языков программирования – то я продолжу ее. Сегодняшним героем будет язык программирования, который используется (и даже сейчас) в моделировании различных аспектов систем искусственного интеллекта. Сегодня мы говорим о языке программирования LISP.

Понятное дело, что название этого языка – LISP – это аббревиатура от английских слов List Processing language – язык обработки списков. Именно так – этот язык программирования создан для того, чтобы обрабатывать те данные, которые представляются в форме линейных списков (это структура данных, которая состоит из связанных элементов одного типа).

Если мы вспомним про язык программирования Фортран, который являлся первым в истории языком программирования высокого уровня. Итак, LIPS – является вторым подобным языком. И, как уже было сказано, LISP – до сих пор еще используется в программировании.


Язык программирования LISP был создан американцем Джоном Маккарти в 1958 году. Маккарти довольно активно занимался исследованием и разработкой различных систем искусственного интеллекта. Для этих целей им был создан язык LISP, описание которого он опубликовал в журнале «Communications of the ACM» через пару лет – в 1960 году. После этого LISP стал постепенно набирать популярность.

Традиционно, у языка LISP имеется динамическая система типов. Этот язык – функциональный, но – впоследствии были разработаны различные системы. Например, существует платформа «CLOS» - Объектная система LISP. Как обычно, объектно-ориентированный подход проник во все современные языки программирования =)



Язык LISP прошел примерно такой же путь стандартизации, как и язык Ада. В результате всех стадий стандартизации, был принят стандарт ANSI в 1994 году, который назвали Common LISP. Его приняли для того, чтобы не допустить дальнейшего увеличения числа диалектов языка программирования LISP.

Основной идеей язык LISP является то, что каждый символ являлся узлом матрицы с множеством координат. Причем – все показатели этого узла записываются в специальные ячейки памяти – слоты. Существуют несколько основных слотов – Имя символа, Функциональный слот, Значение и Дополнительный. Выполняются программы на так называемых LISP-машинах.



Так как основой языка LISP являются списки, то все построено на их основе. Суть заключается в том, что есть головной элемент списка – и к ней подключен хвост списка. Этот самый хвост может быть одновременно головой и для другого списка – все это может повторяться, так что, как я понял, программы на языке LISP довольно сложные. Зато – LISP – очень динамический язык программирования.

Решил для интереса разобраться в том, как же выглядит программа на этом языке – но не стал этого делать. Конечно, интересно, но я хочу оставить свой мозг в целости и сохранности, поэтому – не стал сильно подробно разбираться в коде программ – приведу только скриншот, чтобы вы поняли, что LISP из себя представляет.

Комментариев нет:

Отправить комментарий