Файл: История возникновения и развития языка программирования Си (С++) и Java (ПРОГРАММИРОВАНИЕ НА С И С++)..pdf

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

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

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

Добавлен: 02.04.2023

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

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

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

ВВЕДЕНИЕ

Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем , разнообразных

прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений. Существует множество реализаций языка C++, как бесплатных, так и коммерческих и для различных платформ. Например, на платформе x86 это GCC, Visual C++, Intel C++ Compiler, Embarcadero (Borland) C++ Builder и другие. C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.

Актуальность изучения основ языков программирования всегда играет большую роль в обучении, так как на данном этапе закладываться базовые знания по основным направлениям. Если специалист в области информационных технологий владеет данными языками, он будет всегда иметь работу с большим заработком.

Цель данной работы - ознакомиться с историей возникновения и развития языков программирования С и С++ и Java.

Предмет исследования: язык программирования С++, Java. Изучение основ и тонкостей этих зыков и их применения для решения задач широкого круга направленности.

Объект исследования: возможности объектно - ориентированного языка программирования С ++ и языка Java.

В ходе поставленной цели будут решены следующие задачи:

1. Описана краткая история развития языков С и С++

2. Даны базовые понятия языка С

3. Освящена краткая история возникновения языка программирования Java

4. Даны базовые понятия языка Java

Курсовая работа состоит из введения, двух глав, заключения и списка литературы.

В курсовой работе использованы работы следующих авторов: Александреску А., Ашарина И.В. , Баженова И.Ю. , Белоусова С.Н. , Керниган, Б.У., Монахов В.В.

ГЛАВА 1. ПРОГРАММИРОВАНИЕ НА С И С++

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

Язык С (по-русски произносится как «Си») был разработан сотрудником фирмы AT&T из подразделения Bell Labs Денисом Ритчи в 1972г. во время совместной работы с Кеном Томпсоном над ОС UNIX. Прообразом С послужил язык Би (B), разработанный К. Томпсоном. Также большое влияние на С имел язык BCPL, автором которого был М. Ричардсоном [8].

Язык С разрабатывался в основном как инструмент для системного программирования. Благодаря прекрасному сочетанию лаконичности конструкций и богатства выразительных возможностей язык С сумел найти быстрое распространение и стать одним из самых популярных языков как прикладного, так и системного программирования. Компиляторы языка С работоспособны почти на всех типах современных ПК в операционных системах Windows, Mac OS, Linux, FreeBSD, Solaris и др. [2].


В отличие от многих языков программирования (Ада, Алгол-60 и т.д.), вступавшими в силу только после принятия соответствующих национальных и международных стандартов, язык С изначально создавался в целях применения его как рабочего инструмента, который не ставил своей задачей широкое распространение. До 1989 года на язык С стандарта не существовало, и в роли формального описания авторы компиляторов (разработчики) применяли книгу Б. Кернигана и Д. Ритчи (первое издание), которая вышла в 1978 году в США ( на русский язык она была переведена в 1985году). Роль этой книги как неформального стандарта для языка С осталась и по сей день. Не случайно во всей литературе и различной документации по компиляторам ссылка на эту работу обозначается специальным сокращением K&R [2].

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

Язык С++ (по-русски читается «Си-Плюс-Плюс, как развитие С, появился в 1979году. Его разработчиком стал Бьярни Страуструп, в то время он начал работать в BellLabs. Разработка и усовершенствование языка С++ вызвал от его создателя значительных усилий в течении 80-х - 90-х годов. В итоге, в 1998 г. был принят ANSI/ISO-стандарт для языка С++. Если говорить общими словами, язык С++ - это объектно-ориентированная, усовершенствованная версия языка С. С++ построен на основе версии С89, которая содержала в себе все изменения 1995г., и теперь эту версию С89 называют С-подмножеством языка С++. Несмотря на то, что язык С++ задумывался как набор объектно-ориентированных расширений для языка С, впоследствии он смог развиться как самостоятельный язык программирования [13].

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

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


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

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

В октябре 2011года появился новый стандарт языка С++ Джесс либерти, «Освой самостоятельно C++ за 21 день. Его обозначение- C++11 или ISO/IEC 14882:2011. Полная его поддержка обещана в GCC 4.7.

А в декабре 2011г. принимают новый стандарт и для языка С. Эту версию условно называют С11 или ISO/IEC 9899: 2011. Часть её возможностей уже сейчас поддерживается компилятором GCC [18].

Сегодня существует очень огромное количество С-подобных языков - языков, в основу которых лег язык С. Наиболее имеющие важность из них -- это языки C++ Бьярни Страуструпа, Java фирмы Sun и С# (читается Си-Шарп) фирмы Microsoft [5].

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

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

Си является одним из наиболее важных языков программирования в истории вычислительной техники. Сегодня появилось много разных языков программирования, предлагающих множество различных функций, но во многих отношениях C стал основой для таких языков [5].

Разработка C изначально не была целью его основателей. На самом деле, различные обстоятельства и проблемы создали идеальную ситуацию для его создания. В 1960-х годах Деннис Ритчи, который был сотрудником Bell Labs (AT & T), вместе с некоторыми из своих коллег работал над разработкой операционной системы, которая могла бы использоваться многими пользователями одновременно. Эта операционная система была известна как Multics, и она должна была позволить многим пользователям совместно использовать общие вычислительные ресурсы. Multics предлагал много преимуществ, но также имел много проблем. Это была большая система, и с точки зрения затрат и выгод казалось, что затраты перевешивают выгоды [5]. 

Постепенно Bell Labs вышла из проекта. Именно тогда Ричи присоединился к Кену Томпсону и Брайану Кернигану в другом проекте. Проект включал разработку новой файловой   системы. Томпсон разработал новую файловую систему для суперкомпьютера DEC PDP - 7 на языке ассемблера. После этого создатели файловой системы внесли много улучшений, что привело к рождению UNIX. Даже происхождение названия UNIX можно проследить до его предшественника, Multics. Первоначально имя было Unics (Uniplexed Information and Computing Service) в качестве каламбура на Multics (Мультиплексные информационные и компьютерные сервисы). Позже Unics изменился на UNIX. UNIX был написан на ассемблере, который, хотя и идеально подходил для машин, был трудным предложением для людей [10]. Для интерпретации и управления UNIX использовались языки Fortran и B. Именно здесь идея развития языка Си стала формироваться в умах его создателей.


Первое изменение (пусть даже небольшое) произошло, когда Американский национальный институт стандартов (ANSI) в 1983 году сформировал комитет по стандартизации C. После обзора языка они немного изменили его, чтобы он также был совместим с другими программами. это предшествовало C. Таким образом, новый стандарт ANSI появился в 1989 году и известен как ANSI C или C89. Международная организация по стандартизации (ISO) также способствовали стандартизации C [10].

Со временем C начал использоваться в персональных компьютерах для разработки программных приложений и других целей. C эволюционировал, добавив в свой богатый набор важные функции, такие как управление памятью, функции , классы и библиотеки. C используется в некоторых из самых крупных и известных проектов и продуктов в мире. C также повлиял на разработку многих языков, таких как AMPL, AWK, csh , C++ ,C--, C# , Objective-C , бит C, D, Go , Java , JavaScript , Джулия, Limbo, LPC, Perl , PHP , Щука, обработка, Python , Rust, Seed7, Vala и Verilog [21].

Рассмотрим особенности данного языка:

1. Эффективность. Заключается в том, что программы, которые написаны на зыке С - небольшого размера с одновременно большой скоростью исполнения.

2. Лаконичность. Означает то, что запись алгоритма выразительная и краткая.

3. Компактность. Язык содержит небольшое количество встроенных средств и ключевых слов.

4. Мощность. Мощность применения достигается при помощи за использования большого числа библиотек [11].

5. Переносимость. Компиляторы созданы для всех ОС и аппаратных платформ, вследствие чего программу можно скомпилировать и запустить практически всюду [11].

Конечно, язык С имеет и недостатки. Сюда можно отнести достаточно слабый контроль преобразования типов и незащищенность в процессе работе с адресами и динамической памятью, в результате чего в программе легко совершить ошибку, которую впоследствии сложно будет обнаружить. С другой стороны, эти недостатки и дали возможность создать исполняемый код, по эффективности приближающийся к программе на языке Ассемблера. В 1981 году появляется язык С++, который многие называют “С с классами“. Автор языка – Бъярн Страуструп способствовал добавлению в привычный С методы объектного языка - классы, служащие для представления внутренней структуры объектов, механизм наследования и новые средства работы с динамической памятью и с вводом/выводом. Благодаря данным средствам появилась возможность не только писать объектно-ориентированные программы, но и создавать библиотеки шаблонов, классов - т.е. расширить инструментарий пользователя и сферу применения самого языка. С/С++ объединяет в себе вышесказанные достоинства С и новые возможности С++, предоставляя возможность “изнутри“ изучить принципы программирования высокого уровня [11].


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

В языке С++ алфавит можно условно разделить на группы знаков Джесс либерти, «Освой самостоятельно C++ за 21 день.

· прописные и строчные латинские буквы (A, B,..., Z, a, b,..., z);

· арабские цифры (0, 1, 2, 3, 4, 5, 6, 7, 8, 9);

· специальные знаки: " , { } | [ ] ( ) + - / % \ ; '. : ? < = > _ ! & * # ~ ^

· пробельные символы - это символы пробела, табуляции, перехода на новую строку [4].

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

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

Alfa Alfa ALFA x _x a25 i_tek

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

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

25a (начинается с цифры);

Альфа (кириллица не допустима) [7].

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

· желательно, чтобы имя объекта было осмысленным;

· в качестве имён констант используйте имена, состоящие из прописных латинских букв, например: PI, GAMMA;

· не используйте имена, начинающиеся с символа подчеркивания, так как такие имена часто используют разработчики компиляторов для своих целей;

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

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

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