Предисловие 6 граммированию, происходит из постоянного раскрытия в голове и в компьютере все новых выраженных в виде программ механизмов и из взрыва восприятия, который они порождают. Искусство выражает наши мечты. Компьютер исполняет их под видом программ! При всей своей мощности, компьютер требователен и придирчив. Ему нужны верные программы, и то, что мы хотим ему сказать, должно быть выражено точно в каждой мелочи. Как и при всякой другой работе с символами, мы убеждаемся в правильности программ через доказательство. Самому Лиспу можно сопоставить семантику (между прочим, тоже модель), и если функцию программы можно выразить, скажем, в терминах исчисления предикатов, то логические методы позволят нам вывести формальное доказательство ее корректности. К сожалению, когда программы становятся большими и сложными, что с ними всегда и происходит, адекватность, непротиворечивость и корректность самих спецификаций становится предметом сомнений, так что большие программы редко сопровождаются полными формальными доказательствами корректности. Поскольку большие программы вырастают из малых, нам необходимо обзавестись арсеналом программных структур, в правильности которых мы можем быть уверены — их можно назвать идиомами — и научиться объединять их в структуры большего размера с помощью организационных методов, ценность которых также доказана. Эти методы подробно обсуждаются в книге, и их понимание существенно для участия в прометеевском предприятии под названием «программирование». Для умения создавать большие, значительные программы нет лучшего помощника, чем свободное владение мощными организационными методами. И наоборот: затраты, связанные с написанием больших программ, побуждают нас изобретать новые методы уменьшения веса функций и деталей, входящих в эти программы. В отличие от программ, компьютеры должны повиноваться законам физики. Если мы хотим, чтобы они работали быстро — по нескольку наносекунд на смену состояния, — электроны в их цепях не должны проходить большие расстояния (более полуметра). При этом тесно сконцентрированные в пространстве приборы излучают тепло, которое нужно куда-то отводить: так развилось изысканное инженерное искусство, призванное находить равновесие между обилием функций и плотностью расположения устройств. Так или иначе, аппаратура всегда работает ниже того уровня, на котором мы бы хотели программировать. Процессы, посредством которых наши программы на Лиспе переводятся в «машинные» программы, сами являются абстрактными моделями, которые мы воплощаем в программах. Их изучение и реализация многое дают для понимания организационных методов, направленных на программирование произвольных моделей.
Предисловие 7 Разумеется, так можно смоделировать и сам компьютер. Подумайте об этом: поведение мельчайшего переключателя моделируется квантовой механикой, которая описывается дифференциальными уравнениями, точное поведение которых фиксируется в численных приближениях, представленных в виде компьютерных программ, которые выполняются на компьютере, составленном из ... — и так без конца! Раздельное выделение трех групп явлений — не просто вопрос тактического удобства. Хотя эти группы и остаются, как говорится, в голове, но, проводя это разделение, мы позволяем потоку символов между тремя группами двигаться быстрее. В человеческом опыте с этим потоком по богатству, живости и обилию возможностей сравнится разве что сама эволюция жизни. Отношения между разумом человека, программами и компьютером в лучшем случае метастабильны. Компьютерам никогда не хватает мощности и быстродействия. Каждый новый прорыв в технологии производства аппаратуры ведет к появлению более масштабных программных проектов, новых организационных принципов и к обогащению абстрактных моделей. Пусть каждый читатель время от времени спрашивает себя: «А зачем, к чему все это?» — только не слишком часто, чтобы удовольствие от программирования не сменилось горечью философского тупика.
- Page 1 and 2: Harold Abelson and Gerald Jay Sussm
- Page 4 and 5: Эта книга посвящае
- Page 6 and 7: Оглавление 2 1.3.4. Пр
- Page 8 and 9: 4.4.1. Дедуктивный по
- Page 12 and 13: Предисловие 8 Из те
- Page 14 and 15: Предисловие 10 тост
- Page 16 and 17: Предисловие ко вто
- Page 18 and 19: Предисловие к перв
- Page 20 and 21: Благодарности Мы х
- Page 22 and 23: Благодарности 18 Дж
- Page 24 and 25: Глава 1 Построение
- Page 26 and 27: вый интерпретатор
- Page 28 and 29: 1.1. Элементы програ
- Page 30 and 31: 1.1. Элементы програ
- Page 32 and 33: 1.1. Элементы програ
- Page 34 and 35: 1.1. Элементы програ
- Page 36 and 37: 1.1. Элементы програ
- Page 38 and 39: 1.1. Элементы програ
- Page 40 and 41: 1.1. Элементы програ
- Page 42 and 43: 1.1. Элементы програ
- Page 44 and 45: 1.1. Элементы програ
- Page 46 and 47: 1.1. Элементы програ
- Page 48 and 49: 1.1. Элементы програ
- Page 50 and 51: 1.1. Элементы програ
- Page 52 and 53: 1.1. Элементы програ
- Page 54 and 55: 1.2. Процедуры и поро
- Page 56 and 57: 1.2. Процедуры и поро
- Page 58 and 59: 1.2. Процедуры и поро
- Page 60 and 61:
1.2. Процедуры и поро
- Page 62 and 63:
1.2. Процедуры и поро
- Page 64 and 65:
1.2. Процедуры и поро
- Page 66 and 67:
1.2. Процедуры и поро
- Page 68 and 69:
1.2. Процедуры и поро
- Page 70 and 71:
1.2. Процедуры и поро
- Page 72 and 73:
1.2. Процедуры и поро
- Page 74 and 75:
1.2. Процедуры и поро
- Page 76 and 77:
1.2. Процедуры и поро
- Page 78 and 79:
1.2. Процедуры и поро
- Page 80 and 81:
1.3. Формулирование
- Page 82 and 83:
1.3. Формулирование
- Page 84 and 85:
1.3. Формулирование
- Page 86 and 87:
1.3. Формулирование
- Page 88 and 89:
1.3. Формулирование
- Page 90 and 91:
1.3. Формулирование
- Page 92 and 93:
1.3. Формулирование
- Page 94 and 95:
1.3. Формулирование
- Page 96 and 97:
1.3. Формулирование
- Page 98 and 99:
1.3. Формулирование
- Page 100 and 101:
1.3. Формулирование
- Page 102 and 103:
1.3. Формулирование
- Page 104 and 105:
Глава 2 Построение
- Page 106 and 107:
изменять. Использо
- Page 108 and 109:
2.1. Введение в абстр
- Page 110 and 111:
2.1. Введение в абстр
- Page 112 and 113:
2.1. Введение в абстр
- Page 114 and 115:
2.1. Введение в абстр
- Page 116 and 117:
2.1. Введение в абстр
- Page 118 and 119:
2.1. Введение в абстр
- Page 120 and 121:
2.1. Введение в абстр
- Page 122 and 123:
2.1. Введение в абстр
- Page 124 and 125:
2.2. Иерархические д
- Page 126 and 127:
2.2. Иерархические д
- Page 128 and 129:
2.2. Иерархические д
- Page 130 and 131:
2.2. Иерархические д
- Page 132 and 133:
2.2. Иерархические д
- Page 134 and 135:
2.2. Иерархические д
- Page 136 and 137:
2.2. Иерархические д
- Page 138 and 139:
2.2. Иерархические д
- Page 140 and 141:
2.2. Иерархические д
- Page 142 and 143:
2.2. Иерархические д
- Page 144 and 145:
2.2. Иерархические д
- Page 146 and 147:
2.2. Иерархические д
- Page 148 and 149:
2.2. Иерархические д
- Page 150 and 151:
2.2. Иерархические д
- Page 152 and 153:
2.2. Иерархические д
- Page 154 and 155:
2.2. Иерархические д
- Page 156 and 157:
2.2. Иерархические д
- Page 158 and 159:
2.2. Иерархические д
- Page 160 and 161:
2.2. Иерархические д
- Page 162 and 163:
2.2. Иерархические д
- Page 164 and 165:
2.2. Иерархические д
- Page 166 and 167:
2.2. Иерархические д
- Page 168 and 169:
2.2. Иерархические д
- Page 170 and 171:
2.3. Символьные данн
- Page 172 and 173:
2.3. Символьные данн
- Page 174 and 175:
2.3. Символьные данн
- Page 176 and 177:
2.3. Символьные данн
- Page 178 and 179:
2.3. Символьные данн
- Page 180 and 181:
2.3. Символьные данн
- Page 182 and 183:
2.3. Символьные данн
- Page 184 and 185:
2.3. Символьные данн
- Page 186 and 187:
2.3. Символьные данн
- Page 188 and 189:
2.3. Символьные данн
- Page 190 and 191:
2.3. Символьные данн
- Page 192 and 193:
2.3. Символьные данн
- Page 194 and 195:
2.3. Символьные данн
- Page 196 and 197:
2.3. Символьные данн
- Page 198 and 199:
2.3. Символьные данн
- Page 200 and 201:
2.4. Множественные п
- Page 202 and 203:
2.4. Множественные п
- Page 204 and 205:
2.4. Множественные п
- Page 206 and 207:
2.4. Множественные п
- Page 208 and 209:
2.4. Множественные п
- Page 210 and 211:
2.4. Множественные п
- Page 212 and 213:
2.4. Множественные п
- Page 214 and 215:
2.4. Множественные п
- Page 216 and 217:
2.4. Множественные п
- Page 218 and 219:
2.5. Системы с обобще
- Page 220 and 221:
2.5. Системы с обобще
- Page 222 and 223:
2.5. Системы с обобще
- Page 224 and 225:
2.5. Системы с обобще
- Page 226 and 227:
2.5. Системы с обобще
- Page 228 and 229:
2.5. Системы с обобще
- Page 230 and 231:
2.5. Системы с обобще
- Page 232 and 233:
2.5. Системы с обобще
- Page 234 and 235:
2.5. Системы с обобще
- Page 236 and 237:
2.5. Системы с обобще
- Page 238 and 239:
2.5. Системы с обобще
- Page 240 and 241:
2.5. Системы с обобще
- Page 242 and 243:
2.5. Системы с обобще
- Page 244 and 245:
2.5. Системы с обобще
- Page 246 and 247:
2.5. Системы с обобще
- Page 248 and 249:
3.1. Присваивание и в
- Page 250 and 251:
3.1. Присваивание и в
- Page 252 and 253:
3.1. Присваивание и в
- Page 254 and 255:
3.1. Присваивание и в
- Page 256 and 257:
3.1. Присваивание и в
- Page 258 and 259:
3.1. Присваивание и в
- Page 260 and 261:
3.1. Присваивание и в
- Page 262 and 263:
3.1. Присваивание и в
- Page 264 and 265:
3.1. Присваивание и в
- Page 266 and 267:
3.2. Модель вычислен
- Page 268 and 269:
3.2. Модель вычислен
- Page 270 and 271:
3.2. Модель вычислен
- Page 272 and 273:
3.2. Модель вычислен
- Page 274 and 275:
3.2. Модель вычислен
- Page 276 and 277:
3.2. Модель вычислен
- Page 278 and 279:
3.2. Модель вычислен
- Page 280 and 281:
3.2. Модель вычислен
- Page 282 and 283:
3.3. Моделирование п
- Page 284 and 285:
3.3. Моделирование п
- Page 286 and 287:
3.3. Моделирование п
- Page 288 and 289:
3.3. Моделирование п
- Page 290 and 291:
3.3. Моделирование п
- Page 292 and 293:
3.3. Моделирование п
- Page 294 and 295:
3.3. Моделирование п
- Page 296 and 297:
3.3. Моделирование п
- Page 298 and 299:
3.3. Моделирование п
- Page 300 and 301:
3.3. Моделирование п
- Page 302 and 303:
3.3. Моделирование п
- Page 304 and 305:
3.3. Моделирование п
- Page 306 and 307:
3.3. Моделирование п
- Page 308 and 309:
3.3. Моделирование п
- Page 310 and 311:
3.3. Моделирование п
- Page 312 and 313:
3.3. Моделирование п
- Page 314 and 315:
3.3. Моделирование п
- Page 316 and 317:
3.3. Моделирование п
- Page 318 and 319:
3.3. Моделирование п
- Page 320 and 321:
3.3. Моделирование п
- Page 322 and 323:
3.3. Моделирование п
- Page 324 and 325:
3.3. Моделирование п
- Page 326 and 327:
3.3. Моделирование п
- Page 328 and 329:
3.3. Моделирование п
- Page 330 and 331:
3.4. Параллелизм: вре
- Page 332 and 333:
3.4. Параллелизм: вре
- Page 334 and 335:
3.4. Параллелизм: вре
- Page 336 and 337:
3.4. Параллелизм: вре
- Page 338 and 339:
3.4. Параллелизм: вре
- Page 340 and 341:
3.4. Параллелизм: вре
- Page 342 and 343:
3.4. Параллелизм: вре
- Page 344 and 345:
3.4. Параллелизм: вре
- Page 346 and 347:
3.4. Параллелизм: вре
- Page 348 and 349:
3.4. Параллелизм: вре
- Page 350 and 351:
3.5. Потоки 346 изменя
- Page 352 and 353:
3.5. Потоки 348 Потоки
- Page 354 and 355:
3.5. Потоки 350 эквива
- Page 356 and 357:
3.5. Потоки 352 prime? (cons
- Page 358 and 359:
3.5. Потоки 354 Упражн
- Page 360 and 361:
3.5. Потоки 356 (define (divi
- Page 362 and 363:
3.5. Потоки 358 можно о
- Page 364 and 365:
3.5. Потоки 360 (define s (co
- Page 366 and 367:
3.5. Потоки 362 где c —
- Page 368 and 369:
3.5. Потоки 364 (define (sqrt
- Page 370 and 371:
3.5. Потоки 366 3.14125482360
- Page 372 and 373:
3.5. Потоки 368 Наприм
- Page 374 and 375:
3.5. Потоки 370 Поскол
- Page 376 and 377:
3.5. Потоки 372 initial-value
- Page 378 and 379:
3.5. Потоки 374 . . .1 2 1.5
- Page 380 and 381:
3.5. Потоки 376 y0 map: f dy
- Page 382 and 383:
3.5. Потоки 378 dy 0 y 0 ddy
- Page 384 and 385:
3.5. Потоки 380 add scale: 1/
- Page 386 and 387:
3.5. Потоки 382 (define rando
- Page 388 and 389:
3.5. Потоки 384 при каж
- Page 390 and 391:
3.5. Потоки 386 щий сче
- Page 392 and 393:
Глава 4 Метаязыкова
- Page 394 and 395:
390 граммировании та
- Page 396 and 397:
4.1. Метациклический
- Page 398 and 399:
4.1. Метациклический
- Page 400 and 401:
4.1. Метациклический
- Page 402 and 403:
4.1. Метациклический
- Page 404 and 405:
4.1. Метациклический
- Page 406 and 407:
4.1. Метациклический
- Page 408 and 409:
4.1. Метациклический
- Page 410 and 411:
4.1. Метациклический
- Page 412 and 413:
4.1. Метациклический
- Page 414 and 415:
4.1. Метациклический
- Page 416 and 417:
4.1. Метациклический
- Page 418 and 419:
4.1. Метациклический
- Page 420 and 421:
4.1. Метациклический
- Page 422 and 423:
4.1. Метациклический
- Page 424 and 425:
4.1. Метациклический
- Page 426 and 427:
4.1. Метациклический
- Page 428 and 429:
4.1. Метациклический
- Page 430 and 431:
4.1. Метациклический
- Page 432 and 433:
4.2. SCHEME с вариациями
- Page 434 and 435:
4.2. SCHEME с вариациями
- Page 436 and 437:
4.2. SCHEME с вариациями
- Page 438 and 439:
4.2. SCHEME с вариациями
- Page 440 and 441:
4.2. SCHEME с вариациями
- Page 442 and 443:
4.2. SCHEME с вариациями
- Page 444 and 445:
4.2. SCHEME с вариациями
- Page 446 and 447:
4.3. SCHEME с вариациями
- Page 448 and 449:
4.3. SCHEME с вариациями
- Page 450 and 451:
4.3. SCHEME с вариациями
- Page 452 and 453:
4.3. SCHEME с вариациями
- Page 454 and 455:
4.3. SCHEME с вариациями
- Page 456 and 457:
4.3. SCHEME с вариациями
- Page 458 and 459:
4.3. SCHEME с вариациями
- Page 460 and 461:
4.3. SCHEME с вариациями
- Page 462 and 463:
4.3. SCHEME с вариациями
- Page 464 and 465:
4.3. SCHEME с вариациями
- Page 466 and 467:
4.3. SCHEME с вариациями
- Page 468 and 469:
4.3. SCHEME с вариациями
- Page 470 and 471:
4.3. SCHEME с вариациями
- Page 472 and 473:
4.3. SCHEME с вариациями
- Page 474 and 475:
4.4. Логическое прог
- Page 476 and 477:
4.4. Логическое прог
- Page 478 and 479:
4.4. Логическое прог
- Page 480 and 481:
4.4. Логическое прог
- Page 482 and 483:
4.4. Логическое прог
- Page 484 and 485:
4.4. Логическое прог
- Page 486 and 487:
4.4. Логическое прог
- Page 488 and 489:
4.4. Логическое прог
- Page 490 and 491:
4.4. Логическое прог
- Page 492 and 493:
4.4. Логическое прог
- Page 494 and 495:
4.4. Логическое прог
- Page 496 and 497:
4.4. Логическое прог
- Page 498 and 499:
4.4. Логическое прог
- Page 500 and 501:
4.4. Логическое прог
- Page 502 and 503:
4.4. Логическое прог
- Page 504 and 505:
4.4. Логическое прог
- Page 506 and 507:
4.4. Логическое прог
- Page 508 and 509:
4.4. Логическое прог
- Page 510 and 511:
4.4. Логическое прог
- Page 512 and 513:
4.4. Логическое прог
- Page 514 and 515:
4.4. Логическое прог
- Page 516 and 517:
4.4. Логическое прог
- Page 518 and 519:
4.4. Логическое прог
- Page 520 and 521:
4.4. Логическое прог
- Page 522 and 523:
4.4. Логическое прог
- Page 524 and 525:
4.4. Логическое прог
- Page 526 and 527:
4.4. Логическое прог
- Page 528 and 529:
5.1. Проектирование
- Page 530 and 531:
5.1. Проектирование
- Page 532 and 533:
5.1. Проектирование
- Page 534 and 535:
5.1. Проектирование
- Page 536 and 537:
5.1. Проектирование
- Page 538 and 539:
5.1. Проектирование
- Page 540 and 541:
5.1. Проектирование
- Page 542 and 543:
5.1. Проектирование
- Page 544 and 545:
5.1. Проектирование
- Page 546 and 547:
5.1. Проектирование
- Page 548 and 549:
5.1. Проектирование
- Page 550 and 551:
5.1. Проектирование
- Page 552 and 553:
5.1. Проектирование
- Page 554 and 555:
5.2. Программа модел
- Page 556 and 557:
5.2. Программа модел
- Page 558 and 559:
5.2. Программа модел
- Page 560 and 561:
5.2. Программа модел
- Page 562 and 563:
5.2. Программа модел
- Page 564 and 565:
5.2. Программа модел
- Page 566 and 567:
5.2. Программа модел
- Page 568 and 569:
5.2. Программа модел
- Page 570 and 571:
5.2. Программа модел
- Page 572 and 573:
5.2. Программа модел
- Page 574 and 575:
5.3. Выделение памят
- Page 576 and 577:
5.3. Выделение памят
- Page 578 and 579:
5.3. Выделение памят
- Page 580 and 581:
5.3. Выделение памят
- Page 582 and 583:
5.3. Выделение памят
- Page 584 and 585:
5.3. Выделение памят
- Page 586 and 587:
5.3. Выделение памят
- Page 588 and 589:
5.4. Вычислитель с яв
- Page 590 and 591:
5.4. Вычислитель с яв
- Page 592 and 593:
5.4. Вычислитель с яв
- Page 594 and 595:
5.4. Вычислитель с яв
- Page 596 and 597:
5.4. Вычислитель с яв
- Page 598 and 599:
5.4. Вычислитель с яв
- Page 600 and 601:
5.4. Вычислитель с яв
- Page 602 and 603:
5.4. Вычислитель с яв
- Page 604 and 605:
5.4. Вычислитель с яв
- Page 606 and 607:
5.4. Вычислитель с яв
- Page 608 and 609:
5.5. Компиляция 604 эф
- Page 610 and 611:
5.5. Компиляция 606 ро
- Page 612 and 613:
5.5. Компиляция 608 ((ass
- Page 614 and 615:
5.5. Компиляция 610 〈п
- Page 616 and 617:
5.5. Компиляция 612 (f
- Page 618 and 619:
5.5. Компиляция 614 Вс
- Page 620 and 621:
5.5. Компиляция 616 тр
- Page 622 and 623:
5.5. Компиляция 618 (св
- Page 624 and 625:
5.5. Компиляция 620 мо
- Page 626 and 627:
5.5. Компиляция 622 пр
- Page 628 and 629:
5.5. Компиляция 624 proc-
- Page 630 and 631:
5.5. Компиляция 626 (let
- Page 632 and 633:
5.5. Компиляция 628 (appe
- Page 634 and 635:
5.5. Компиляция 630 5.5.5
- Page 636 and 637:
5.5. Компиляция 632 вы
- Page 638 and 639:
5.5. Компиляция 634 ;; п
- Page 640 and 641:
5.5. Компиляция 636 (assi
- Page 642 and 643:
5.5. Компиляция 638 after
- Page 644 and 645:
5.5. Компиляция 640 3 4)
- Page 646 and 647:
5.5. Компиляция 642 Уп
- Page 648 and 649:
5.5. Компиляция 644 ;;;
- Page 650 and 651:
5.5. Компиляция 646 пр
- Page 652 and 653:
5.5. Компиляция 648 мо
- Page 654 and 655:
5.5. Компиляция 650 ok ;;
- Page 656 and 657:
Литература 652 University
- Page 658 and 659:
Литература 654 Guttag, Jo
- Page 660 and 661:
Литература 656 Research G
- Page 662 and 663:
Литература 658 Symposium
- Page 664 and 665:
Предметный указате
- Page 666 and 667:
Предметный указате
- Page 668 and 669:
Предметный указате
- Page 670 and 671:
Предметный указате
- Page 672 and 673:
Предметный указате
- Page 674 and 675:
Предметный указате
- Page 676 and 677:
Предметный указате
- Page 678 and 679:
Предметный указате
- Page 680 and 681:
Предметный указате
- Page 682 and 683:
Предметный указате
- Page 684 and 685:
Предметный указате
- Page 686 and 687:
Предметный указате
- Page 688 and 689:
Предметный указате
- Page 690 and 691:
Предметный указате
- Page 692 and 693:
Предметный указате
- Page 694 and 695:
Предметный указате
- Page 696 and 697:
Предметный указате
- Page 698 and 699:
Предметный указате
- Page 700 and 701:
Предметный указате
- Page 702 and 703:
Предметный указате
- Page 704 and 705:
Предметный указате
- Page 706 and 707:
Предметный указате
- Page 708 and 709:
Предметный указате
- Page 710 and 711:
Предметный указате
- Page 712 and 713:
Предметный указате
- Page 714 and 715:
Предметный указате
- Page 716 and 717:
Предметный указате
- Page 718:
Предметный указате