Главная » Просмотр файлов » Р.У. Себеста - Основные копцепции языков программирования (2001)

Р.У. Себеста - Основные копцепции языков программирования (2001) (1160794), страница 31

Файл №1160794 Р.У. Себеста - Основные копцепции языков программирования (2001) (Р.У. Себеста - Основные копцепции языков программирования (2001)) 31 страницаР.У. Себеста - Основные копцепции языков программирования (2001) (1160794) страница 312019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

2Л2. АЬ006 68 (1968) АЬ00660 (1960) 6(МЦ(А1(! 964) 81М(Л.А 67 (1967) дмавайс-80 (1980) Рис. 2.12. Генеатагия языка Ба1а(йай 2.16. Объединение императивных и объектно- ориентированных свойств: язык С++ Происхождение языка С рассматривалось в разделе 2.12; происхождение языка Бша(йай( — в разделе 2.15. Язык С++ представляет собой надстройку над языком С, поддерживающую большинство возможностей. открытых языком Бтаййайс Чтобы улучшить императивные свойства языка С и приобрести поддержку объектно-ориентированного про)раммирования, язык С++ прошел через ряд послеловательных модификаций. 2.16.1. Процесс разработки Первый шаг на пути от языка С к языку С++ был сделан в 1980 году Бьярни Страуструпом (В)агпе Ьпоцзпцр) из компании Вей Ьа(701а(ог)ез.

Изменения заключались во введении проверки и преобразования типов параметров функций и, что представляется более важным. классов, родственных аналогичным структурам языков 8(МИ.А 67 и Бгла!)шъ. Помимо этого в язык были включены производные классы, управление открытым/закрытым лоступом к унаследованным компонентам, конструктор и деструктор, а также дружественные классы.

В течение 1981 года были добавлены (пйпе-подставляемые функции, параметры по умолчанию и перегрузка операторов присваивания. Полученный язык был назван языком с ич!1)1 с!аиез, а его описание выполнено страуструпом (Бпоцзпцр, 1983). Полезно рассмотреть несколько целей языка С ий)( С!аззез. Основной его целью было — предоставить язык, на котором программы могли бы формироваться тем же обра- 112 Глава 2. Обзор основных языков программирования зом, что и в языке 8!МО(.А 67; т.е. с классами и наследованием. Кроме того, важно оыло не потерять производительность по сравнению с языком С.

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

обеспечиваюших динамическое связывание вызовов функций с их описаниями; перегрузки операторов и имен функций; а также ссылочных типов данных. Эта версия языка, названная С++, была описана Страуструпом (бггоцзгп!р, 1984). В 1985 голу появилась первая лоступная реализация языка С '- — система Сггоп!. которая транслировала программы на языке С > в программы на языке С, Эта версия системы Сб.ои вмесге с реализованной на ее основе версией языка С + получила обшее название де!еаза 1.О.

Описание полученной системы было выполнено Страуструпом (бпоцзпир, 1986]. Между 1985 и 1989 годами язык С++ продолжал эволюционировать. ориентируясь главным образом на реакцию пользователей его первой распространенной реализации. Следующая версия была названа Ке!сазе 2.0. Ее реализация с помошью системы Сггопг была выполнена в июне 1989 года. В язык была добавлена поддержка множественного наследования (классы, имеюшие несколько родительских классов) н абстрактных классов. и внесены другие изменения.

Абстралтные классы рассматриваются в главе 11. Версия йе)еазе 3.0 была выпушена в конце 1980-х годов. Она содержала специфика- торы шаблонов, предоставлявшие собой параметризованные типы, и обработку исключительных ситуаций. Версии Ке1еазе 2.0 и йе!еаза 3.0 были описаны Эллисом и Страуструпом (ЕНВ апд Ягоцзггир, 1990). 2.16.2. Обзор языка Для поддержки объектно-ориентированного программирования необходим механизм классов/объектов, происходяший от языка ЫМБ(.А 67 и являющийся основным свойством языка Ьша1йа!к.

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

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

Указатель на объект класса А может указывать и на объекты классов. насле- 2.16. Объединение имперотивных и объектно-ориентированных свойств... 113 дующих кзасс А. Котла полобный указатель указывает на перегруженную виртуальную функцию, функция, соответствующая текущему типу, выбирается динамически. На функции и классы может действовать спецификатор шаблона, что означает возможность их параметризации.

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

Оценка Язык С+~ быстро стал и остается очень популярным языком. Одним из факторов его популярности является доступность хороших и недорогих компиляторов. Кроме того, язык Сь- практически полностью совместим с предшественником — языком С (что позволяет компилировать большинство программ, написанных на языке С, как программы, написанные на языке Сь+ и связывать команды языка С++ с командами языка С). Наконец, программисты сейчас настойчиво интересуются объектно-ориентированным программированием, а язык С++ — его инструмент. Недостатком же языка С++ является его объемность и сложность, т.е. он страдает от тех же изъянов. что н язык Р1Л.

Язык С++ унаследовал большинство ненадежных моментов языка С, что делает его менее належным, чем такие языки, как Ое1рЬ1, Ада н Зата. !!аконец, частично из-за его происхождения от языка С, язык С++ более. чем язык АЕООЕ 68, похож на язык Р1Л тем, что он представляет собой скорее набор идей, собранных вместе, чем результат комплексного плана по разработке языка.

К объектно-ориентированным свойствам языка С+~ мы еше вернемся в главе 11. Происхождение языка С++ показано на рис. 2.10. 2.36.4. Родственный язык: в!тте! Язык ЕИТе1 представляет собой еще один смешанный язык, содержащий как импера~нвные, так и объектно-ориентированные свойства (Меуег, 1992).

Язык ЕИТе! был разрабоган одним человеком, Бертраном Мейером (Вепгапд Меуег), французом, проживающим в Калифорнии. Этот язык содержит свойства поддержки абстрактных типов ланных, наследования и динамического связывания и полностью поддерживает объектноориентированное программирование. Самым характерным свойством языка ЕИТе! является встроенное в него использование утверждений для создания принудительного "контракта' между подпрограммами и вызывающими их операторами.

Эта идея появилась еше в языке Р!ап!са!кй1, но игнорировалась большинством языков, разработанных после него. Сравним языки ЕИТе! и С++. Язык Е!(Ге! меньше и проще языка С++ при практически одинаковой выразительности и легкости написания программ. Причины высолой популярности языка С++ на фоне ограниченною использования языка ЕИТе! определить нетрудно. Язык С++ позволяет компаниям — разработчикам программного обеспечения легко перехолить к объектно-ориентированному про!раммированию, поскольку в большинстве случаев их сотрудники уже знакомы с языком С.

Язык же ЕИТе! не имеет такого легкого способа восприятия. Кроме того, в первые несколько лет широкого иснольюванпя языка С++ система С(гоп! была доступной и недорогой, в то время как в Глава 2. Обзор основных языков программирования первые голы существования языка ЕНТе1 его компиляторы были менее дост> иными и более дорогими. Язык С++ имел за плечами престижную колгпанию Вей ЕаЬогагог1ез. тогла как за языком Е!!Те1 стоял Бертрана Мейер и его относительно небольшая компания по разработке программного обеспечения 1шегасбке Бойч аге Епб1пеег!пд.

2.17. Программирование в М(ог!д %Лье М(еЬ: язык Зача Разработчики языка >ата взяли в качестве основы язык С ~. удалили многочисленные конструкции, что-то изменили, что-то добавили. В результате язык сохранил мошь и гибкость языка С~+, но стал меньше, проше и надежнее. 2.17.1. Процесс розроботки Язык 5ата разрабатывался для целого набора приклалных областей. в частности программирования таких встроенных бытовых электронных устройств, как тостеры. микроволновые печи и интерактивные телевизионные системы.

Может показаться, что при разработке программного обеспечения для микроволновой печи належность не важна. Если на печь будет установлено неправильно функцнонир>юшее программное обеспечение, зто не создаст смертельной опасности ни для кого и, вероятно, не приведет к крупным судебным разбирательствам. Тем не менее, если программное обеспечение конкретной модели будет признано дефектным после продажи миллиона единиц товара. то их изъятие может обернуться потерей значительной суммы.

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

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

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

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