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

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

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

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

Добавлен: 22.04.2023

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

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

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

Введение

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

Языку программирования свойственные две связанные между собой цели: он дает программисту аппарат для того, чтобы задать действия, которые должны быть выполнены, и формируются концепции, используемые программистом, размышляя о том, что делать. Ответом на первую цель является язык, который настолько «близкий к машине», что все основные машинные аспекты могут быть использованы для программиста очевидным образом. Для ответа на вторую цель идеальным является язык, который настолько близок к решаемой задаче, чтобы её концепция решения может быть выражена коротко и прямо.

В настоящее время C++ считают господствующим языком, который используют для того, чтобы разработать коммерческие программные продукты. За последние годы данное господство поколебалось так как были аналогичные претензии от такого языка как Java, но при этом общественное мнение качнулось в другую сторону, и множество из программистов, которые бросили C++ ради Jаvа, за последнее время вернулись к своей прежней привязанности.

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

Для достижения этой цели необходимо было решить такие задачи:

Изучение истории языков Си (C++) и Java;

Рассмотрение структур, эффективности, этапов развития и применение;

Дать сравнительный анализ языков Java и C++

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

Предмет исследования: история, этапы, эволюция, потенциал языков.

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


1. История возникновения и развития языка программирования C++

1.1 Возникновение и эволюция языка C+ +

C++ - один из самых популярных языков программирования, используемых для разработки программного обеспечения. C++ поддерживает процедурный (с помощью которого последовательно выполняемые команды могут быть собраны в подпрограммы), объектно-ориентированный (стиль кодирования, позволяющий группировать задачи в классы), обобщенное программирование (написание кода, который можно повторно использовать с объектами различных типов), сочетающих свойства высокоуровневых и низкоуровневых языков.

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

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

С++ появился в начале 1980-х годов. Б. Страуструп, сотрудник фирмы Bell Laboratories, усовершенствовал язык С под свои нужды. То есть изначально он не планировал создавать новый язык. Но в конце 1970-х программист начал работать над проблемами теории очередей (при моделировании телефонных звонков), он обнаружил, что попытки использовать существующие на тот момент языки моделирования, таких, как Симула и BCPL, оказываются неэффективными, а применение высокоэффективных машинных языков слишком сложно. Так, язык Симула имеет полезные функции для разработки большого программного обеспечения, но все работает слишком медленно, а язык BCPL достаточно быстр, но очень близок к низкоуровневым языкам, он не подходит для разработки больших программ.

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

Страуструп добавил к С возможность работы с типами данных (классами) и объектами. Благодаря быстродействию С практические задачи моделирования оказались доступными для решения на момент разработки и вычислений. В первую очередь в C были добавлены типы данных, их наследование, проверка типов и аргументы по умолчанию. Первые версии языка, изначально называвшегося Си с классами, стали доступны с 1980 года. Затем Страуструп создал компилятор cfront, который перерабатывал код С++ в код простого С, что позволило сразу применять его на практике[1].


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

В 1985 году вышло издание Языка программирования C++; это было первое описание языка, которое было очень важным из-за отсутствия официального стандарта.

В 1989 году состоялся выход второй версии C с новыми возможностями наследования, функциями и классами.

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

Стандарт C++ состоит из двух основных частей: описание стандартного сборника подпрограмм или объектов, используемых для разработки программ, и описание ядра языка. Также, существует огромное количество нестандартных библиотек C++ . В программах на C++ можно использовать многие библиотеки C[2].

Нововведениями C++ в сравнении с C являются:

  • поддержка объектно-ориентированного программирования;
  • поддержка обобщённого программирования;
  • новые типы данных;
  • исключения - реакции программы на ошибки;
  • пространства имён (хранилища для группировки уникальных идентификаторов);
  • встраиваемые функции;
  • перегрузка операторов (существования в одной области видимости нескольких различных вариантов применения оператора);
  • перегрузка имён функций;
  • ссылки и операторы управления свободно распределяемой памятью;
  • дополнения к стандартной библиотеке.

1.2 Структура и эффективность C++

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

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


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

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

Особое внимание, уделенное при разработке С++ структуре, отразилось на возрастании масштаба программ, написанных со времени разработки C. Небольшую программу (меньше 1000 строк) можно заставить работать с помощью грубой силы, даже нарушая все правила хорошего стиля. Для программ больших размеров это не совсем так. Если программа в 10 000 строк плохо структурирована, то можно обнаружить, что новые ошибки появляются так же быстро, как удаляются старые.

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

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

Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, думая о том, что делать. Первой цели идеально отвечает язык, который настолько «близок к машине», что всеми основными машинными аспектами можно легко и просто оперировать достаточно очевидным для программиста образом. Второй цели идеально отвечает язык, который настолько «близок к решаемой задаче», чтобы концепции ее решения можно было выражать прямо и коротко. С таким умыслом предварительно задумывались средства, добавленные к C для создания С++.


2. История возникновения и развития языка программирования Java

2.1 Возникновение и эволюция языка Java

Технология Java дает возможность превращать статические Web-страницы в интерактивные динамические документы и создавать распределенные независимые от платформы приложения. Первоначально язык Java корпорации Sun предназначался для устройств бытовой электроники, и некоторые из них все еще могут использовать его раннюю версию, известную как Oak. Однако, Internet стал настоящей стартовой площадкой для быстрого развития Java.

Некоторые полагают, что для успеха любого бизнеса прежде всего необходимо продумать и четко поставить задачу. Однако, очевидно, что в случае с языком программирования Java компании Sun Microsystems проблема была решена до ее формулирования.

Создатель Java Дж. Гослинг считает, что генезис этой технологии можно проследить с начала 1991 года, когда в Sun была создана небольшая группа инженеров для изучения перспектив рынка бытовой электроники. В то время World Wide Web существовала только в проектах.

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

Чтобы не связывать разработку с конкретной платформой, Дж. Гослинг начал с расширения компилятора С++. Со временем он понял, что один лишь С++ не сможет удовлетворить все потребности. Поэтому в середине 1991 года был задуман язык Oak, который впоследствии был заменен на Java.

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

В конце 1992 года, предприняв огромные усилия по доработке Oak и других компонентов было выпущено "*7" - устройство типа PDA, названное Гослингом "ручным пультом дистанционного управления". За полтора года ими было сделано столько же, сколько иные большие коллективы в Sun делали за три года: Операционную систему GreenOS, язык, инструментарий, пользовательский интерфейс, новую аппаратную платформу, три заказных микросхемы и каждый этап был связан с риском, т.к. были использованы совершенно новые технологии.