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

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

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

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

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

Я хотел бы включить необязательную сборку мусора, но отношу это, скорее, к качеству компилятора, а не к средствам языка. 9.2З. Основная недоработка языка По моему мнению, только одну недоработку можно было бы назвать величайшей ошибкой С++. Выпуск версии 1.0 и первого издания моей книги [5ггоцзтгвр, Перспективы развития языка С++ ИПИИИИИ$1 1986~ следовало отложить до окончания разработки более полной библиотеки, включающей такие фундаментальные классы, как одпосвязные и двусвязные списки, ассоциативные массивы, массивы с контролем выхода за границы и простые строки. Их отсутствие заставило всех «изобретать велосипед» и породило ненужное разнообразие базовых классов.

Пытаясь самостоятельно построить базовые классы, программисты вынуждены были сразу начать с «продвпнутых» возможностей, еще не освоив основы С++. Кроме того, много усилий было потрачено на разработку методов и инструментов по ходу работы с библиотеками, которые имели серьезный внутренний дефект — отсутствие шаблонов. В некотором смысле я бы мог избежать вышеназванной ошибки. В первоначальном плане книги значилось трп раздела, посвященных библиотеке: о потоковом вводе,'выводе, о контейнерных классах и о поддержке многозадачности.

Приблизительно я знзл, чего хочу, но, к сожалению, слишком устал и не мог реачизовать контейнерные классы, не имея в каком-то виде шаблонов. Идея «подделать» шаблоны с помощью препроцсссора или некоторой временной уловки в компиляторе нс пришла мне тогда в голову. 9.3. Всего лишь мост? Я создал С++ как мост, по которому люди могли бы перейти от традиционного программирования к абстракциям данных и объектно-ориентированному программированию. Есть ли у С++ будущее за этими рамками? Разве С++ — это всего лишь мост и ничего более? Будет ли зтот язык еще представлять интерес и иметь ценность, когда объектно-ориентированное программирование будет применяться повсеместно? И если ответ положителен, то можно ли что-нибудь сделать для тех пользователей С++, которым не важна совместимость с С, не причинив вред тем, для кого она еще, по крайней мере, десять лет будет необходима? Язык существует для того, чтобы помочь при решении задач.

Если язык с самого начала оказался удачным, то будет существовать, пока есть задачи, при решении которых он оказался полезным. И станет пользоваться успехом, если только в каком-то другом языке не будут предложены гораздо лучшие решения для тех же задач.

Позтому возникают следующие вопросы: м останутся ли актуальными задачи, которые помогает решать С»+? ы появятся ли существенно лучшие решения? л сможет ли С++ предложить хорошие решения новых задач? Я отвечаю на вопросы так: «многие останутся», «медленно» и «да». 9.3.1. Мост нужен надолго Пройдет еще достаточно времени, пока большинство пользователей преуспеет в использовании объектно-ориентировашюго программирования, проектирования и т.д. Роль С++ как моста и средства для гибридного проектирования и разработки не исчерпает себя в двадцатом столетии, а его значение как средства сопровождения и обновления старого кода будет актуально еще дольше.

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

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

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

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

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

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

9.3.2.2. Высокоуровневое системное программирование Размер и сложность традиционных систем растут очень быстро. В качестве примера можно привести ядра ОС, диспетчеры сетей, компиляторы, системы электронной почты, системы для фотоцабора, для манипуляций с изображениями и звуком, системы связи, пользовательские интерфейсы и системы баз данных. Следовательно, традиционный акцент на низкоуровневой эффективности смещается в сторону общей структуры системы. Эффективность по-прежнему остается важным аспектом, но становится вторичной, поскольку никому не нужна, если большую систему не удастся экономно построить и сопровождать. Имеющиеся в С++ средства абстрагирования данных и объектно-ориентированного программирования относятся именно к этой стороне вопроса. Шаблоны, пространства имен и исключения будут значить все больше и больше для программистов, работающих над такими приложениями.

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

Для высокоуровневого системного программирования хорошо подходят и многие другие языки, например Аг!а9Х, ЕНе! и Мог!ц!а-3. Если не считать поддержки сборки мусора и параллельности, то они приблизительно эквивалентны С++ с точки зрения фундаментальных механизмов. Естественно, о качестве отдельных средств и глубине их интеграции в язык можно спорить бесконечно. Однако при наличии высококачественных реализаций каждый из этих языков может поддержать широкий круг приложений.

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

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

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

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

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