Программирование >>  Процедурные приложения 

1 ... 13 14 15 [ 16 ] 17 18 19 ... 150



Рис. 3.19. Диалоговое окно QuickWatch

Теперь, когда мы определили, что переменная continu имеет правильное значение, можно продолжить выполнение программы до конца, выбрав в меню Debug команду Go(рис. 3.20).

-8589930 О

-858993WD

Uelcone to а trace demonstration! Uould you like to continue (V/N)y

Please enter an integer: 2

Please enter an integer: k

Please enter an integer: 6

Please enter an integer: 7

Please enter an integer:

Рис. 3.20. Исправленная версия программы



Глава 4. Введение в С и C++

Из истории языка С

o Отличия С от других ранних языков высокого уровня

o Достоинства языка С

o Недостатки языка С

o Язык С - не для любителей!

Стандарт ANSI С

Переход от С к C++ и объектно-ориентированному программированию

Из истории языка C++

o Эффективность объектно-ориентированного подхода o Незаметные различия между С и C++ o Ключевые различия между С и C++

Основные компоненты программ на языках C/C++

o Простейшая программа на языке С

o Простейшая программа на языке C++

o Получение данных от пользователя в языке С

o Получение данных от пользователя в языке C++

o Файловый ввод-вывод

Знакомство с языками программирования С и C++ мы начнем с истории. Узнать историю появления языков С и C++ будет полезно, поскольку так нам легче будет понять концепции, положенные в основу этих языков, а также ответить на вопрос, почему С на протяжении вот уже ряда десятилетий остается столь популярным среди программистов, а его более молодой родственник C++ не уступает ему по популярности.

Приводимые далее примеры можно набирать и запускать в среде MicrosoftVisualC++. Подразумевается, что в предыдущей главе вы научились выполнять элементарные операции по компиляции и отладке программ.

Из истории языка С

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

Операционная система UNIX была разработана в 1969 г. на маломощном, по современным представлениям, компьютере DEC PDP-7 в компании BellLaboratories, город Мюррей Хилл, штат Нью-Джерси. Система была полностью написана на языке ассемблера для PDP-7 и претендовала на звание дружественной для программистов , поскольку содержала довольно мощный набор инструментов разработки и являлась достаточно открытой средой. Вскоре после создания UNIX Кен Томпсон (KenThompson) написал компилятор нового языка В. С этого момента мы можем начать отслеживать историю языка С, поскольку язык В Кена Томпсона был непосредственным его предшественником. Рассмотрим родословную языка С:

Algol 60 Разработан международным комитетом в 1960 г.



Combined Programming Language - комбинированный язык программирования. Разработан в 1963 г. группой программистов из Кембриджского и Лондонского университетов

BCPL

BasicCombinedProgrammingLanguage - базовый комбинированный язык программирования. Разработан в Кембридже Мартином Ричардсом (MartinRichards) в 1967 г.

Разработан в 1970 г. Кеном Томпсоном, компания BellLabs

Разработан в 1972 г. Деннисом Ритчи (DennisRitchie), компания BellLabs

Позже, в 1983 г., при Американском институте национальных стандартов (American National Standards Institute - ANSI) был создан специальный комитет с целью стандартизации языка С, в результате чего был разработан стандарт ANSI С.

Язык Algol 60 появился всего на пару лет позже языка FORTRAN. Это был значительно более мощный язык, который во многом предопределил пути дальнейшего развития большинства последующих языков программирования. Его создатели уделили много внимания логической целостности синтаксиса команд и модульной структуре программ, с чем, собственно, впоследствии и ассоциировались все языки высокого уровня. К сожалению, Algol 60 не стал популярным в США. Многие считают, что причиной тому была определенная абстрактность этого языка.

Разработчики языка CPL попытались приблизить возвышенный Algol 60 к реалиям конкретных компьютеров. Тем не менее, данный язык остался таким же трудным для изучения и практического применения, как и Algol 60, что предопределило его судьбу. В наследство от CPL остался язык BCPL, представляющий собой упрощенную версию CPL, сохранившую лишь основные его функции.

Когда Кен Томпсон взялся за разработку языка В для ранней версии UNIX, он попытался еще больше упростить язык CPL. И действительно, ему удалось создать довольно интересный язык, который эффективно работал на том оборудовании, для которого был спроектирован. Однако языки В и BCPL, очевидно, были упрощены больше, чем нужно. Их использование было ограничено решением весьма специфических задач.

Например, когда Кен Томпсон закончил создание языка В, появился новый компьютер PDP-11. Система UNIX и компилятор языка В были сразу же модернизированы под новую машину. Хотя PDP-11 был, несомненно, мощнее, чем его предшественник PDP-7, возможности этого компьютера оставались все еще слишком скромными по сравнению а современными стандартами. Он имел только 24 Кб оперативной памяти, из которых 16 Кб отводились операционной системе, и 512 Кб на жестком диске. Возникла идея переписать UNIX на языке В. Но В работал слишком медленно, поскольку оставался языком интерпретирующего типа. Была и другая проблема: язык В ориентировался на работу со словами, тогда как компьютер PDP-11 оперировал байтами. Стала очевидной необходимость усовершенствования языка В. Работа над более совершенной версией, которую назвали языком С, началась в 1971 г.

Деннис Ритчи, который известен как создатель языка С, частично восстановил независимость языка от конкретного оборудования, что было во многом утеряно в языках BCPL и В. Так, были успешно введены в практику типы данных и в то же время сохранена возможность прямого доступа к оборудованию - идея, заложенная еще в языке СPL.

Многие языки программирования, разработанные отдельными авторами (С, Pascal, Lisp и APL), отличались большей целостностью, чем те, над которыми трудились группы разработчиков (Ada, PL/I и Algol 60). Кроме того, для языков, разработанных одним автором, характерна большая специализированность в решении тех вопросов, в которых автор разбирался лучше всего. Деннис Ритчи был признанным специалистом в области системного программирования, а именно: языков программирования, операционных систем и генераторов программ. Учитывая профессиональную направленность автора, нетрудно понять, почему С был признан прежде всего разработчиками системных программ. Язык С представлял собой язык программирования относительно низкого уровня, что позволяло контролировать каждую мелочь в работе алгоритма и достигать максимальной эффективности. Но в то же время в С заложены принципы языка высокого уровня, что позволяло избежать зависимости программ от особенностей архитектуры конкретного компьютера. Это повышало эффективность процесса программирования.

Отличия С от других ранних языков высокого уровня

Вам, конечно, интересно узнать, какое место занимает С в ряду других языков программирования. Чтобы ответить на этот вопрос, рассмотрим примерную иерархию языков, показанную на рис. 4.1, где точками представлены промежуточные этапы развития. К примеру,



1 ... 13 14 15 [ 16 ] 17 18 19 ... 150

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика