straustrup2 (852740), страница 11

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

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

1983.R.E.Griswold et.al.: The Snobol14 Programming Language. Prentice-Hall, Englewood Cliffs, NewJersy, 1970.R.E.Griswold and M.T.Griswold: The ICON Programming Language. Prentice-Hall, Englewood Cliffs,New Jersy. 1983.Brian W.Kernighan and Dennis M.Ritchie: The C Programming Language. Prentice-Hall, EnglewoodCliffs, New Jersy. 1978. Second edition 1988.Andrew Koenig and Bjarne Stroustrup: C++: As Close to C as possible - but no closer. The C++Report. Vol.1 No.7. July 1989.Andrew Koenig and Bjarne Stroustrup: Exception Handling for C++ (revised). Proc USENIX C++Conference, April 1990.

Also, Journal of Object Oriented Programming, Vol.3 No.2, July/August 1990.pp.16-33.Barbara Liskov et.al.: CLU Reference Manual. MIT/LCS/TR-225.George Orwell: 1984. Secker and Warburg, London. 1949.Martin Richards and Colin Whitby-Strevens: BCPL - The Language and Its Compiler. CambridgeUniversity Press. 1980.L.Rosler: The Evolution of C - Past and Future. AT&T Bell Laboratories Technical Journal. Vol.63No.8 Part 2. October 1984.

pp.1685-1700.Ravi Sethi: Uniform Syntax for Type Expressions and Declarations. Software Practice & Experience,Vol.11. 1981. pp.623-628.Bjarne Stroustrup: Adding Classes to C: An Exercise in Language Evolution. Software Practice &Experience, Vol.13. 1983. pp.139-61.Bjarne Stroustrup: The C++ Programming Language. Addison-Wesley. 1986.20Бьерн Страуструп.Язык программирования С++[18] Bjarne Stroustrup: Multiple Inheritance for C++. Proc. EUUG Spring Conference, May 1987. AlsoUSENIX Computer Systems, Vol.2 No 4, Fall 1989.[19] Bjarne Stroustrup and Jonathan Shopiro: A Set of C classes for Co-Routine Style Programming. Proc.USENIX C++ conference, Santa Fe. November 1987. pp.417-439.[20] Bjarne Stroustrup: Type-safe Linkage for C++. USENIX Computer Systems, Vol.1 No.4 Fall 1988.[21] Bjurne Stroustrup: Parameterized Type for C++. Proc.

USENIX C++ Conference, Denver, October1988. pp.1-18. Also, USENIX Computer Systems, Vol.2 No.1 Winter 1989.[22] Bjarne Stroustrup: Standardizing C++. The C++ Report. Vol.1 No.1. January 1989.[23] Bjarne Stroustrup: The Evolution of C++: 1985-1989. USENIX Computer Systems, Vol.2 No.3.Summer 1989.[24] P.M.Woodward and S.G.Bond: Algol 68-R Users Guide.

Her Majesty's Stationery Office, London.1974.[25] UNIX Time-Sharing System: Programmer's Manual. Research Version, Tenth Edition. AT&T BellLaboratories, Murray Hill, New Jersy, February 1985.[26] Aake Wilkstroem: Functional Programming Using ML. Prentice-Hall, Englewood Cliffs, New Jersy.1987.[27] X3 Secretariat: Standard - The C Language. X3J11/90-013.

Computer and Business EquipmentManufactures Association, 311 First Street, NW, Suite 500, Washington, DC 20001, USA.Ссылки на источники по проектированию и развитию больших систем программного обеспечения можнонайти в конце главы 11.21Бьерн Страуструп.Язык программирования С++ГЛАВА 1.

КРАТКИЙ ОБЗОР С++"Начнем с того, что вздернем всех этих законников, языковедов".("Король Генрих VI", действие II)В этой главе содержится краткий обзор основных концепций и конструкций языка С++. Он служит длябеглого знакомства с языком. Подробное описание возможностей языка и методов программированияна нем дается в следующих главах. Разговор ведется в основном вокруг абстракции данных и объектноориентированного программирования, но перечисляются и основные возможности процедурногопрограммирования.1.1 ВВЕДЕНИЕЯзык программирования С++ задумывался как язык, который будет:•лучше языка С;•поддерживать абстракцию данных;•поддерживать объектно-ориентированное программирование.В этой главе объясняется смысл этих фраз без подробного описания конструкций языка.$$1.2 содержит неформальное описание различий "процедурного", "модульного" и "объектноориентированного" программирования.

Приведены конструкции языка, которые существенны длякаждого из перечисленных стилей программирования. Свойственный С стиль программированияобсуждается в разделах "процедурное программирование и "модульное программирование". Язык С++ "лучший вариант С". Он лучше поддерживает такой стиль программирования, чем сам С, причем этоделается без потери какой-либо общности или эффективности по сравнению с С. В то же время язык Cявляется подмножеством С++. Абстракция данных и объектно-ориентированное программированиерассматриваются как "поддержка абстракции данных" и "поддержка объектно- ориентированногопрограммирования". Первая базируется на возможности определять новые типы и работать с ними, авторая – на возможности задавать иерархию типов.$$1.3 содержит описание основных конструкций для процедурного и модульного программирования.

Вчастности, определяются функции, указатели, циклы, ввод-вывод и понятие программы каксовокупности раздельно транслируемых модулей. Подробно эти возможности описаны в главах 2, 3 и 4.$$1.4 содержит описание средств, предназначенных для эффективной реализации абстракции данных.В частности, определяются классы, простейший механизм контроля доступа, конструкторы идеструкторы, перегрузка операций, преобразования пользовательских типов, обработка особыхситуаций и шаблоны типов. Подробно эти возможности описаны в главах 5, 7, 8 и 9.$$1.5 содержит описание средств поддержки объектно-ориентированного программирования.

Вчастности, определяются производные классы и виртуальные функции, обсуждаются некоторыевопросы реализации. Все это подробно изложено в главе 6.$$1.6 содержит описание определенных ограничений на пути совершенствования как языковпрограммирования общего назначения вообще, так и С++ в частности. Эти ограничения связаны сэффективностью, с противоречащими друг другу требованиями разных областей приложения,проблемами обучения и необходимостью трансляции и выполнения программ в старых системах.Если какой-то раздел окажется для вас непонятным, настоятельносоветуем прочитатьсоответствующие главы, а затем, ознакомившись с подробным описанием основных конструкций языка,вернуться к этой главе.

Она нужна для того, чтобы можно было составить общее представление оязыке. В ней недостаточно сведений, чтобы немедленно начать программировать.1.2 Парадигмы программированияОбъектно-ориентированное программирование - это метод программирования, способ написания22Бьерн Страуструп.Язык программирования С++"хороших" программ для множества задач.

Если этот термин имеет какой-то смысл, то он долженподразумевать: такой язык программирования, который предоставляет хорошие возможности дляобъектно-ориентированного стиля программирования.Здесь следует указать на важные различия. Говорят, что язык поддерживает некоторый стильпрограммирования, если в нем есть такие возможности, которые делают программирование в этомстиле удобным (достаточно простым, надежным и эффективным). Язык не поддерживает некоторыйстиль программирования, если требуются большие усилия или даже искусство, чтобы написатьпрограмму в этом стиле. Однако это не означает, что язык запрещает писать программы в этом стиле.Действительно, можно писать структурные программы на Фортране и объектно-ориентированныепрограммы на С, но это будет пустой тратой сил, поскольку данные языки не поддерживают указанныхстилей программирования.Поддержка языком определенной парадигмы (стиля) программирования явно проявляется в конкретныхязыковых конструкциях, рассчитанных на нее.

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

Часто бывает как раз наоборот. Здесь более важно не то, какими возможностямиобладает язык, а то, насколько имеющиеся в нем возможности поддерживают избранный стильпрограммирования для определенного круга задач. Поэтому можно сформулировать следующиетребования к языку:[1]Все конструкции языка должны естественно и элегантно определяться в нем.[2]Для решения определенной задачи должна быть возможность использовать сочетанияконструкций, чтобы избежать необходимости вводить для этой цели новую конструкцию.[3]Должно быть минимальное число неочевидных конструкций специального назначения.[4]Конструкция должна допускать такую реализацию, чтобы в не использующей ее программе невозникло дополнительных расходов.[5]Пользователю достаточно знать только то множество конструкций, которое непосредственноиспользуется в его программе.Первое требование апеллирует к логике и эстетическому вкусу.

Два следующих выражают принципминимальности. Два последних можно иначе сформулировать так: "то, чего вы не знаете, не сможетнанести вам вреда".С учетом ограничений, указанных в этих правилах, язык С++ проектировался для поддержки абстракцииданных и объектно-ориентированного программирования в добавление к традиционному стилю С.Впрочем, это не значит, что язык требует какого-то одного стиля программирования от всехпользователей.Теперь перейдем к конкретным стилям программирования и посмотрим каковы основные конструкцииязыка, их поддерживающие. Мы не собираемся давать полное описание этих конструкций.1.2.1 Процедурное программированиеПервоначальной (и, возможно, наиболее используемой) парадигмой программирования было:Определите, какие процедуры вам нужны; используйте лучшие из известных вам алгоритмов!Ударение делалось на обработку данных с помощью алгоритма, производящего нужные вычисления.Для поддержки этой парадигмы языки предоставляли механизм передачи параметров и получениярезультатов функций.

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

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

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

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