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

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

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

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

Предоставление в токих случоях списка аргументов показалось достаточно разумным, чтобы побороть антипатию к включению еще одного «средсгво». Они позволяли сделать объявление с 1 а в в более кротким и похожим но объявление всгцсс». Что не реализовано в С и(!Ф С!аззев МИИИВИИИ Вот пример: «Можно объявить список ори(ментов па умолчанию для функции п пи ( ) . Затем этот список будет использоваться всякий раз, как абьект класса создается без указания аргументов.

Так, при наличии объявления с1авв с)тат влас)к ( уатк) пен(тле=512); объявление с1авв с(тат всасх в3; допустимо, при этом вЗ инициализируется вызовом вз.пеи(512)». При наличии общего механизма перегрузки функций (см. раздел 3.6 и главу 11) аргументы по умолчанию становятся логически избыточными и в лучшем случае обеспечивают небольшое удобство нотации. Однако списки аргументов по умолчанию существовали в С ту!й С!азвез много лет, прежде чем в С++ появилась перегрузка. 2.13. Что не реализовано в С и!Ф С!азиз Ряд возможностей, которые позднее были включены в С++ или обсуждаются до сих пор, рассматривались уже во время работы над С ту(й С!аззек Среди них— виртуальные функции, статические члены, шаблоны и множественное наследование. Однако «у всех этих обобщений есть свои области применения, но для проектирования, реализации, документирования и обучения каждой «особенности» языка требуются время, силы и опыт...

Концепция базового класса — это инженерный компромисс, как и вообще концепция класса в С !Ятгоцвтгор, 1982Ь!». Я специально упомянул, что приобретение опыта было необходимым. На этом разговор о вреде включения избыточных возможностей и о пользе прагматического подхода можно считать исчерпанным. Возможность включения автоматического сборщика мусора несколько раз рассматривалась и до 1985 г., но была признана неподходящей для языка, который использовался в системах реального времени, и для программирования низкоуровневых системных задач, вроде написания драйверов аппаратных устройств.

В те дни сборщики мусора были не такими совершенными, как сейчас, а нынешние мощности процессоров и обьем памяти просто несравнимы с прежними. Личный опыт работы с 5!пш!а и отчеты о других системах, где имеется сборка мусора, убедили меня, что эта технология неприемлема в системах, которые разрабатывали я и мои коллеги. Ксли бы в определении С ту(тй С!аьвез (и даже С++) требовалось наличие автоматической сборки мусора, то язык был бы более изящным, но «мертворожденным», Обсуждалась и прямая поддержка параллельности, но я отказался от этой идеи в пользу библиотечной реализации (см. раздел 2Л).

ИВИИИИИВ Язык С втг1Ф С1аввев 2.14. Рабочая обстановка С ту1гЬ С!ахваз был спроектирован и реализован в рамках исследовательского проекта в Центре исследований по вычислительной технике компании Вей?лЬэ. Для такой работы этот центр предоставлял — и до сих пор предоставляет — уникальную обстановку. Здесь мне предложили «заняться чем-нибудь любопытным», выделили достаточные компьютерные ресурсы, всячески поощряли общение с интересными и знающими людьми и дали год па то, чтобы представить на рассмотрение плоды своих трудов. Одной из составляющих корпоративной культуры Центра было предубеждение против «больпшх замыслов», требующих более одного-двух человек, против «грандиозных планов», в том числе передачи непроверенных бумажных проектов для реализации другим людям, и против разделения на проектировщиков и копировщиков.

Если вам это по душе, то и в Ве!1 ЕаЬж и в других местах вы найдете немало возможностей для приложения сил. Однако в Центре исследований по вычислительной технике прямо требовалось, чтобы вы (если це заняты теоретическими исследованиями) лично реализовывали задуманное, воплощали свои идеи и находили пользователей, которым зто пригодилось бы. Обстановка очень способствовала такой работе, в Вей 1лЬз было достаточно творческих людей, хватало и вопросов, ждущих своего решения. Поэтому я считал себя вправе написать так [8ггоцэггцр, 19861: «Никогда не существовало дизайна С++ на бумаге; проектирование, документирование и реализация проходили одновременно. Естественно, внешний интерфейс С++ написан на С++ Не было никогда ни «проекта С++», ни «комитета по проектированию С++».

Только после признания данного языка начали возникать обычные организационные структуры, но даже тогда именно я официально отвечал за справочное руководство, за мной было последнее слово по поводу всего, что в него включалось. Так продолжалось до начала 1990 г., когда эта обязанность была передана комитету АХ81 по С++. Как председатель рабочей группы по расширениям в составе комитета по стандартизации, я по-прежнему несу прямую ответственность за все новшества в С++ (см. раздел 6А).

С другой стороны, лишь несколько первых месяцев я мог заниматься дизайном просто нз эстетических соображений и вносить в язык произвольные изменения. Позже каждое языковое средство необходимо было формально реализовывать, а любое изменение или добавление требовали нс просто согласия, а чаще всего энергичного одобрения со стороны основных пользователей С цг!1Ь С!аззез, а потом и С++.

Поскольку никакого гарантированного сообщества пользователей не было, то сам язык и компилятор могли выжить только при условии, если бы понравились пользователям настолько, чтобы те устояли перед естественной тягой к проверенным временем языкам и не поддались рекламным обещаниям относительно новых. Даже мельчайшая несовместимость должна была компенсироваться куда большей выгодой для пользователей, поэтому серьезные несовместимости не вводились в язык даже в начале его существования. Поскольку пользователь склонен считать серьезной любую несовместимость, я оставлял только такие, без которых было никак не обойтись.

И только при переходе от С ту)й С1аэзеэ к С++ было решено пойти на то, что многие старые программы перестанут работать. Рабочая обстановка ПИИИИИИП Отсутствие формальной организационной структуры, крупномасштабной поддержки — финансовой, кадровой, маркетинговой — более чем компенсировалось неформальной помощью со стороны моих коллег и единомышленников из Центра исследований по вычислительной технике и той защитой от нетехнических требований со стороны организаций, курирующих разработки, которую обеспечила мне администрация Центра.

Если бы не помощь и дружеская критика сотрудников Центра, дизайн С++ уступил бы веяниям моды и интересам отдельных групп, а его реализация увязла бы в бюрократической трясине. Важно и то, что здминистрацня Ве!1 1лЬз создала такую обстановку, где не было нужды утаивать свои идеи ради личной карьеры. Наоборот, дискуссии всегда велись свободно и каждый извлекал из идей и мнений других пользу для себя. Жаль, что даже внутри компании Центр исследований по вычислительной технике — скорее, исключение, чем правило. С пчгЬ С1аззез развивался в ходе обсуждений с сотрудниками Центра и первыми пользователямн как внутри него, так и в других подразделениях Ве11 1лЬз. Я спроектировал меньшую часть С ийЬ С1аззез и С++, рождением большей мы обязаны многим другим специалистам.

Немало идей отвергалось, если они были чересчур сложными, малополезными, слишком трудными для реализации или для обучения, недостаточно эффективными с точки зрения быстроты действия или памяти, несовместимыми с С или просто странными. Реализовывалось лишь очень немногое, да и то после обсуждения не менее чем с двумя специалистами. Обычно в ходе работы, тестирования и использования идея видоизменялась. Новый вариант предлагался более широкой аудитории, затем еше немного модифицировался и, наконец, пролагал дорогу к официальной версии С пчгЬ С!аззез, поставляемой лично мной.

Важным инструментом проектирования считалось составление руководства, поскольку если что-то не удавалось легко объяснить, то и поддерживать было бы слишком утомительно. Я об этом никогда не забывал, потому что в то время, образно говоря, сам был центром технической поддержки. Значительное влияние на меня оказал Сэнди Фрэзер (Банду Егазег), начальник моего отдела. Так, я считаю, что именно он уговорил меня отказаться от определения классов в духе З1шп!а, где включается полное определение каждой функции, и перейти к стилю, подразумевающему, что определения функций находятся в другом месте, а за счет этого усилить роль объявления класса как интерфейса. Многое в С тч!гЬ С!аззез было сделано для того, чтобы упростить построение симуляторов, которые применялись в работе Сэнди Фрэзера по проектированию сетей.

Первым реальным приложением С пчгЬ С!аззез как раз и был такой симулятор сети. Еще одним из пользователей С тт!гЬ С!аззез, оказавшим немалое влияние на его развитие, был Садхир Агравал (Зпс1Ь1г Аягатга!), также занимавшийся моделированием сетей. В решении вопросов дизайна и реализации С пчгЬ С!аьвез часто принимал участие Джонатан Шопиро, который занимался «потоковой машиной баз данных». Дискуссии по общим вопросам языков программирования, не касающимся конкретных прикладных задач, я вел с Деннисом Ричи, Стивом Джонсоном и в особенности с Лугом Макилроем.

Влияние последнего на разработку С и С++ нельзя переоценить. Не помню ни одного по-настоящему важного проектного решения в С++, которое я бы обстоятельно не обсудил с этим человеком. Естественно, не ИИИИИИИИ Язык С вц!Ф С1аззез всегда мы соглашались друг с другом, но и по сию пору я очень неохотно принимаю решения наперекор мнению Макилроя. Почему-то выходит так, что он всегда оказывается прав и при этом обладает бездной знаний и терпения.

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

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

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

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