-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathpreface-2.tex
64 lines (58 loc) · 5.44 KB
/
preface-2.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
\chapter*{Предисловие ко второму изданию}
\markboth{Предисловие ко второму изданию}{Предисловие ко второму изданию}
\addcontentsline{toc}{chapter}{Предисловие ко второму изданию}
\thispagestyle{empty}
\epigraph{
Возможно ли, что программы не похожи ни на что
другое, что они предназначены на выброс; что вся
штука состоит в том, чтобы всегда видеть в них мыльный
пузырь?}{Алан Дж. Перлис}
\index{ru}{Перлис, Алан~Дж.||Alan~J. Perlis||n|}\index{en}{Alan~J. Perlis||Перлис, Алан~Дж.||n|}
Материал этой книги был основой вводного курса по
информатике в MIT начиная с 1980 года. К тому времени, как было
выпущено первое издание, мы преподавали этот материал в течение четырех
лет, и прошло еще двенадцать лет до появления второго
издания. Нам приятно, что наша работа была широко признана и включена в
другие тексты. Мы видели, как наши ученики черпали идеи и программы из
этой книги и на их основе строили новые компьютерные системы и
языки. Буквально по старому талмудическому каламбуру, наши ученики
стали нашими строителями. Мы рады, что у нас такие одаренные ученики и
такие превосходные строители.
Готовя это издание, мы включили в него сотни
поправок, которые нам подсказали как наш собственный преподавательский
опыт, так и советы коллег из MIT и других мест. Мы заново
спроектировали большинство основных программных систем в этой книге,
включая систему обобщенной арифметики, интерпретаторы, имитатор
регистровых машин и компилятор; кроме того, мы переписали все примеры
программ так, чтобы любая реализация Scheme, соответствующая стандарту
Scheme IEEE (IEEE 1990), была способна выполнять этот код.
В этом издании подчеркиваются несколько новых тем. Самая
важная из них состоит в том, что центральную роль в вычислительных
моделях играют различные подходы
ко времени: объекты, обладающие состоянием,
параллельное программирование, функциональное программирование,
ленивые вычисления и недетерминистское программирование. Мы включили
в текст новые разделы по параллельным вычислениям и недетерминизму и
постарались интегрировать эту тему в материал книги на всем ее
протяжении.
Первое издание книги почти точно следовало программе нашего
односеместрового курса в MIT. Рассмотреть весь материал, включая то,
что добавлено во втором издании, в течение семестра будет невозможно, так что
преподавателю придется выбирать. В нашей собственной практике мы
иногда пропускаем раздел про логическое программирование
(раздел~\ref{LOGIC-PROGRAMMING}); наши студенты
используют имитатор регистровых машин, но мы не описываем его
реализацию (раздел~\ref{A-REGISTER-MACHINE-SIMULATOR}); наконец, мы
даем лишь беглый обзор компилятора (раздел~\ref{COMPILATION}).
Даже в таком виде курс остается интенсивным. Некоторые преподаватели
предпочтут ограничиться первыми тремя или четырьмя главами, оставляя
прочий материал для последующих курсов.
Сайт World Wide Web \url{http://mitpress.mit.edu/sicp}
предоставляет поддержку
пользователям этой книги. Там есть программы из книги, простые
задания по программированию, сопроводительные материалы и реализации
диалекта Лиспа Scheme.\translationnote{В настоящее время (август 2005~г.)
на сайте имеется также полный текст англоязычного издания.
}
{\sloppy
}