avva: (Default)
[personal profile] avva
В этом году исполняется 50 лет языку Лисп.

В честь этого события я распечатал и прочитал LISP 1.5 Programmer's Manual, полную спецификацию первой версии Лиспа, которая широко распостранилась за пределами MIT. Это 62-й год. Очень интересная книга. Забавно наблюдать смешение универсального и конкретных подробностей имплементации на архитектуре IBM 7090, одного из больших компьютеров того времени (32k слов по 36 бит каждое - около 140kb памяти в сегодняшних байтах).

Одна из самых странных особенностей этой книги с точки зрения современного Лиспа состоит в том, что к тому времени Маккарти еще не отказался от отдельного синтаксиса для M-expressions - мета-языка программ, отдельного от S-expressions, из которых состоит собственно Лисп. Все алгоритмы в книге написаны на M-expressions, и отдельно указано, как переводить их в программы для системы LISP. Это обстоятельство не мешает LISP 1.5 "схлопывать" уровни данных, программ, и интерпретатора программ, как это свойственно Лиспу в целом, просто это схлопывание не столь очевидно выражено в книге, из-за использования отдельного метаязыка для описания большинства функций.

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

Я изучил Лисп год назад, после того, как много лет - больше десяти - это откладывал по тем или иным зряшным причинам. Современный учебник, который обычно хвалят знатоки Лиспа - Practical Common Lisp - заслуживает все эти похвалы, и доступен как в виде книги, так и в сетевой версии. Сделайте себе одолжение, и если вы хотите научиться чему-то новому в 2008 году, и еще не знаете Лисп, попробуйте ее прочитать.

Date: 2008-01-05 01:06 am (UTC)
From: [identity profile] slobin.livejournal.com
Есть, кто же спорит! И в нормальных реализациях Схемы тоже есть. Но, во-первых, нестандартно (что полбеды), а, во-вторых, совершенно непонятно, что и в каком порядке учить. За что я не люблю монстров типа CL и С++, так это за то, что там нормальной является практика работы с недовыученным языком. А довыучить их не у каждого терпения хватит. У меня не хватило. :-(

... Laziness has an important impact on efficiency ...

January 2026

S M T W T F S
    1 2 3
4 5 6 78910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 7th, 2026 01:30 am
Powered by Dreamwidth Studios