Главная » Просмотр файлов » Б. Страуструп - Дизайн и Эволюция C++. 2006

Б. Страуструп - Дизайн и Эволюция C++. 2006 (1160775), страница 35

Файл №1160775 Б. Страуструп - Дизайн и Эволюция C++. 2006 (Б. Страуструп - Дизайн и Эволюция C++. 2006) 35 страницаБ. Страуструп - Дизайн и Эволюция C++. 2006 (1160775) страница 352019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 35)

провалились. В результате пришлось ждать выхода версии 2.0 в июне 1989 г., и, хотя 2.0 была лучше версии 1.2 почти во всех отношениях, в ней все же не были полностью реализованы возможности, упомянутые в статье «ЮЬаг1эу» (см. раздел 3.15). Частично вследствие этого в версию 2.0 не вошли значительно улучшенные и расширенные библиотеки. Поставка такой библиотеки была вполне возможна, поскольку многое из того, что стало библиотекой Стандартных Компонентов П51.', к тому времени уже использовалось внутри АТЛЕТ.

Однако мое желание иметь прямую поддержку шаблонов заслонило все иные варианты. Кроме того, некоторая часть руководителей отдела разработки почему-то верила, что библиотека может быть стандартом и одновременно значительным источником дохода. Версия 2.0 стала плодом работы группы, в которую входили Эндрю Кениг, Барбара Му, Стэн Липпман, Пэт Филип и я. Барбара занималась координацией, Пат — интеграцией, я и Стэн — кодированием. Мы с Кенигом рассматривали извещения об ошибках и обсуждали детали языка.

Эндрю и Барбара занимались тестированием. В результате удалось реализовать все новые возможности и исправить 80% ошибок. Кроме того, я написал большую часть документации. Как всегда, вопросы проектирования языка и сопровождения справочного руководства лежали на моих плечах. Барбара Му и Стэн Липпман возглавили команду, которая позже выпустила версии 2.1 и 3.0. Версия 2.0 1ВИИИИИКИ Многие из тех, кто оказал влияние на С ш!гЬ С!аззез и на начальный вариант С+«, продолжали разными способамн содействовать его развитию. Фил Браун (РЬ!! Вгошп), Том Каргнлл, Джим Коплнен, Стив Дьюхерст, Кит Горлен (Ке!гЬ бог[еп), Лаура Иве, Боб Келли (ВоЬ Кейсу), Брайан Керниган, Энди Кениг, Арчи Лахнер, Стэн Липпман, Ларри Майка (!.аггу Мау[га), Дуг Макилрой, Пэт Филип (раг РЬ гйр), Дейв Проссер (Паче Ргоззег), Пегги Куин (Реййу г„го!по), Роджер Скотт (койег Бсогг), Джерри Шварц, Джонатан Шапиро и Кэти Старк (КагЬу Бгаг[г)— всех этих людей я с благодарностью упомянул в работе [Бггоцзггцр,1989Ь).

С наибольшим энтузиазмом язык обсуждали Дуг Макнлрой, Энди Кениг, Джонатан Шопиро и я. Стабильность определения языка и его реализации были признаны самыми важными аспектами [Бггоцзггпр, 1987с); «Подчеркнем, что эти модификации языка — лишь расширения. С++ был и остается стабильным языком, на который можно положиться при разработке долгосрочных проектов». Не менее важной считалась роль С++ как языка общего назначения для промышленного применения [81гоцзтгцр, 1987с): «Переносимосп,. некоторых реализаций С++ — важнейшая цель проектирования. Г!о»тому мы избегали расширений, которые могут существенно увеличить время, необходимое для переноса, или предъявить повышенные требования к ресурсам, нужным компилятору С++.

Этот идеал эволюции языка противостоит внешне благовидным предложениям сделать программирование болев удобным: 'ьз за счет потери эффективности или струюурирояанности; О для новичков — за счет потери единого стиля; ьз в конкретных предметных областях путем добавления в язык специализированных возможностей; ьз путем добавления возможностей, облегчающих интеграцию с конкретной средой программирования». В версии 2.0 было много улучшений, но ничего радикально нового.

В то время я, случалось, объяснял, что «все возможности 2.0, включая множественное наследование, — просто снятие ограничений, которые стали нас слишком сильно стеснять». Это одновременно и преувеличение, и сдержанный отпор общей тенденции придавать излишне большое значение каждой новой возможности. С точки зрения проектирования языка, самым важным аспектом версии 2.0 было то, что улучшилась интеграция отдельных особенностей языка С в структуру языка. Думаю, что для пользователя самыми важными аспектами новой версии были более стабильный компилятор и усовершенствованная техническая поддержка.

5.2.у. Обзор возможностей Основные возможности версии 2.0 были впервые представлены в статье [8ггопзггпр, 1987с) и подытожены в пересмотренном варианте этой статьи [Бггопзггцр, 1989Ь), которая вошла в состав документации по 2.0: 1. Множественное наследование (см. раздел 12.1). 2. Безопасное связывание (см, раздел 11.3). 3. Улучшенное разрешение имен перегруженных функций (см. раздел 11.2). Хронология 1985-1993 гг.

ПИИИИИИИ 4. Рекурсивное определение присваивания и инициализации (см. раздел 11АА). 5. Улучшенные средства пользовательского управления памятью (см. разделы 10.2 и 10.4). 6. Абстрактные классы (см. раздел 13.2). 7. Статические функции-члены (см. раздел 13.4). 8. Константные функции-члены (см. раздел 13.3). 9. Зашишенные члены с квалификатором ргосессес1 (впервые появились в версии 1.2, см. раздел 13.9).

10. Обобшенные инициализаторы (см, раздел 3.11А). 11. Инициализаторы членов базовых классов (см. раздел 12.9). 12. Перегрузка оператора -> (см. раздел 11.5.4). 13. Указатели на члены (впервые появились в версии 1.2, см. раздел 13.11). Большая часть этих расширений и улучшений отражала опыт эксплуатации С++ и не могла быть добавлена раньше. Естественно, для интеграции средств пришлось много поработать, и очень печально, что этой работе был отдан больший приоритет, чем завершению построения языка в соответствии с описанием, данным в статье «ЖЬаг)эу» (см. раздел 3.15).

В основном все указанные возможности так или иначе способствовали большей безопасности языка. В Сггопг 2.0 проверялась согласованность типов функций через границы единиц трансляции (типобезопасная компоновка), правила разрешения перегрузки не зависели от порядка и больше вызовов, чем раньше, признавались неоднозначными. Определение понятия константности (сопзс) стало более полным, указатели на члены»закрыли дыру» в системе контроля типов. Были введены операции явного распределения и освобождения памяти на уровне класса, что сделало ненужной технику чприсваивания указателю с1тйэ» (см.

раздел 3.9). Из вышеупомянутых возможностей 1, 3, 4, 5, 9, 10, 11, 12 и 13 уже использовались в Ве!1 1.аЪэ во время моей презентации на конференции 115ЕЪ)1Х в 1987 г. (см. раздел 7.1.2). 5.3. Аннотированное справочное руководство Приблизительно к 1988 г. стало очевидным, что С++ будет стандартизован [51гоцзегпр, 19891 К этому моменту уже появилось несколько независимых реализаций. Настало время составить более точное и полное описание языка. Кроме того, следовало сделать С++ широко доступным. Поначалу о формальной стандартизации никто не думал. Многие из тех, кто непосредственно участвовал в разработке С++, считали, что заниматься стандартизацией до накопления достаточного опыта работы с языком неразумно.

Однако в одиночку написать улучшенное справочное руководство я бы не смог. Необходимы были мнения и отклики пользователей. Поэтому я решил переписать справочное руководство по С++ и распространить его черновой вариант среди наиболее авторитетных и опытных пользователей во всем мире. Примерно в то же время НБЪ вЂ” подразделение АТ4 Т, которое занималось коммерческими продажами С++, — пожелало иметь новое, улучшенное справочное Аннотированное справочное руководство ЯфффффЯЩЩ руководство и поручило написать его одной из своих сотрудниц — Маргарет Эллис (Магяагег Е1! !з).

В этой связи вполне естественным казалось объединить усилия, совместно выпустить руководство и передать его внешним рецензентам. Мне также представлялось очевидным, что публикация такого труда с некоторой дополнительной информацией будет способствовать принятию нового определения и широкому распространению С++ в целом. Вот так появилась книга «ТЬе Аппогагег[ С++ Ке[егепсе Маона]» [АКМ] — «Аннотированное справочное руководство по С++».

Вот несколько строк из нее: «...чтобы заложить твердые основы дпя дальнейшей эволюции С++... [и] стать отправной точкой для его формальной стандартизации... собственно справочное руководство по Се+ н является полным определением языка, но сжатый стиль такого рода документов оставляет многие вопросы без ответа. Обсуждение того, что нв входит в язык, почему те или нные средства определены именно так, а не иначе, и как можно было бы реализовать различныв возможности, остается за ромками справочного руководства, но тем не менее представляет интерес для большинства пользователей. Такив замечания приводятся в аннотациях и комментариях.

Комментарии также помогут читателю разобраться во взаимосвязях между разными частями языка. В них подчеркнуты те моменты и последствия, на которые можно было бы нв обратить внимания при чтении самого руководства. Примеры и сравнения с языком Сделают книгу более легкой для чтения, чем сухое справочное описание». После ряда мелких стычек с людьми, отвечавшими за выпуск книги, было решено, что мы включим в АКМ (так в обиходе называлась «ТЬе Аппогатег] С++ Ке[егепсе Мапца1») полное определение С+«, с шаблонами и обработкой исключений, а не только определение подмножества, реализованного в последней версии АТбгТ. Тем самым постулировалось, что язык как таковой отличается от любой его конкретной реализации.

Об этом заложенном с самого начала принципе приходилось часто напоминать, поскольку пользователи, разработчики компиляторов и продавцы никак не могли его запомнить. На само справочное руководство были получены рецензии примерно от ста человек из двух десятков организаций. Имена большинства из них указаны в разделе благодарностей АКМ. Кроме того, многие внесли свой вклад в содержание АКМ. Особо хочу отметить помощь Брайана Кернигана, Эндрю Кенига и Дуга Макилроя.

Часть АКМ, составляющая собственно справочное руководство, была принята за основу стандарта АХБ! С++ в марте 1990 г. В АКМ не рассказывается о приемах, поддерживаемых языковыми средствами: «эта книга не ставит себе целью научить программированию на С++; в ней объясняется, что такое язык, а не как им пользоваться [АКМ]». Рассказ об использовании С++ был отложен до выхода второго издания книги «Язык программирования С++» [2пг]]. К сожалению, некоторые проигнорировали это предупреждение.

В результате С++ часто воспринимают как набор непонятных и не связанных между собой деталей, а потому и не могут написать на нем красивой и легкой для сопровождения программы (см. раздел 7.2). 5.3Л. Обзор АНМ В АКМ представлены некоторые не очень существенные возможности, которые были реализованы только в версии 2.1 от АТбгТ и в более поздних компиляторах других производителей.

Самая очевидная возможность — вложенные классы. ПИИИИИИИИ Хронология 1985 — 1ЯЯЗ гг. Все описанные в АВМ возможности, кроме исключений, получили широкое распространение вместе с версией С(гоп1 3.0 в октябре 1991 г. Полная реализация возможностей„упомянутых в АКМ, впервые появилась в компиляторах фирм 1)ЕС и 1ВМ в начале 1992 г.

Характеристики

Тип файла
DJVU-файл
Размер
2,78 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее