Бьерн Страуструп. Язык программирования С++ Второе дополненное издание



Pdf көрінісі
бет28/256
Дата11.07.2022
өлшемі2,87 Mb.
#37591
1   ...   24   25   26   27   28   29   30   31   ...   256
Байланысты:
Бьерн Страуструп. Язык программирования С . М Бином, 2011

1.2 Парадигмы программирования 
Объектно-ориентированное программирование - это метод программирования, способ написания 


Бьерн Страуструп.
Язык программирования С++ 
 
23 
"хороших" программ для множества задач. Если этот термин имеет какой-то смысл, то он должен 
подразумевать: такой язык программирования, который предоставляет хорошие возможности для 
объектно-ориентированного стиля программирования.
Здесь следует указать на важные различия. Говорят, что язык поддерживает некоторый стиль 
программирования, если в нем есть такие возможности, которые делают программирование в этом 
стиле удобным (достаточно простым, надежным и эффективным). Язык не поддерживает некоторый 
стиль программирования, если требуются большие усилия или даже искусство, чтобы написать 
программу в этом стиле. Однако это не означает, что язык запрещает писать программы в этом стиле. 
Действительно, можно писать структурные программы на Фортране и объектно-ориентированные 
программы на С, но это будет пустой тратой сил, поскольку данные языки не поддерживают указанных 
стилей программирования. 
Поддержка языком определенной парадигмы (стиля) программирования явно проявляется в конкретных 
языковых конструкциях, рассчитанных на нее. Но она может проявляться в более тонкой, скрытой 
форме, когда отклонение от парадигмы диагностируется на стадии трансляции или выполнения 
программы. Самый очевидный пример - это контроль типов. Кроме того, языковая поддержка 
парадигмы может дополняться проверкой на однозначность и динамическим контролем. Поддержка 
может предоставляться и помимо самого языка, например, стандартными библиотеками или средой 
программирования. 
Нельзя сказать, что один язык лучше другого только потому, что в нем есть возможности, которые в 
другом отсутствуют. Часто бывает как раз наоборот. Здесь более важно не то, какими возможностями 
обладает язык, а то, насколько имеющиеся в нем возможности поддерживают избранный стиль 
программирования для определенного круга задач. Поэтому можно сформулировать следующие 
требования к языку: 
[1] Все конструкции языка должны естественно и элегантно определяться в нем. 
[2] Для решения определенной задачи должна быть возможность использовать сочетания 
конструкций, чтобы избежать необходимости вводить для этой цели новую конструкцию. 
[3] Должно быть минимальное число неочевидных конструкций специального назначения. 
[4] Конструкция должна допускать такую реализацию, чтобы в не использующей ее программе не 
возникло дополнительных расходов. 
[5] Пользователю достаточно знать только то множество конструкций, которое непосредственно 
используется в его программе. 
Первое требование апеллирует к логике и эстетическому вкусу. Два следующих выражают принцип 
минимальности. Два последних можно иначе сформулировать так: "то, чего вы не знаете, не сможет 
нанести вам вреда". 
С учетом ограничений, указанных в этих правилах, язык С++ проектировался для поддержки абстракции 
данных и объектно-ориентированного программирования в добавление к традиционному стилю С. 
Впрочем, это не значит, что язык требует какого-то одного стиля программирования от всех 
пользователей. 
Теперь перейдем к конкретным стилям программирования и посмотрим каковы основные конструкции 
языка, их поддерживающие. Мы не собираемся давать полное описание этих конструкций. 


Достарыңызбен бөлісу:
1   ...   24   25   26   27   28   29   30   31   ...   256




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет