Главная » Просмотр файлов » Бьерн Страуструп. Язык программирования С++. Специальное издание (2011)

Бьерн Страуструп. Язык программирования С++. Специальное издание (2011) (1004033), страница 8

Файл №1004033 Бьерн Страуструп. Язык программирования С++. Специальное издание (2011) (Бьерн Страуструп. Язык программирования С++. Специальное издание (2011)) 8 страницаБьерн Страуструп. Язык программирования С++. Специальное издание (2011) (1004033) страница 82018-10-07СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В данной книге основное внимание уделяется элементам языка и технике программирования, на основе которых и строятся все программы. Отбор примеров отражает мой собственный опыт разработки компиляторов, базовых библиотек и программ-симуляторов (моделирование; программы-тренажеры). Примеры являются упрощенными вариантами того, что встречается в реальной практике. Упрощение необходимо, иначе язык программирования и вопросы проектирования затеряются во множестве мелких деталей.

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

Кенигом — Апогею Коеп)я) — Тйе Аппогатед С++ Еапйцаде Йапг)агд, служит дополнением к настоящей книге и содержит полное и всестороннее определение языка С++, а также поясняющие комментарии. Логичным было бы еще одно дополнение — Т)те Аппогагег) С++ Вгапг)агг) (зЬгагу. Но ввиду ограниченности сил и времени я не могу обещать выход такой книги. Глава 1. Обращение к читателю 40 Ссылки на разделы данной книги даются в форме 82.3.4 (глава 2, раздел 3, подраздел 4), зВ.5.6 (приложение В, подраздел 5.6) и 86.6[10] (глава 6, упражнение 10).

1.1.2. Упражнения Упражнения размещены в концах глав данной книги. По большей части они формулируются в стиле «напиши программу», Всегда пишите программы, пригодные для успешной компиляции и нескольких тестовых прогонов. Упражнения существенно разнятся по уровню сложности, так что для каждого из них приводится приблизительная условная оценка. Масштаб оценок экспоненциальный, так что если, например, упражнение, оцененное как ('1), занимает 10 минут, то упражнение с оценкой ("2) может занять час, а (*3) — целый день. Кроме того, время, необходимое для выполнения упражнения, зависит больше от вашего опыта, чем от самого упражнения.

Например, упражнение С оценкой ('1) может занять и целый день, если вы при этом параллельно знакомитесь с компьютерной системой и выясняете детали работы с ней. А с другой стороны, упражнение с оценкой (*5) может быть решено кем-нибудь за один час, если у него под рукой набор готовых программ и утилит. Любую книгу по языку С можно использовать в качестве источника дополнительных упражнений к части 1. А любая книга по структурам данных и алгоритмам послужит источником упражнений для частей П и 1П.

1.1.3. Замечания о конкретных реализациях языка (компиляторах) В книге используется «чистый С++», как он определен в стандарте [С++, 1998], [С++, 2003]. Поэтому примеры из книги должны компилироваться в любых стандартных реализациях. Большинство из них были проверены на нескольких компиляторах. При этом не все компиляторы справились с новейшими элементами языка С++. Однако я не думаю, что есть необходимость в том, чтобы явно называть такие реализации, ибо разработчики непрерывно работают над их улучшением, и эта информация быстро устареет. В приложении В приведены советы по устранению проблем со старыми компиляторами, а также с кодом, написанным для компиляторов языка С. 1.2.

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

При этом каждый из стилей достигает свою цель без снижения эффективности выполнения программы и заметного увеличения потребляемых компью- 1.2. Как изучать С+-ь 41 терных ресурсов. Программисты, переходящие с иных языков (например, С, Ропан, Бта!1га1)г, Е(зр, М1, Ада, Е1)Те!, Рааса!, Мобц1а-2) должны четко осознать: чтобы реально воспользоваться преимушествами языка С++, нужно потратить время, изучить и на практике овладеть стилями и приемами программирования, характерными для С++. То же относится и к программистам, привыкшим к работе с ранними, менее выразительными версиями С++. Бездумный перенос на новый язык идей и методов программирования, доказавших свою эффективность для другого языка, в типичном случае приводит к неуклюжему, медленному и сложному в сопровождении коду.

К тому же писать такой код крайне утомительно, ибо каждая его строчка и каждое сообгцение компилятора об ошибке подчеркивают отличие применяемого языка от «старого». Вы можете программировать в стиле Гопгап, С, Бща111а1)г и т.п. на любом языке, но делать это для языка с иной философией и неэкономно, и неприятно. Любой язык является щедрым источником идей о том, как следует писать программы на С++.

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

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

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

Это важно, так как ваши возможности будут расти практически пропорционально затраченным на обучение усилиям. В непрекращающихся дебатах по поводу необходимости (или отсутствия необходимости) предварительного изучения языка С я решительно на стороне тех, кто считает, что лучше сразу приступать к изучению С++: он безопаснее, он более выразителен и он снижает необходимость в низкоуровневом программировании. Легче понять хитроумные «штучки» на С, компенсирующие отсутствие в нем высокоуровневых конструкций, если предварительно ознакомиться с общими возможностями этих языков и некоторыми высокоуровневыми средствами С++. Глава 1.

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

Так как у каждого из них свой взгляд на С++, то целесообразно обратиться хотя бы к двум таким источникам. Например, см. [Вапоп, 1994], [Воос[т, 1994], [Неппсзоп, 1997], [Коеш8, 1997], [Мап[п, 1995]. 1.3. Как проектировался С++ Простота была важным критерием при разработке С++ — там, где стоял выбор между простотой языковых конструкций и простотой реализации компилятора, выбиралось первое. Большое внимание уделялось совместимости с языком С [Кося[8, 1989], [Бтгоцзтгцр, 1994], (приложение В), что, однако, помешало «почистить» синтаксис языка С.

В языке С++ нет встроенных высокоуровневых типов и операций. Например, в С++ нет встроенных матриц с операциями их обращенги, нет и строк с операциями конкатенации. Если такие типы нужны, то они могут быть созданы средствами языка. Более того, создание типов общего назначения или ~илов, специфичных для конкретной программы, и есть основная форма деятельности при программировании на С++. Хорошо спроектированный пользовательский тип отличается от встроенного типа только тем, как он определен, а не тем, как он используется. Описанная в части ЕП стандартная библиотека содержит массу примеров таких типов данных.

Для пользователя нет большой разницы между встроенными типами и типами стандартной библиотеки. При проектировании С++ средства, которые замедляют работу программы и требуют дополнительных затрат памяти во всех случаях (даже когда их напрямую не используют), отвергались. Например, не применяются дополнительные внутренние конструкции, требующие индивидуального хранения вместе с каждым объектом. Таким образом, если, например, объявляется структура с двумя 16-битовыми величинами, то объекты этого типа целиком помещаются в 32-битовый регистр. С++ разрабатывался для той же самой традиционной среды компиляции и исполнения, что была присуща языку С и операционной системы 1)МХ.

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

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

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

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