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

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

DJVU-файл Б. Страуструп - Дизайн и Эволюция C++. 2006, страница 3 Языки программирования (3240): Книга - 7 семестрБ. Страуструп - Дизайн и Эволюция C++. 2006: Языки программирования - DJVU, страница 3 (3240) - СтудИзба2019-09-19СтудИзба

Описание файла

DJVU-файл из архива "Б. Страуструп - Дизайн и Эволюция C++. 2006", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр DJVU-файла онлайн

Распознанный текст из DJVU-файла, 3 - страница

Спасибо Кристену Найгаарду (Кг?эгеп Ь?удаагг?) и Деннису Ричи (?)епшз В?гсЬ~е) — разработчикам соответственно Б?пш?а и С, откуда я позаимствовал многие ключевые компоненты. Со временем я оценил Кристена и Денниса не только как блестящих разработчиков языков, но и как очень порядочных и симпатичных людей. Бьерн Страуструп Обращение к читателю Писательство - вто единственное искусство, которым нужно овладевать посредством писание.

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

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

Если я упоминаю некоторое событие, то стараюсь не выдавать желаемое за действительное. Там, где это уместно, приводятся цитаты из различных статей, иллюстрирующие, как разные цели, принципы или свойства языка представлялись в то время. Я не пытаюсь давать оценку прошлому с позиций сегодняшнего дня. Воспоминания о событиях и замечания по поводу последствий принятых тогда решений отделены от основного текста и помечены. Я вообще питаю отвращение к историческому ревизионизму и стараюсь этого избегать. Приведу в пример свое старое высказывание: «Я пришел к выводу, что система типов в языке Рааса! не просто бесполезна- это смирительная рубашка, которая создаст проблем больше, чем решает, заставляя меня жертвовать чистотой дизайна ради удовлетворения причуд компилятора».

Так я думал в то время, и данное мнение существенно повлияло на эволюцию С++. Было ли это резкое осуждение Разса1 справедливым и стал бы я сегодня Введение йИИИИИИИ (по прошествии более десяти лет) судить точно так же, не имеет значения. Я не могу притвориться, что этого не было (чтобы пощадить чувства приверженцев Раэса1 или избавить себя от чувства неловкости и лишних споров) или как-то пригладить свое высказывание (приведя более полную и сбалансированную точку зрения), не исказив при этом историю С++. Когда я говорю о людях, которые внесли вклад в дизайн и эволюцию С++, то по возможности уточняю, в чем именно их заслуга и когда это происходило.

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

Когда описываешь исторические события, всегда задумываешься об объективности. Неизбежную предвзятость я старался компенсировать получением информации о событиях, в которых сам не принимал участия, и беседами с другими участниками событий. Еще я попросил нескольких человек, имеющих отношение к эволюции С++, прочесть эту книгу. Их имена приведены в конце предисловия. Ну и, кроме того, статья, представленная на второй конференции по истории языков программирования 15ггоцэсгцр, 1993] и содержащая основные исторические факты, упоминаемые в этой книге, была тщательно переработана и освобождена от излишней предвзятости. Как читать эту книгу В части 1 описывается дизайн, эволюция, практика применения и процесс стандартизации С++ в относительной хронологической последовательности.

Такая схема выбрана потому, что решения, принимавшиеся в ранние годы, выстраиваются в четкую, логичную временную цепочку. В главах 1, 2 и 3 описываются истоки С++ и его эволюция от С вЫЬ С!аэзез к версии 1.0. В главе 4 излагаются правила, по которым С++ развивался в течение этого периода и позже. Главы 5, 6 посвящены соответственно хронологии разработки после выхода версии 1.0 и процессу стандартизации С++ под эгидой АХБ1/180. О перспективе развития языка говорится в 7 и 8 главах, где анализируются приложения, инструментальные средства и библиотеки. И, наконец, в главе 9 представлены ретроспективный взгляд и некоторые общие мысли о перспективах развития С++. В части П описывается разработка С++ после выхода версии 1.0.

Язык развивался в тех направлениях, которые были определены уже ко времени выпуска версии 1.0; добавление желательных свойств (к примеру, шаблонов и обработки исключений) и принципов их дизайна. После появления версии 1.0 хронологический порядок событий был уже не так важен для разработки С++. Определение языка в основных чертах осталось бы таким же, как сейчас, даже если бы последовательность реализации расширений была бы иной. То, в каком порядке решались задачи и как к языку добавлялись новые свойства, представляет лишь исторический интерес. Строго хронологическое изложение помешало бы логически естественному Обращение к читателю ШИИИИИ!1' представлению идей, поэтому в основу построения части П положено описание важнейших свойств языка.

Отдельные главы части П не зависят друг от друга, так что читать их можно в любом порядке. Глава 10 посвяшепа управлению памятью, 11 — перегрузке, 12 — множественному наследованию, 13 — уточнениям концепции класса, 14 — приведению типов, 15 — шаблонам, 16 — обработке исключений, 17 — пространствам имен, 18 — препроцессору С. Люди ждут от книги по дизайну и эволюции языка программирования разного. Не найдется двух человек, имеющих одинаковое мнение о степени детализации, необходимой при обсуждении некоторой темы. Так, все рецензии на варианты статьи, представленной на конференции НОРЕ-2, строились по одинаковому шаблону: «Статья слишком длинная... пожалуйста, уделите больше внимания темам х, у и хн И пока одни рецензенты говорили: «Исключите философскую дребедень, пусть будет побольше технических деталей», другие требовали: «Избавьте от этих утомительных деталей, мне интересна философия проектированиям Чтобы выйти из этого положения, я написал книгу внутри книги.

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

Я вовсе не хочу сказать, что они несущественны. Напротив, никакой язык программирования нельзя понять, рассматривая только его общие принципы. Без конкретных примеров никак не обойтись. Но, если изучать только детали и не представлять общей картины, можно окончательно запутаться. Стремясь облегчить участь читателя, я поместил в часть П обсуждение почти всех новых свойств языка, которые принято считать «продвинутыми». Поэтому о базовых конструкциях говорится в 1 части.

Почти вся информация о нетехнических аспектах эволюции С++ сосредоточена здесь же. Те, кто не любит «философских материй», могут пропустить главы с 4 цо 9 и сразу перейти к техническим деталям, описанным в части П. Я предвижу, что кое-кто захочет использовать эту книгу как справочный материал, а многие прочтут лишь отдельные главы, не обращая внимания на то, что им предшествует.

Такой подход тоже возможен, поскольку я постарался сделать главы по возможности замкнутыми и, как опытный программист на С++, не поскупился на перекрестные ссылки и составил подробный предметный указатель. Пожалуйста, имейте в виду, что в книге я не пытаюсь строго определить возможности языка С++. Здесь излагаются лишь подробности, необходимые для описания того, как появилось на свет то или иное средство. Я не ставлю себе целью научить программированию или проектированию с использованием С++.

Тех, кому это интересно, отсылаю к работе 12пг1]. Хронология С++ Приведенная ниже хронологическая таблица поможет вам лучше представить то, о чем говорится дальше. ХРОНОЛОГИЯ С++ Таблица ! 11ИИИИИИИ Год Событие Месяц 1979 май октябрь апрель 1980 1982 1983 январь август декабрь 1984 1985 январь февраль октябрь октябрь 1986 август сентябрь ноябрь февраль ноябрь 1987 декабрь январь июнь октябрь 1988 1989 !990 июнь декабрь март май май июль ноябрь июнь 199! июнь октябрь февраль 1992 март май март 1993 июль август 1994 Начало работы на С и!ХЬ С)аззез Готова первая реализация С чг(1П С)аззез Первый внутренний документ по С и!йб С)аззез в Ве11 (абв [81гоиз(гир, ! 980] Первая опубликованная статья по С тг11П С1аззез [81гоив1гир, ! 982] Готова первая реализация С++ С++ получил имя Вышло первое руководство по С++ Первая распространяемая версия С++ (йе(вазе Е) С!гоп! йе1еаве 1.0 (первая коммерческая версия) Вышла книга тле с++ Ргодгзтт!лд (.алдизде [81гоив1ши, 1986] Статья «выла!(вт» [81гоиз1гир, ! 986Ь] Конференция СОРЯ(А (положившая начало безудержной реклама объектно-ориентированного программирования, крутящейся вокруг Ята(йа(К) Первая коммерческая версия С(гоп! для ПК (С(гоп1 1.1, О!осхепзр(е1) С!гоп! йе)вазе 1.2 Первая конференция 08ЕМ(Х, посвященная С++ (Санта Фе, штат Нью-Мексико) Первая версия ОМ0 С++ (1.13) Первая версия Огедоп Яойиюге С++ Первая версия 2ог(есн С++ Первый симпозиум разработчиков С++ в рамках 08ЕМ1Х (Эстес Парк, штат Колорадо) С1гоп! йе1еазе 2.0 Организационная встреча комитета АМЯ( ХЗЛ 6 (Вашингтон, округ Колумбия) Первое техническое совещание комитета АМ81 ХЗЛ 6 (Сомерсет, штат Нью-джерси) Первая версия Вот(апб С++ Вышла книга тле Алло!а!ег) с++ йегвгепсе мзлиз! [Айм) Одобрены шаблоны (Сиэтл, штат Вашингтон) Одобрен механизм обработки исключений (Пало Альто, штат Калифорния) Вышло второе издание Тне С++ Ргодгагппппд (дпдиаде [2пб] Первая встреча рабочей группы 180 УУ821 (Лунд, Швеция) С1гоп1 йе)вазе 3.0 (включающая шаблоны) Первая версия ОЕС С++ (включающая шаблоны и обработку исключений) Первая версия М)сгозой С++ Первая версия )ВМ С++ (включающая шаблоны и обработку исключений) Одобрена идентификация типов во время исполнения (Портленд, штат Орегон) Одобрены пространства имен (Мюнхен, Германия) В комитете АМ81/180 зарегистрирован предварительный стандарт Обращение к читателю иаииииин Пользователь превыше всего Эта книга написана для пользователей С++, то есть для программистов и проектировщиков.

Я старался избегать запутанных и понятных лишь немногим экспертам предметов, стремясь увидеть С++, его средства и эволюцию глазами пользователя. Узкоспециальные аспекты языка обсуждаются только тогда, когда связаны с вопросами, непосредственно касающимися пользователей. В качестве примеров можно привести рассмотрение правил разрешения имен в шаблонах (см.

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