Главная / Искусственный интеллект / Лисп совершает революцию / Лисп - язык одновременно старый и новый

Лисп - язык одновременно старый и новый

Прежде чем приступить к изучению языка программирования, следует выяснить, каков он: слишком старый и, следовательно, несовременный или слишком молодой и потому недостаточно оформившийся. Что можно сказать в этой связи о Лиспе? Многие, вероятно, будут удивлены, узнав, что история Лиспа берет начало с конца 50-х годов, и, следовательно. Лисп почти такой же старый язык, как Фортран.

Но в противоположность Фортрану современный Лисп серьезно отличается от Лиспа двадцатипятилетней и даже пятилетней давности. Почему получилось так, что Фортран «застыл», тогда как Лисп продолжал интенсивно равзиваться? Причина такого различия заключается в том, что коммерческое применение Фортрана началось давно, а Лиспа —лишь в последние годы.

Дело в том, что Лиси требует большого объема машинной памяти, и пока системы памяти были очень дороги, стандартизация Лиспа считалась экономически нецелесообразной. В результате диалекты Лиспа множились, в язык постоянно вносились изменения, а заимствования из одного диалекта в другой приводили к тому, что все диалекты оказались одинаково развитыми. В настоящее время стоимость машинной памяти значительно снизилась, и Лисп стал использоваться для решения коммерческих задач, что привело к необходимости его стандартизации.

 К счастью, многие особенности Лиспа, приобретенные за 25 лет его развития, вошли в диалект Common LISP.

Наиболее важные из них:

  • система автоматического создания структур, вырабатывающая процедуры доступа к отдельным полям записи;
  • обобщенный оператор присваивания, который может работать с переменными, свойствами, массивами и структурами;
  • гибкий механизм, позволяющий достаточно просто и наглядно строить сложные выражения по образцу;
  • использование макроопределений, дающих пользователю возможность создавать свой синтаксис;
  • разнообразные способы задания значений аргументов, в том числе использование необязательных аргументов с указанием значений по умолчанию и аргументов, связываемых со значениями с помощью ключевых слов;современная потоковая система ввода-вывода данных.