Файл: История возникновения и развития языка программирования Си (С++) и Java (Понятие языков программирования C и C++).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 198

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение

Начало современной эпохи программирования отмечено созданием языка Си. Он был разработан Дэнисом Ритчи (Dennis Ritchie) в 1970-х годах для компьютера PDP-11 компании DEC (Digital Equipment Corporation), в котором использовалась операционная система UNIX. Несмотря на то, что некоторые известные языки программирования, в особенности Pascal, достигли к тому времени значительного развития и признания, именно язык Си определил направление сегодняшнего программирования.

Язык С++ разработали в 80е годы в Bell Laboratories. По своей сути, С++ – это расширение языка Си, его главное преимущество от своего предшественника, и от языков более высшего уровня в том, что в С++ присутствует поддержка объектно-ориентированного программирования, перегруженных операций, а также наличие возможности разработать полномасштабные Windows приложения.

Как известно, современные приложения должны быть, в первую очередь, безопасны, отличаться высокой производительностью, быть работоспособными в распределенной среде, нейтральными к архитектуре. Данные факторы способствовали пересмотру взглядов на сам процесс создания и распределения приложений на множестве ЭВМ различной архитектуры и следующей ступенью на лестнице прогресса языков программирования стал язык Java, который первоначально назывался Oak ("Дуб"). Работа над его созданием началась в 1991 году в компании Sun Microsystems. Основной движущей силой разработки Java был Джеймс Гослинг (James Gosling). Java — это структурный объектно-ориентированный язык программирования, синтаксис и основополагающие принципы которого "родом" из C++, он удовлетворяет всем вышеперечисленным требованиям.

Объект: история языков программирования Cи, C++ и Java.

Предмет: возникновение и развитие языков программирования Cи, C++ и Java.

Цель работы: изучить историю возникновения и развития языков программирования Си, (C++) и Java.

Задачи:

  1. Изучить программирование на С и С++: дать понятие языков программирования С и С++ их краткую историю развития и базовые понятия;
  2. Изучить программирование Java дать понятие языка программирования Java, его краткую историю и базовые понятия.

Глава I. Программирование на Cи и C++

Понятие языков программирования Cи и C++

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


Конечно, язык Си имеет и недостатки. Сюда можно отнести достаточно слабый контроль преобразования типов и незащищенность в процессе работе с адресами и динамической памятью, в результате чего в программе легко совершить ошибку, которую впоследствии сложно будет обнаружить. С другой стороны, эти недостатки и дали возможность создать исполняемый код, по эффективности приближающийся к программе на языке Ассемблера. С помощью структурированных языков программирования можно было писать программы средней сложности, причем без особых героических усилий со стороны программиста. Но если программный проект достигал определенного размера, то даже с использованием упомянутых структурированных методов его сложность резко возрастала и оказывалась непреодолимой для возможностей программиста. К концу 70-х к "критической" точке подошло довольно много проектов. Решить эту проблему "Взялись" новые технологии программирования. Одна из них получила название объектно-ориентированного программирование (ООП). Несмотря на то, что язык Cи был одним из самых любимых и распространенных профессиональных языков программирования, настало время, когда его возможности по написанию сложных программ достигли своего предела. Желание преодолеть этот барьер и помочь программисту легко справляться с еще более объемными и сложными программами – вот что стало основной причиной создания С++ [2].

Язык С++ который многие называют (Си с классами) был создан Бьерном Страуструпом (Bjame Stroustrup) в 1979 году в компании Bell Laboratories (г. Муррей-Хилл, шт. Нью-Джерси) он способствовал добавлению в привычный Си методы объектного языка – классы, служащие для представления внутренней структуры объектов, механизм наследования и новые средства работы с динамической памятью и с вводом/выводом. Благодаря данным средствам появилась возможность не только писать объектно-ориентированные программы, но и создавать библиотеки шаблонов, классов – т.е. расширить инструментарий пользователя и сферу применения самого языка [2].

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

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

Создание Си знаменует собой начало современной эпохи программирования. Язык Си был разработан Деннисом Ритчи (Dennis Ritchie) в 1970-е годы для программирования на мини – ЭВМ DEC PDP-11 под управлением операционной системы Unix. Несмотря на то, что в ряде предшествовавших языков, в особенности Pascal, был достигнут значительный прогресс, именно Си установил тот образец, которому до сих пор следуют в программировании [3].


Язык Си появился в результате революции в структурном программировании в 1960-е годы. До появления структурного программирования писать большие программы было трудно, поскольку логика программы постепенно вырождалась в так называемый "макаронный" код — запутанный клубок безусловных переходов, вызовов и возвратов, которые трудно отследить. В структурированных языках программирования этот недостаток устранялся путем ввода строго определенных управляющих операторов, подпрограмм с локальными переменными и других усовершенствований. Благодаря применению методов структурного программирования сами программы стали более организованными, надежными и управляемыми [1].

Хотя в то время существовали и другие структурированные языки программирования такие как (Pascal, Ada) именно в Си впервые удалось добиться удачного сочетания эффективности, изящества и выразительности. Благодаря своему краткому, но простому синтаксису в сочетании с принципом, ставившим во главу угла программиста, а не сам язык, Си быстро завоевал многих сторонников. Сейчас уже нелегко представить себе, что Си оказался своего рода "струей свежего воздуха", которого так не хватало программистам.
В итоге Си стал самым распространенным языком структурного программирования в 1980-е годы [3].

