Harold Abelson and Gerald Jay Sussman with ... - ftp.linux.kiev.ua.
Harold Abelson and Gerald Jay Sussman with ... - ftp.linux.kiev.ua.
Harold Abelson and Gerald Jay Sussman with ... - ftp.linux.kiev.ua.
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Предисловие 9<br />
естественность их использования отражаются в удивительной общности функций.<br />
В Паскале обилие объявляемых структур данных ведет к специализации функций,<br />
которая сдерживает и наказывает случайное взаимодействие между ними.<br />
Лучше иметь 100 функций, которые работают с одной структурой данных, чем<br />
10 функций, работающих с 10 структурами. В результате пирамиде приходится<br />
неподвижно стоять тысячелетиями; организм же будет развиваться или погибнет.<br />
Чтобы увидеть эту разницу, сравните подачу материала и упражнения в этой<br />
книге с тем, что Вы найдете в любом вводном тексте, авторы которого используют<br />
Паскаль. Не поддавайтесь ошибочному впечатлению, будто этот текст может<br />
усвоить лишь студент MIT — представитель специфической породы, которая только<br />
там и встречается. Нет; именно такова должна быть всякая серьезная книга,<br />
посвященная программированию на Лиспе, вне зависимости от того, где и кто по<br />
ней учится.<br />
Учтите, что это текст о программировании, в отличие от большинства книг по<br />
Лиспу, которые используются для подготовки работников в области искусственного<br />
интеллекта. В конце концов, основные программистские заботы вычислительной<br />
инженерии и искусственного интеллекта стремятся к взаимопроникновению<br />
по мере того, как соответствующие системы увеличиваются в объеме. Это объясняет<br />
рост интереса к Лиспу за пределами искусственного интеллекта.<br />
Как и можно было ожидать, глядя на цели, которые ставят перед собой исследователи<br />
в области искусственного интеллекта, область эта порождает множество<br />
значительных программистских задач. В других программистских культурах<br />
такой наплыв задач рождает новые языки. В самом деле, в любой большой<br />
программной задаче один из важных принципов организации состоит в том, чтобы<br />
ограничить и изолировать потоки информации в отдельных модулях задачи,<br />
изобретая для этого язык. По мере приближения к границам системы, где мы —<br />
люди — взаимодействуем чаще всего, эти языки обычно становятся все менее<br />
примитивными. В результате такие системы содержат сложные функции по обработке<br />
языка, повторенные по многу раз. У Лиспа же синтаксис и семантика<br />
настолько просты, что синтаксический разбор можно считать элементарной задачей.<br />
Таким образом, методы синтаксического разбора не играют почти никакой<br />
роли в программах на Лиспе, и построение языковых процессоров редко служит<br />
препятствием для роста и изменения больших Лисп-систем. Наконец, именно эта<br />
простота синтаксиса и семантики возлагает бремя свободы на всех программистов<br />
на Лиспе. Никакую программу на Лиспе больше, чем в несколько строк длиной,<br />
невозможно написать, не населив ее самостоятельными функциями. Находите новое<br />
и приспосабливайте; складывайте и стройте новыми способами! Я поднимаю