Т. Пратт, М. Зелковиц - Языки программирования - разработка и реализация (4-е издание_ 2002) (1160801), страница 2
Текст из файла (страница 2)
316 . 318 . 319 . 321 325 ,327 330 331 .. 332 . 332 333 .334 ..., 343 . 348 348 .... 354 . 363 .... 367 . ЗБ8 .369 373 .378 379 .... 381 ... 381 .... 384 ...... 384 386 ........ 393 ........ 395 ........ 397 ........ 398 ........ 404 ....... 407 ........
409 ...., 415 ....... 416 ....... 418 ....... 422 ........ 424 ...,... 435 ......., 439 ........ 443 ..... 451 ........ 452 .. 459 ...... 460 ..... 462 ...... 463 Содержание 10.4. Управление кучей ... 10.4.1. Обзор языка 1.1ВР .. 10.4.2. Элементы фиксированного размера . 10.4.3. Элементы переменного размера . 10.5.
Рекомендуемая литература 10.6. Задачи и упражнения . Глава 11. Распределенная обработка данных 11.1. Различные варианты управления подпрограммами 11.1.1. Исключения и обработчики исключений. 11.1.2. Сопрограммы 11.1.3. Планируемые подпрограммы., 11.2. Параллельное программирование 11.2,1. Параллельное выполнение 11.2.2. Охраняемые команды .... 11.2.3. Обзор языка Ат!а 11.2.4.
Задачи .............. 11.2.5. Синхронизация задач . 11.3. Развитие аппаратной части компьютера 11.3.1. Конструирование процессоров 11.3.2. Конструирование систем . 11.4. Архитектура программного обеспечения . 11.4.1. Сохраняемые данные и системы транзакций 11.4.2. Сети и клиент-серверные вычисления 11.5. Рекомендуемая литература 11.6. Задачи и упражнения.
Глава 12. Сетевое программирование. 12.1. Настольные издательские системы 12.1.1. Подготовка документов в !~ТЕХ 12.1.2. УУУВ!УУ!О-редакторы . 12.1.3. Ров1зспр1 . 12.1.4. Виртуальная машина Розтзсг!р1 12.2. Всемирная паутина чУУУУч' . 12.2.1. Интернет. 12.2,2. Сценарии СО! 12.2.3. Апплеты Зача. 12.2,4.
ХМ1.. 12.3. Рекомендуемая литература 12.4. Задачи и упражнения. Приложение. Обзоры языков. П.1. Ас!а П.2. С П.З. С++ . П.4. ЕОВТВАН П. 5 ..!АЧА П.б. ! 1ЬР. П.7. М1 П.8. Равса1 .. П.9. Реп П.10. Роз1зспр1 П,11. Рго!о9 .. П.12. Вгпа!!та!К ... П,13. Рекомендуемая литература .. Библиография Алфавитный указатель . .464 . 465 .
467 . 474 . 478 . 479 авз .483 .484 .489 .491 .493 .495 .496 .499 .. 502 504 516 517 521 ...... 523 523 525 527 527 530 532 532 535 536 536 542 542 555 .558 561 562 562 564 564 581 592 ...... 60 1 . 6 1 1 .. 61 6 . 624 . 635 645 649 ...,.. 653 ....
659 .667 669 675 От издательства Время сжимается под прессом цивилизации. Для того, чтобы Платона признали классиком, потребовались века. Диккенса — столетие. Лвторы же произведений, которые будут выходить в нашей серии «Классика со1прнгег эс1спсе», — в большинстве своем достаточно далекие от старости люди. При этом вряд ли кто-нибудь смоькет возразить против причисления Теренса Пратта, Эндрю Таненбаулга и Брюса Шнайера к настоящим классикам компьютерной литературы. Возможно, название серии будет резать слух ревнителям чистоты языка, но они должны понять нас: мы оказались в ситуации, когда, как писал Габриель Маркес, «еще пе все вещи имеют евон имена».
Русский эквивалент фундамент иьной, основополагающей части всех компьютерных и информационных технологий, называемой «сошросег пенсе», пока не найден. Кроме того, помещение в название серии слов из разных языков символично отражает национальную пестроту и разноязычие всего компьютерного сообщества. Большинство книг компьютерной литературы устаревает, пе дождавшись обшарпывания обложки: стремительные смены технологий ставят крест на нх актуальности. И лишь некоторые из них известны всем поколениям — от зубров программирования до делающих первые шаги «ламеров».
Они переиздаются цз года в год и над их текстами постоянно идет работа. Фундаментальность, научность н непреходящая актуальность стали для них замечательным средством от старения. И еще — простой и понятный стиль изложения, ибо, перефразируя Воннегута, «шарлатан тот, кто не может простыми словами объяснять, чем занимается .. В работе над книгами серии «Классика сошригсг зс1епсе» заняты лучшие силы компьютерной редакции издательства, и мы надеемся, что их труд будет затрачен не напрасно. Ваши замечания, предложения, вопросы отправляйтс по адресу электронной почты сошргтрЫег.сов (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение! На шеЪ-сайте издательства Ъйр://вь«»».рог.сош вы найдете подробную информацию о наших книгах, рркоеодатель проекта А. Вас~и»ее Предисловие научного редактора перевода В книге известных американских спепиалистов в области языков программирования Т.
Пратта и М. Зелковица рассматриваются общие концепции разработки н реализации языков программирования. В ней также изложены основы формальных грамматик и конечных автоматов — математических моделей, используелгых для определения и реализации языков программирования. Это именно те вопросы, которыми обязан нладеть высококналифициронанный программист, так как их знание и понимание позволяют ему создавать более производительные и устойчиные к ошибкам программы. В США эта книга выдержала четыре издания (перное появилось н 1975 г.).
Столь долгая жизнь книги объясняется просто — каждое новое издание отражало появлявгниеся я период мех<ду ними новые идеи и конпепции обработки информации, находившие свое отражение в свойствах соответствующих языков программиронания, причем в этом отношении показателен интервал между выходом очередных изданий книги: если первые три издания появлялись приблизительное десятилетним перерывом, то между третьим и четвертым прошло всего пять лет. Перевод первого издания книги (тогда только одного антора — Т. Пратта), осуществленный н 1979 г. издательством «Мир», хорошо известен российским специалистам, которые в конце 70-х — начале 80-х гг, прошлого столетия работацп1 н области компьютерных технологий. Следует отметить, что на основе этой книги были разработаны учебные курсы по общей теории языков программирования и методов трансляции не только в американских университетах, но и н отечественных вузах, что способствовало подготовке высококвалифицированных специалистов в области информационных технологий.
К сожалению, н силу ряда объективных причин уровень подготовки специалистов н области информационных технологий в нашей стране резко упал, в том числе и в связи с отсутствием учебной литературы, которая бы отражала изменения, происходящие н области разработки языков программирования. В сегодняшнцх унннерситетах студентам чаще преподают навыки программирования ца конкретных языках программирования (то есть их синтаксис), а общие вопросы семантики языков программиронания и проблемы их разработки и реализации остаются в стороне. Появилось целое поколение молодых программистов, не имеющих представления ни о математических моделях, лежащих в основании языков программирования, ни о методах и способах их реализации.
Появление перевода очередного издания книги Т. Пратта и М. Зелконица, н которой отражено влияние самых последних новаций в области информационных 12 Предисловие научного редактора перевода технологий на идеологию языков программирования — широко используемой в настоящее время объектно-ориентированной парадигмы, большую ориентацию программных систем на обработку документов, распределенное и сетевое программирование, включая Интернет, и др., — сможет восполнить существующий в отечественной учебной литературе дефицит добротных книг из области общей теории языков программирования и разработки их трансляторов. Изложение материала в книге не привязано к какому-то конкретному языку программирования, хотя предполагается, что читатель знаком хотя бы с одним процедурным и с одним объектно-ориентированным языком.
Для иллюстрации обсуждаемых свойств используются конструкции того языка программирования, в котором эти свойства реализованы в наиболее полной степени. В приложении, составляюшем одну шестую объема всей книги, приведено краткое описание двенадцати наиболее распространенных в настоящее время языков программирования, конструкции которых и используются на протяжении всей книги в качестве иллюстраций к излагаемым свойствам языков программирования, Так что в случае если читатель не знаком с синтаксисом какого-либо языка, он всегда может обратиться к приложению для первоначального знакомства с неизвестным ему языком программирования.
На основе этой книги может быть разработан хороший учебный курс по языкам программирования и методам трансляции, тем более что каждая глава завершается большим количеством упражнений. Каждый программист просто обязан ознакомиться с материалом этой книги, если он желает повысить свой рейтинг и продвинуться по служебной лестнице. В заключение стоит отметить, что в русском издании устранены не только те неточности и опечатки, список которых был любезно предоставлен авторами, но и те, что встретились при переводе и редактировании книги. А. Митросов Предисловие к русскому изданию Русский перевод четвертого издания книги «Ргоягатш!пя Г.апйнайез: 1)ез!Кп апд 1п»р1ешепгайоп» продолжает традицию, начатую в предыдущих изданиях, — при описании языков программирования основное внимание уделяется программным и аппаратным архитектурам, необходимым для выполнения программ, написанных на этих языках.
Наличие этой информации помогает программисту создавать более эффективные программы и уменьшает количество ошибок. По сравнению с третьим изданием мы усовершенствовали этот подхол, а также внесли ряд улучшений в представление лежащих в основе рассматриваемых архитектур теоретических и формальных моделей, формирующих базис для решений, принимаемых при разработке этих языков. В настояшем издании исправлены некоторые ошибки, обнаруженные в исходной английской версии книги. Языки программирования рождаются, стареют и умирают, а вопросы их архитектуры по-прежнему активно обсуждаются в среде специалистов по информационным технологиям.
В 4-м издании представлены важнейшие языки начала ХХ1 века. К числу языков, описанных в 3-м издании, добавились Роз!вепрь, !ача, НТМ1. и Рег1, что обусловлено растущей популярностью программирования лля Мог!г1 Ю!с!е '»»'еЬ. Рааса(, РОКТКАХ и Аг)а отошли на второй план, поскольку эти языки постепенно отмирают; вероятно, они будут исключены из будущих изданий книги. Структура книги соответствует учебному курсу, который более 30 лет преполается в университете штата Мэриленд. При чтении этого курса предполагается, что студент уже знаком с С, !ага или С++, поэтому особое внимание уделяется языкам 5ша1!ьайг, М1, Рго!оя и 1.15Р, а также углубленному изучению различных аспектов реализации С++. Изучение С++ расширяет знания студентов в области процедурных языков с дополнениями в виде объектно-ориентированных классов, а знакомство с 1.15Р, Рго!ой и М1 позволяет провести сравнительный анализ разных парадигм программирования.