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

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

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

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

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

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

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

Я предпочитаю медленно — иногда очень медленно — убеждать людей попробовать новые приемы и принять на вооружение те, которые отвечают их нуждам и склонностям. Сушествуют эффективные методы «обрашсния в другую веру» и «совершения революции», но я нх боюсь и сильно сомневаюсь, что они так уж Немного об авторе книги 116 ИИИИИП эффективны в длительной перспективе и по большому счету. Часто, котла кого-то легко удается обратить в религию Х, последуюшее обращение в религию У оказывается столь же простым, а выигрыш от этого эфемерный.

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

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

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

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

Если так произошло со мной, примите извинения, но мне хотелось обьяснить свои интеллектуальные пристрастия, и лумаю, что это безвредно — ну, почти безврелно. Да, кстати, мои литературные вкусы не ограничиваются только произведениями вышеназванных авторов, просто именно они повлияли на создание С++. Глава 2. Язык С ~мИЬ С!аваев Специализация — это для насекомых. Р.А. Хайнлайн 2.1.

Рождение С алФ С!аыеь Работа над тем, что впоследствии стало языком С++, началась с попытки проанализировать ядро УЫ1Х, чтобы понять, как можно было бы распределить эту систему между несколькими компьютерами, соединенными локальной сетью. Этот эксперимент проходил в апреле 1979 г. в Центре исследований ~о вычислительной технике компании Вей 1.аЬогагопез в Мюррей Хилл, штат Пью-Джерси. Вскоре было выявлено две подзадачи: как проанализировать сетевой трафик, порожденный распределенностью ядра, и как разбить ядро на отдельные модули. В обоих случаях требовалось выразить модульную структуру сложной системы и типичные способы обмена информацией между модулями.

Задача была как раз из тех, к решению которых я зарекся приступать без соответствующих инструментов. Поэтому мне пришлось заняться разработкой подходящего инструментария в соответствии с критериями, выработанными в Кембридже. В октябре 1979 г. был готов препроцессор, который я назвал Срге. Он добавлял 81шп1а-подобные классы к С. В марте 1980 г.

препроцессор был улучшен настолько, что использовался в одном реальном проекте и нескольких экспериментальных. В моем архиве сохранилось упоминание о том, что к тому времени Срге работал на 16 системах. Самым важным элементом этих проектов была первая серьезная библиотека на С++, которая поддерживала многозадачное программирование с применением сопрограмм [Зггоцзггцр, 1980Ь], [Бггопзггцр, 1987Ь], [8Ьор1го, 1987]. Язык, подаваемый на вход препроцессора, получил название «С цпгЬ С!аззезм В период с апреля по октябрь я начал думать не об инструменте, а о языке, но С цпгЬ С!аваев все еще рассматривался как расширение С, позволяющее выразить концепции модульности и параллельности. Однако важнейшее решение уже было принято. Хотя поддержка параллельности и моделирования в духе 81шц1а и являлась основной целью С цпгЬ С!аззез, язык не содержал никаких примитивов для выражения параллельности.

Вместо этого была написана библиотека, поддерживающая необходимые стили параллельности. В ней использовалась комбинация наследования (иерархии классов) с возможностью определять функции-члены класса специального назначения, распознаваемые препроцессором. Обратите внимание на множественное число — «стили». Я считал — и считаю — особенно важным, чтобы с помощью языка можно было выразить несколько вариантов параллельной обработки. Есть множество приложений, которым параллельность необхолима, Рождение С чи!Мз С!азвев 1! ИИИВИИИ а преобладающей модели ее поддержки нет.

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

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

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

Я упомянул лишь малую толику часто предлагавшихся расширений. Но существуют библиотеки, поддерживающие все эти возможности. Предварительное описание С пчгЬ С!аззез было опубликовано в виде технического отчета в Ве!1 1.аЬз в апреле 1980 г. [Бсгопзсгцр,1980) и в журнале 31ОР1 АХ Ь!ог!сез !81гоцзсгцр,1982!. Более подробный технический отчет АаИп8 С!аяез го Йе С Еиякиайе: Ап Ехегсие т Еапйиаяе Епо1игшп (Вггоцзггцр, 1980! напечатан в журнале Уо/Зваи: Ргасдсез апИЕхрепепсе. В данных работах заложена хорошая илея: описывать только те возможности, которые полностью реализованы и нашли применение. Такой подход соответствовал традициям Центра исследований по вычислительной технике компании Ве!! 1лЪогагог1ез.

Я отошел от подобной тактики только тогда, когда назрела необходимость большей открытости относительно будущего С++, чтобы в свободной дискуссии по поводу эволюции языка могли принять участие многочисленные пользователи, которые не работали в АТЛЕТ. С члгЬ С!аззез специально проектировался для обеспечения лучшей организации программ. Было решено, что с собственно явычислительной частью» С и так справляется. Я считал принципиальным такой аспект: улучшение структуры не может достигаться за счет падения производительности по сравнению с С. Язык С и!1Ь С!аззез не лолжен был уступать С во времени выполнения, компактности кода и данных. Однажды кто-то продемонстрировал систематическое трехпроцентное падение производительности новой версии по сравнению с С, вызванное наличием временных переменных, которые препроцессор С ъчгЬ С!аззез использовал в механизме возврата из функции.

Недочет был признан неприемлемым, и причину быстро устранили. Аналогично, чтобы обеспечить совместимость формата хранения с С и, следовательно, избежать накладных расходов по памяти, в объекты классов не помещались никакие чслужебныеь данные. Другой важной целью работы было стремление избежать ограничений на области использования С МгЬ С!аззез. Идеал (кстати, достигнутый) — С чпйЬ С!аззез может применяться везде, где использовался С. Отсюда следовало, что новая версия ни в коем случае не должна была уступать С в эффективности, но эта эффективность не могла достигаться за счет отказа от некоторых, пусть даже уродливых особенностей С.

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