Первый официальный стандарт языка Си приняли в 1989 году в Американском национальном институте стандартов (American National Standards Institute – ANSI). Эту версию языка на практике обозначают С89. Также, данный стандарт приняла и Международная организация стандартов (International Standarts Organization – ISO). В 1995г. стандарт С89 был незначительно изменен. По мере роста популярности языка С многие программисты стали применять его для программирования всех задач, используя его машино-независимость и эффективность, а кроме того, он им просто нравился [2].

Язык С++ был создан Бьерном Страуструпом (Bjane Stroustrup) в 1979 году в компании Веll Laboratories (г. Муррей-Хилл, шт. Нью-Джерси). Сначала новый язык получил имя "Си с классами" (С with Classes), но в 1983 году он стал называться С++. Страуструп построил С++ на фундаменте языка Си, включающем все его средства, атрибуты и основные достоинства. Для него также остается в силе принцип Си, согласно которому программист, а не язык, несет ответственность за результаты работы своей программы. Именно этот момент позволяет понять, что изобретение С++ не было попыткой создать новый язык программирования. Это было скорее усовершенствование уже существующего (и при этом весьма успешного) языка [2].


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

Теперь вместо того, чтобы изучать совершенно новый язык, С-программисту достаточно было освоить только ряд новых средств, и он мог пожинать плоды использования объектно-ориентированной технологии программирования.

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

Несмотря на то, что язык С++ задумывался как набор объектно-ориентированных расширений для языка Си, впоследствии он смог развиться как самостоятельный язык программирования. В 1994 года приняли первый проект предложенного на рассмотрение стандарта.

В 1999 году приняли второй ANSI/ISO – стандарт для языка Си. Эта версия называется С99, включающая набор усовершенствований, а также некоторые новые средства. Одни из этих «новых» средств пришли из языка С++, а другие представляют пользователю совершенно иные, новые возможности.

Таким образом, отдельные элементы, привнесенные в С99, несовместимы с языком С++. Это значит, что с появлением версии С99 стандарт языка Си больше не считается чистым подмножеством языка С++. К счастью, причина многих «несовместимостей» связана со средствами специального назначения, которые можно легко преодолеть. В итоге, и этот вариант языка Си дает возможность создавать программы, которые будут совместимы с языком С++.

В последующие несколько лет велись работы с целью вырабатывания новых стандартов языков Си и С++, завершившиеся в конце 2011года.

В октябре 2011года появился новый стандарт языка [6]. Его обозначение – C++11 или ISO/IEC 14882:2011. Полная его поддержка обещана в GCC 4.7. А в декабре 2011г. принимают новый стандарт и для языка Си. Эту версию условно называют С11 или ISO/IEC 9899:2011. Часть её возможностей уже сейчас поддерживается компилятором GCC.

Помимо С++, существуют два других современных языка программирования: Java и С# (C Sharp). Язык. Jаvа разработан компанией Sun Microsystems, а С# (C Sharp) – компанией Мicrоsоft [2].


Базовые понятия языков Си и С++

Алфавит языка представляет собой набор знаков (символов), который допустим в данном языке. Такое определение справедливо и для языка человека, и для языков программирования.

В языке С++ алфавит можно условно разделить на группы знаков:

  • прописные и строчные латинские буквы (A, B,..., Z, a, b,..., z);
  • арабские цифры (0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
  • специальные знаки: ", { } | [ ] ( ) + - / % \ ; '. : ? < = > _ ! & * # ~ ^;
  • пробельные символы – это символы пробела, табуляции, перехода на новую строку [6].

Идентификатор – это имя какого-либо объекта программы. Например, имена дают переменным, функциям, классам и так далее. Имя может состоять из латинских букв, цифр и символа _ (символ подчеркивания). Начинаться имя может с буквы или символа подчеркивания, но не с цифры. Важно учитывать, что прописные и строчные латинские буквы, используемые в идентификаторах, считаются различными (это требование является общим для всех Си-подобных языков: Си, С++, С#, Java, Perl и многих других. В таких же языках, как Fortran, Pascal, Basic не делается различия в именах между прописными и строчными латинскими буквами).

Пример допустимых идентификаторов:

  • Alfa Alfa;
  • ALFA x _x a25 i_tek.

Обратим внимание: здесь alfa, Alfa и ALFA – разные имена.

Имена, подобные приведённым ниже, ни в коем случае нельзя использовать в качестве идентификаторов:

  • 25a (начинается с цифры);
  • Дождь (кириллица не допустима).

Общепринятые рекомендации по использованию имён:

  • желательно, чтобы имя объекта было осмысленным, но не обязательно;
  • в качестве имён констант используйте имена, состоящие из прописных латинских букв, например: AI, GAMES;
  • не используйте имена, начинающиеся с символа подчеркивания, так как такие имена часто используют разработчики компиляторов для своих целей;
  • чем больше область видимости имени, тем более выразительным и длинным должно быть имя.

Короткие однобуквенные или двухбуквенные имена допустимы только внутри небольших блоков программы, внутри коротких функций пользователя. Длина имени в большинстве случаев не ограничена, но на длину внешних имён (имён библиотек, функций) может накладывать ограничение операционная система [6].

Ключевые (зарезервированные) слова – это слова, которые можно использовать в программе только по их прямому назначению, то есть эти имена нельзя использовать для обозначения, например, своих переменных [2].

В языке С++ имеется 63 ключевых слова. Все они приведены в (Прил.1). Константы – это неизменяемые величины. В языке C++ имеется пять типов констант: целые, вещественные, символьные, строковые и булевы.