|
Программирование >> Структурное программирование
1.9. Параллельный С++ в результате длительных исследований в Bell Laboratories были разработаны другие версии С и С++. Джехани разработал Параллельный С (Concurrent С) и Параллельный С++ - расширения С, включающие возможности спецификации параллельно выполняемых коллективных операций. Языки, подобные этим, станут популярными в следующем десятилетии, так как возрастет использование мультипроцессоров, т.е. компьютеров с более чем один ЦПУ. На момент написания этой книги языки Параллельный С и Параллельный С++ находятся пока еще в стадии первоначального исследования и не получили коммерческого применения. Обычно учебники по операцион- ANSI С. На протяжении всей книги мы обсуждаем многие из этих классов и функций. Среди тех программистов, которые нуждаются в глубоком понимании функций библиотеки ANSI С, способов их реализации и использования для написания мобильных кодов, наиболее читаемой является книга Плаугера. Библиотеками классов обеспечивают преимущественно продавцы компиляторов, но многими библиотеками классов снабжают независимые продавцы программного обеспечения. Замечание по технике программирования 1.1 Используйте для создания программ методологию стандартных блоков. Избегайте заново изобретать колесо. Используйте существующие кусочки программ - это называется повторным использованием кодов и служит основой объектно-ориентированного программирования. Замечание по технике программирования 1.2 При программировании на С++ вы обычно будете использовать следующие стандартные блоки: классы из библиотек классов и функции из стандартной библиотеки ANSI С, классы и функции, созданные вами самими, и классы и функции, созданные другими людьми, но доступные вам. Преимуществом создания собственных классов и функций является то, что вы точно знаете, как они работают. Вы имеете возможность исследовать код С++. Недостаток состоит в затратах времени и сил на проектирование и развитие новых функций и классов. Совет по повышению эффективности 1.1 Использование функций стандартной библиотеки ANSI вместо написания собственных версий тех же функций может повысить эффективность программ, поскольку эти функции написаны специально с учетом эффективности их выполнения. Замечание по мобильности 1.2 Использование функций стандартной библиотеки ANSI вместо написания собственных версий тех же функций может повысить мобильность программ, поскольку эти функции включены практически во все реализации С++. ным системам включают значительные проработки параллельного программирования. 1.10. Другие языки высокого уровня Несмотря на то, что разработаны сотни языков высокого уровня, лишь немногие из них получили широкое применение. Между 1954 и 1957 годами компанией IBM был разработан язык FORTRAN (FORmula TPANslator - транслятор формул), предназначенный для научных и инженерных применений, требуюш;их сложных математических вычислений. FORTRAN до сих пор широко используется, особенно в инженерных приложениях. В 1959 году группой производителей компьютеров и пользователей уп-равляюш;ими и промышленными компьютерами был разработан язык COBOL (COmmon Business Oriented Language - язык, ориентированный на задачи бизнеса). COBOL прежде всего использовался для решения коммерческих задач, требуюпд;их точной и эффективной обработки больших объемов данных. До сих пор более половины программного обеспечения для коммерческих задач еш;е пишется на COBOLe. Активно создают программы на COBOLe около миллиона людей. Примерно в то же время, что и С, был разработан PascaL Он был создан профессором Никлаусом Виртом и предназначался для учебных целей. Мы еш;е поговорим об этом языке в следуюш;их разделах. 1.11. Структурное программирование На протяжении 60-х годов попытки создания многих больших программных систем наталкивались на ряд трудностей. Графики создания программного обеспечения обычно не выполнялись, цены значительно превосходили бюджетные ассигнования, а конечные продукты отличались ненадежностью. Люди начали понимать, что создание программного обеспечения - гораздо более сложная задача, чем они себе представляли. Исследовательские работы 60-х годов привели к развитию структурного программирования - дисциплинированного подхода к написанию программ, отличающихся от неструктурированных программ ясностью, простотой тестирования и отладки и легкостью модификации. Принципы структурного программирования обсуждаются в главе 2. В главах с 3 по 5 разрабатывается ряд структурированных программ. Одним из наиболее ощутимых результатов этих исследований была разработка в 1971 году Никлаусом Виртом языка программирования Паскаль (Pascal). Pascal, названный в честь математика и философа семнадцатого столетия Блеза Паскаля, был разработан для изучения структурного программирования в академической среде и вскоре стал наиболее предпочитаемым языком программирования во многих университетах. К сожалению, в языке отсутствовали многие свойства, необходимые для его применения в коммерции, промышленности и управлении, так что в этих областях он не получил широкого распространения. В течение 70 и начале 80-х годов под патронажем Министерства Обороны США был разработан язык программирования Ада. Для создания программных систем управления и руководства Министерства обороны США исполь- зовались сотни отдельных языков. Но Министерство обороны хотело иметь один язык, полностью удовлетворяющий всем его запросам. В качестве базового языка был выбран Паскаль, но в конце концов язык Ада оказался совсем не похожим на Паскаль. Язык был назван по имени Ады Лавлейс, дочери поэта лорда Байрона. Леди Лавлейс приписывают честь написания первой в мире компьютерной программы (для спроектированного Чарльзом Беббиджем механического вычислительного устройства, названного Аналитической Машиной). Наиболее важное свойство Ады называется многозадачностью; оно позволяет программистам определять много действий для из параллельного выполнения. Другие широко распространенные языки высокого уровня, которые мы уже обсуждали, включая С и С++, вообще говоря, позволяют писать программы, в которых одновременно можно выполнять только одно действие. 1.12. Общее описание типичной среды программирования на С++ Обычно системы программирования на С++ состоят из нескольких частей: среда программирования, язык, стандартная библиотека С и различные библиотеки классов. Рассмотрим типичную среду разработки программ на С++, показанную на рис. 1.1. Как правило, для того, чтобы выполнить программу на С++, надо пройти шесть этапов (рис. 1.1): редактирование, предварительную (препроцессор-ную) обработку, компиляцию, компоновку, загрузку и выполнение. Мы остановимся на системе С++, ориентированной на UNIX. Если вы не пользуетесь системой UNIX, обратитесь к справочникам для вашей системы или спросите вашего инструктора, как приспособить эти задачи к вашей операционной среде. Первый этап представляет собой редактирование файла. Он выполняется с помощью редактора программ. Программист набирает с помощью этого редактора свою программу на С++ и, если это необходимо, вносит в нее исправления. Программа запоминается на вспомогательном запоминающем устройстве, например, на диске. Имена файлов программ на С++ часто оканчиваются расширением .С (заметим, что С - прописная буква; некоторые операционные среды С++ требуют других расширений, таких как .срр или .схх; для получения более детальной информации смотрите документацию по вашей операционной среде С++). В системе UNIX широко используются два редактора - vi и emacs. Некоторые пакеты С++, такие как Borland С++ и Microsoft C/C++, имеют встроенные редакторы, которые органично объединены с операционной средой программирования. Мы предполагаем, что читатель знает, как редактировать программу. На следующем этапе программист дает команду компилировать программу. Компилятор переводит программу в машинный код (называемый также объектным кодом). В системе С++ перед началом этапа трансляции выполняется программа предварительной обработки. Эта программа в С++ подчиняется специальным командам, называемым директивами препроцессора, которые указывают, что в программе перед ее компиляцией нужно выполнить определенные преобразования. Обычно эти преобразования состоят во включении других текстовых файлов в файл, подлежащий компиляции, и выполнении различных текстовых замен. Наиболее общие директивы препро-
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |