Главная » Просмотр файлов » Б. Страуструп - Язык программирования С++

Б. Страуструп - Язык программирования С++ (1119446), страница 8

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

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

Язык SIMULA-67 идеально подходит для этого, если не учитыватьэффективность. Язык "С с классами" использовался для больших задач моделирования. Строгойпроверке подверглись тогда возможности написания на нем программ, для которых критичны ресурсывремени и памяти. В этом языке недоставало перегрузки операций, ссылок, виртуальных функций имногих других возможностей.

Впервые С++ вышел за пределы исследовательской группы, в которойработал автор, в июле 1983 г., однако тогда многие возможности С++ еще не были разработаны.Название С++ (си плюс плюс) , было придумано Риком Маскитти летом 1983 г. Это название отражаетэволюционный характер изменений языка С. Обозначение ++ относится к операции наращивания С.Чуть более короткое имя С+ является синтаксической ошибкой. Кроме того, оно уже было использованокак название совсем другого языка.

Знатоки семантики С находят, что С++ хуже, чем ++С. Язык неполучил названия D, поскольку он является расширением С, и в нем не делается попыток решить какиелибо проблемы за счет отказа от возможностей С. Еще одну интересную интерпретацию названия С++можно найти в приложении к [12].Изначально С++ был задуман для того, чтобы автору и его друзьям не надо было программировать на14Бьерн Страуструп.Язык программирования С++ассемблере, С или других современных языках высокого уровня.

Основное его предназначение упростить и сделать более приятным процесс программирования для отдельного программиста. Донедавнего времени не было плана разработки С++ на бумаге. Проектирование, реализация идокументирование шли параллельно. Никогда не существовало "проекта С++" или "Комитета поразработке С++". Поэтому язык развивался и продолжает развиваться так, чтобы преодолеть всепроблемы, с которыми столкнулись пользователи. Толчками к развитию служат также и обсужденияавтором всех проблем с его друзьями и коллегами.В связи с лавинообразным процессом увеличения числа пользователей С++, пришлось сделатьследующие изменения. Примерно в 1987 г. стало очевидно, что работа по стандартизации С++неизбежна и что следует незамедлительно приступить к созданию основы для нее [22]. В результатебыли предприняты целенаправленные действия, чтобы установить контакт между разработчиками С++и большинством пользователей.Применялась обычная и электронная почта, а также былонепосредственное общение на конференциях по С++ и других встречах.Фирма AT&T Bell Laboratories внесла основной вклад в эту работу, предоставив автору право изучатьверсии справочного руководства по языку вместе с упоминавшимися разработчиками ипользователями.

Не следует недооценивать этот вклад, т.к. многие из них работают в компаниях,которые можно считать конкурентами фирмы AT&T. Менее просвещенная компания могла бы простоничего не делать, и в результате появилось бы несколько несогласованных версий языка. Около стапредставителей из порядка 20 организаций изучали и комментировали то, что стало современнойверсией справочного руководства и исходными материалами для ANSI по стандартизации С++. Ихимена можно найти в "Аннотированном справочном руководстве по языку С++" [4]. Справочноеруководство полностью вошло в настоящую книгу. Наконец, по инициативе фирмы Hewlett-Packard вдекабре 1989 г.

в составе ANSI был образован комитет X3J16. Ожидается, что работы постандартизации С++ в ANSI (американский стандарт) станут составной частью работ по стандартизациисилами ISO (Международной организации по стандартизации).С++ развивался одновременно с развитием некоторых фундаментальных классов, представленных вданной книге. Например, автор разрабатывал классы complex, vector и stack, создавая одновременновозможность перегрузки операций. В результате этих же усилий и благодаря содействию Д. Шапиропоявились строковые и списочные классы. Эти классы стали первыми библиотечными классами,которые начали активно использоваться.

Библиотека task, описываемая в [19] и в упражнении 13 из$$6.8 стала частью самой первой программы, написанной на языке "С с классами". Эта программа ииспользуемые в ней классы были созданы для моделирования в стиле Симулы. Библиотека task быласущественно переработана Д. Шапиро и продолжает активно использоваться до настоящего времени.Потоковая библиотека, как указывалось в первом издании книги, была разработана и примененаавтором. Д.

Шварц преобразовал ее в потоковую библиотеку ввода-вывода ($$10), используя наряду сдругими приемами метод манипуляторов Э.Кенига ($$10.4.2). Класс map ($$8.8) был предложенЭ.Кенигом. Он же создал класс Pool ($$13.10), чтобы использовать для библиотеки предложенныйавтором способ распределения памяти для классов ($$5.5.6). На создание остальных шаблоновповлияли шаблоны Vector, Map, Slist и sort, представленные в главе 8.Сравнение языков С++ и СВыбор С в качестве базового языка для С++ объясняется следующими его достоинствами:(1) универсальность, краткость и относительно низкий уровень;(2) адекватность большинству задач системного программирования;(3) он идет в любой системе и на любой машине;(4) полностью подходит для программной среды UNIX.В С существуют свои проблемы, но в языке, разрабатываемом "с нуля" они появились бы тоже, апроблемы С, по крайней мере, хорошо известны.

Более важно то, что ориентация на С позволилаиспользовать язык "С с классами" как полезный (хотя и не очень удобный) инструмент в течение первыхмесяцев раздумий о введении в С классов в стиле Симулы.С++ стал использоваться шире, но по мере роста его возможностей, выходящих за пределы С, вновь ивновь возникала проблема совместимости. Ясно, что отказавшись от части наследства С, можно15Бьерн Страуструп.Язык программирования С++избежать некоторых проблем (см., например, [15]). Это не было сделано по следующим причинам:(1) существуют миллионы строк программ на С, которые можно улучшить с помощью С++, нопри условии, что полной переписи их на язык С++ не потребуется;(2) существуют миллионы строк библиотечных функций и служебных программ на С, которыеможно было бы использовать в С++ при условиях совместимости обоих языков на стадиисвязывания и их большого синтаксического сходства;(3) существуют сотни тысяч программистов, знающих С; им достаточно овладеть только новымисредствами С++ и не надо изучать основ языка;(4) поскольку С и С++ будут использоваться одними и теми же людьми на одних и тех жесистемах многие годы, различия между языками должны быть либо минимальными, либомаксимальными, чтобы свести к минимуму количество ошибок и недоразумений.

Описание С++было переработано так, чтобы гарантировать, что любая допустимая в обоих языкахконструкция означала в них одно и то же.Язык С сам развивался в последние несколько лет, что отчасти было связано с разработкой С++ [14].Стандарт ANSI для С [27] содержит, например, синтаксис описания функций, позаимствованный изязыка "С с классами". Происходит взаимное заимствование, например, тип указателя void* былпридуман для ANSI С, а впервые реализован в С++. Как было обещано в первом издании этой книги,описание С++ было доработано, чтобы исключить неоправданные расхождения. Теперь С++ болеесовместим с языком С, чем это было вначале ($$R.18). В идеале С++ должен максимальноприближаться к ANSI C, но не более [9].

Стопроцентной совместимости никогда не было и не будет,поскольку это нарушит надежность типов и согласованность использования встроенных ипользовательских типов, а эти свойства всегда были одними из главных для С++.Для изучения С++ не обязательно знать С. Программирование на С способствует усвоению приемов идаже трюков, которые при программировании на С++ становятся просто ненужными. Например, явноепреобразование типа (приведение) , в С++ нужно гораздо реже, чем в С (см. "Замечания дляпрограммистов на С" ниже). Тем не менее, хорошие программы на языке С по сути являютсяпрограммами на С++. Например, все программы из классического описания С [8] являютсяпрограммами на С++.

В процессе изучения С++ будет полезен опыт работы с любым языком состатическими типами.Эффективность и структураРазвитие языка С++ происходило на базе языка С, и, за небольшим исключением, С был сохранен вкачестве подмножества C++. Базовый язык С был спроектирован таким образом, что имеется оченьтесная связь между типами, операциями, операторами и объектами, с которыми непосредственноработает машина, т.е. числами, символами и адресами.

За исключением операций new, delete и throw, атакже проверяемого блока, для выполнения операторов и выражений С++ не требуется скрытойдинамической аппаратной или программной поддержки.В С++ используется та же (или даже более эффективная) последовательность команд для вызовафункций и возврата из них, что и в С.

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

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

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