Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 4
Текст из файла (страница 4)
специаэьных форм. ф|нкциональных форм и привел«но несколько примеров простых ф|нкций. написанны| на этом языке. Лля иллюстрации разновилиостей языков ф| нкционального програччироязния кратко описаны языки СОМ!|!0.| 1.!БР. М1. и Наз! е!!. Завершается глава сравнением ф| икиионаэьных и императивных языков програчмирования. Темой главы 15 является логическое програччирование и языки логического пргжрамчирования. Глава начинается с ввеления в исчисление преликатов и объяснения и| использования для доказательства теорем.
Затем слеьет обзор логического програчмирования. Основная часть главы посвяшена язык| Рго1о8. в частности. резолюции и |нификации. а такгке содержит н«- сколько примеров програчм с подробными описаниями их работы. Изменения, внесенные в пятое издание Пятое излаиие данной книги подверглось значительной перераоотке и исправлению по сравнению с предыдущими. Большинство изменений было вьпвано раст|шич влиянием ооъектно-ориентированной парадигмы программирования.
Важнейшие из слеланных изченении описаны в след> юшнх абзаца|. 19 Предисловие Нарушая тралицию, поддерживаемую первыми изданиями данной книги и большинством других книг, посвященных языкам программирования, в пятое издание ие входит глава, посвященная объектно-ориентированным языкам программирования.
Книга содержит главу, посвященную языковой поддержке объектно-ориентированного программирования, в частности, в нед рассматриваются наследование и динамическое связывание. Эта глава была переставлена на более подходящее лля нее место — сразу после главы, посвященной абстракции данных, и стала главой !1. Глава была существенно увеличена за счет всестороннего обсуждения вопросов разработки объелгно-ориентированных языков программирования, что создало основу для описания и оценки различных языковых конструкций, обеспечивающих наследование и динамическое связывание. Две основные причины, обусловившие выбор этого нового подхода, заключаются в слелчюшелн во-первых, в настоящее время появилось огромное количество объектноориентированного программного обеспечения, создаваемого на языках, полобных императивным языкам последних четырех десятилетий.
Выражения, операторы присваиванию, структура ланных н управляющие структуры этих языков очень похожи на соответствующие структуры языков С и Рааса!. Следовательно, нет причин отдельно обсуждать указанные свойства этих языков. Согласно нашему определению императивного языка языки С++, Ада 95 и !ача являются императивными. Мы рассматриваем поддержку объектноориентированного программирования данными языками как начало следующей стадии развития императивных языков программирования.
В то время как парадигма развития объектноориентированного программного обеспечения значительно отличается от процедурной парадигмы. различия между языками, относящимися к данным двум подходам, не столь значительны. В то же время различия л~ежду такими языками, поддерживающими информационно- ориентированное программирование, как Ада 83. и языками. поддерживающими объектноориентированное программирование, менее заметны. Второй причиной изменения подхода к обсуждению объектно-ориентированных языков программирования является то, что эта парадигма уже не такая новая и экспериментальная, какой была несколько лет назад. В современных разработках программного обеспечения этот подход доминирует, н используемые лля этой цели языки программирования являются самыми распространенными на данный момент языками.
Слеловательно, в книге не стоит обсужлать объектно-ориентированные языковые функции в одноЯ главе, к тому же расположенной в конце книги, — подход, до сих пор используемый по отношению к языкам логического программирования. Эту информацию легко можно подать в большинстве глав книги, что и было сделано в пятом издании. Кроме указанных, были внесены еше некоторые изменения.
Появление языка Зача и быстрый рост его популярности потребовал дополнительного увеличения материала книги за счет описания некоторых его интересных сводств. В частности, обсуждение поддержки объектноориентированного программирования в языке 3ача было добавлено в главу 11, возможность параллельного функционирования — в главу 12, а обработка исключительных ситуаций — в главу 13. Кроме того, в начальные главы книги добавилось обсужление еще нескольких его функций. Поскольку язык М!твида запатентован, в то время как язык Наз1сеН обшедосгупен, обсуждение языка М!галдя было удалено из главы 14 и оставлено только описание языка НазКеП. В пятом издании вновь был расширен раздел главы 3, посвященный описанию аксиоматической и ленотационной семантики.
Из-за введения в книгу описания новых языков и новых свойств старых языков обсуждение старых языков было сокращено. Например, был удален материал о сопрограммах языка Модо!а-2 и его поддержке абстрактных типов данных. Текущее состояние развивающихся языков программирования отражают лругие многочисленные изменения, незначительные по объему. 20 Предисловие Указания преподавателю При преподавании языков программирования на младших к>рсах университета штата Когзло в Колорадо-Спрингс ((!пигегмВ оГ Со)огабо аг Со!огабо Брг!пйз) ланная книга исполь. ст:я следуюшим образом: главы 1 и 3, как правило.
рассматриваются подробно. На глав> -с; лержашую трудной для восприятия технической информации. отволится совсеч нечно" лекционного времени. Тем не менее. студенты находят эт> главу интересной и полезной. .:зк указывалось ранее, глава 2 может быть просто прои>шепа. поскольгб она не содержит териаза. необходимого лля понимания послед>юших глав. Главы 4 — 8 и глава 1О должны относительно легко восприничаться ст>денгами. ичеюши>ольшой опыт работы с языками Рааса).
С. С вЂ” или Аба. Главы 9. 11. 12 и 13 оолее ело;к-- и трео>ют обстоятельных лекций. Главы 14 и 15 являются совершенно новыми лля большинства ст>лентов члалших к> рсоа. ги объяснении этих глав идеачьныч было бы наличие языковых процессоров лля языков сЬеше и Рго)ой. Кролге того. в эти главы включено достаточно материала лля того. чтобы г Эденты могли повозиться с простыми програчмачи. Студенты.
вероятно. не счогуг усвоить последние лве главы во всех деталях. Олнако аспиранты могут сразу приск>пать к обе>жлению неичперативных языков програччирования. -гоп>стив части начальных глав. относяшнеся к императивныч языкам. Приложения В книгу включены два важных и полезных приложения. Электронный учебник с решечлччи упрвкнений можно получить у торгового прелставителя издательства "Абб)зоп-'и'ез!е> 'зо!!зЬ!п8". Также доступен набор диапозитивов к лекш|ям (по олноч> на квжд>ю из первых ': глав), нмеюший формат файлов источника программы и!сгозой Ромегро!пг. Автор созлаз ж за последние несколько лет чтения курса лекций по предлагаемой книге.
Файлы в формате -лограчмы Розчегро)пг моягно получить с почошью анонимного йр-лостзпа на >зле хр.ач.сош в каталоге /сзепй~ац(ЬогьзеЬаз(асопсергзле. Подробнее об эточ и лр>пгх прило кеьиях вы можете узнать из файлов КЕАОМЕ или лпсязайе. нахоляшихся в указанном каталоге. Доступность языкового процессора Процессоры для работы с некоторыми из обсуждаемых языков програччирования и инрчацию об этих языках вы можете найти на слелуюших (УеЬ->злах: язык Зава — узел Ьпр://)ачаашп.согп язык Наз)ге)1 — узел Ьпр://Ьаьйей.огй язык Бсйеше — узел Ьпр://чзчш-зч!зз.а!лпп/()рб)г зсйегпе-7.4/ Обновленные версии можно найти на домашней странице данной кннгш Ьп р://мчпч.ач 1.Сов/сзеп8/(1( )ез,'0-201-38596-1/ Благодарности Качество этой книги было значительно улучшено благодаря большому количеству предчоьени(ь уточнений и комментариев ее рецензентов.
Рецензентаьги первых четырех изланий книги бьши Вики Алаи (Ч)с)ц Айап), Генри Бауэр (Непгу Вацег), Питер Бра>эр (Регег Вгоцчег). Паошенг Чанг (Раоьйепй СЬап8). Джон Креншоу ()оЬп Сгепзйаж). Барбара Энн Грич (ВагЬага Апп Опеш), Мери Лоу Хват (Магу Еоц Наай). Джон Мауни ()оп Мацпеу). Роберт Мак-Коарл (КоЬец 21 Предисловие А )сС оагг(). Майкл Л к Х!ерфи (А Псйе) О. Мцгрй«). Энлрю Оллройл ( Апдге)ч ОЫгоуг)), Лжеффри Иг пяк (.)сГГсп Рор«асС).
Гтивен Рапкии (кйсчеп РарЫп), Гач ыьтон Ричард (Напийоп )С(сйагг(). ! оч С'ейлжср (Тош Кадаг). Лжоэеф Н!елл (!оэерЬ 5сйеП) и А!эри Луиза Соффа (Ма)у Ьоц)эе 5г1! 1))).! 1ятое иэланис рецензировали ° М)ри Ло«Кааг (Май«1хш Наай). «ниверситст штата Колорадо в Колорадо-Спрингс (С.п(Асам(«оГГо(огадо а( Со)ога))о 5ргшсь). ° Кайкью Ко (НП «оо Кой). «ниверситет Ьшпаг Спгчегмп: ° Ьрюс А)аксич ~Вгцсе Мах(гп). «ниверситет штата Мичиган в Лебонс (С)п!чсгя(ту оГ Айсй!кап а( ОеагЬогп и ° Л. В ~зрю Оллройз (1. Впдгсж ОЫго«0). Вашинггонскнй университет (%аявпйгоп 1 ппегчп).
° Рсб)слкгг Парсонс (йеЬесса Рагяопя). «ниверсигш С(снтрапьной Флориды (Сйичегяйу оГ С шита( Г Ыпйа): ° .'(он Ьагсрг (Ооп Вайеп). Технический университет штата Техас (Техая Тесйпюа) (.и~эсгй(э). Мшп С«арсэ-Ривас (Маце 5цагег-В!таэ), редактор. Молли Тейлор (Мойу Тау!ог), помошник рсллклоргг. и 11ат К«кабан (Раг СпцЬцп). техншгеский редактор. эаспужили мою пригна)с ьгюшь эл их «силка, направленныс на бью)рый выход пятого издания книги, а также эа инчон) ь в «:и чи)ег)ии этого издания по сравнению с презыд»цич. В юкшо нише автор олагозарит своих детей — - Д койка (!а) е) и Лара) (Оагс!е) эа их терис.,ив с 'пк шснис к о) с«тствию отца. провозив~пего оесконсчные часы в работе над пятым и ьшнисч )энной кнш и. Об авторе )Ьк с)1) С'сбесга (КоЬсп 5ейежа) является ассошшрованиым профессором и зсканом фаь«.птсг)г ьочпьнперных иа«к «ниверситста штата Колоразо в Колорадо-Спрингс.