Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

История возникновения и развития языков программирования C(C++) и Java»

Содержание:

ВВЕДЕНИЕ

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

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

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

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

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

В середине прошлого века все начиналось с записи программ в форме отверстий на специальных картонных карточках – перфокартах. Современные концепции программирования – объектно-ориентированное программирование и модель компонентных объектов COM+.

Процесс программирования на языке программирования высокого уровня является интересным и полезным опытом.

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

Актуальность курсовой работы состоит в полезности изучения истории появления и формирования языков программирования C (C++) и Java для понимания тенденций развития современного программирования.

Объектом исследования курсовой работы являются языки программирования.

Предметом исследования курсовой работы является история появления и развития языков программирования C(C++) и Java.

Цель курсовой работы – изучение истории появления и формирования языков программирования C(C++) и Java, а также перспектив их развития в контексте развития вычислительной техники.

Задачи курсовой работы:

  • изучить историю появления языка программирования C и его назначение;
  • изучить историю появления языка программирования высокого уровня Java и его назначение;
  • сравнить языки программирования C(C++) и Java с точки зрения реализации основных алгоритмических конструкций;
  • выполнить анализ полученных результатов.

1 УСТРОЙСТВО СОВРЕМЕННОГО КОМПЬЮТЕРА

1.1 Аппаратура современного персонального компьютера

После изобретения и конструирования первой ЭВМ компьютерная техника постоянно развивалась и совершенствовалась. В результате сегодня люди могут пользоваться большим количеством разнообразных компьютеров – от микропроцессорных устройств и до суперкомпьютеров. Характеристики любого из этих устройств в тысячи раз превышают характеристики и возможности первого компьютера.

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

Основные из принципов фон Неймана:

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

Архитектура фон Неймана представлена на рисунке 1.

s1200

Рисунок 1 - Архитектура фон Неймана

В современных персональных компьютерах принцип фон Неймана реализован посредством магистрально-модульного принципа построения.

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

Все внешние (периферийные) устройства присоединяются к разъемам, расположенным на системной (материнской) плате, которая является основным аппаратным компонентом компьютера. На системной плате реализована магистраль обмена информацией, расположены разъемы для установки оперативной памяти и процессора, а также слоты для установки контроллеров внешних устройств.

Материнская плата представлена на рисунке 2.

Системная плата

Рисунок 2 – Системная плата компьютера

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

  • шина данных;
  • шина адреса;
  • шина управления.

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

Шина адреса необходима для обмена информацией между оперативной памятью и процессором.

По шине данных идет обмен данными между внутренними и внешними устройствами.

Схематическая иллюстрация магистрально-модульного устройства компьютера представлена на рисунке 3.

Магистрально-модульное устройство компьютера

Рисунок 3 - Магистрально-модульное устройство компьютера

1.2 Программное обеспечение современного персонального компьютера

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

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

Программное обеспечение современных персональных компьютеров состоит из большого количества различных программ, которое условно делят на три большие группы:

  • системное программное обеспечение (системные программы);  
  • прикладное программное обеспечение (прикладные программы);  
  • инструментальное обеспечение (инструментальные системы).

Классификация программного обеспечения представлена на рисунке 4.

img-u_RxOz

Рисунок 4 – Классификация программного обеспечения

К системному программному обеспечению относят программы, которые управляют работой узлов компьютера и реализуют разные вспомогательные (сервисные) функции, такие, как:

  • создание резервных копий информации
  • управление ресурсами компьютера
  • проверка исправности компонентов компьютера
  • предоставление справочной информации о ПК.

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

Основное место среди системных программ принадлежит операционным системам.

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

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

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

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

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

Инструментальное программное обеспечение состоят из:

  • систем программирования;
  • интегрированных сред разработки приложений;
  • средства моделирования программного обеспечения.

Системы программирования основаны на использовании одного из языков программирования – например, Basic, C++, Java, Pascal и др.

Система программирования, как правило, содержит:

  • редактор текстов (обеспечивает создание и редактирование программного кода на исходном языке программирования (исходных программ);
  • транслятор;
  • динамические и статические библиотеки подпрограмм.

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

Системы моделирования позволяют решить широкий спектр задач – от математического моделирования (Matlab, MathCAD) до моделирования бизнес-процессов (IBM Rational Rose, ARIS Express и др.).

1.3 Инструментальное программное обеспечение

Первым языком программирования, который использовался разработчиками, был язык машинных кодов.

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

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

К достоинствам машинного языка относят высокую скорость выполнения программы и полный доступ ко всем аппаратным ресурсам ЭВМ. Язык машинных кодов – это язык низкого уровня.

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

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

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

img-pJFa5P

Рисунок 5 – Классификация языков программирования

Из классификации видно, что язык C появился как машинно-ориентированный язык программирования. В процессе развития языка его уровень становился все более абстрактным, и современные версии его поддерживают все актуальные концепции разработки программного обеспечения. Например, языки программирования C++ и C# являются объектно-ориентированными языками программирования высокого уровня, и состоят в одной группе языков с Java.

2 СОВРЕМЕННЫЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

2.1 Языки программирования

Языки разработки программ для компьютеров – языки программирования – делят на три группы:

  • машинные языки (языки программирования низкого уровня);
  • машинно-ориентированные языки (языки ассемблера);
  • машинно-независимые языки (языки программирования высокого уровня).

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

Типичная система команд процессора состоит из следующих типов инструкций:

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

Машинный язык (язык процессора) представляет собой набор инструкций, каждая из которых реализует определенную элементарную операцию по преобразованию информации, представленной в двоичном коде. Универсальное использование двоичного кода представления информации самых разнообразных форм приводит к тому, что программа решения даже достаточно простой задачи содержит сотни машинных команд. Разработка такой программы в машинных кодах является сложным процессом даже для квалифицированного программиста.

Пример программы в машинных кодах представлен на рисунке 6.

8010458496_5b69719f23

Рисунок 6 – Программа в машинных кодах

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

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

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

Предшественниками языков высокого уровня являются машинно-ориентированные языки или языки автокодов. Классический представитель машинно-ориентированных языков – язык ассемблер. По своим характеристикам и методам программирования он очень напоминает к машинный язык, но сильно отличается от машинного языка по методам представления инструкций. Большинство его команд является точным представлением машинных команд, но описанных в символическом виде, что гораздо удобнее для программиста и проще воспринимается любым человеком, читающим и анализирующим код программы. Преимущество ассемблера перед языком машинных кодов заключается в том, что программисту уже не надо помнить наизусть числовые коды команд процессора, достаточно знать их символическое представление. Помимо этого, именно на стадии внедрения и развития машинно-ориентированных языков программирования входит в практику понятие переменной, как именованной области памяти для хранения данных. Одновременно с внедрением понятия переменной появляется в теории программирования и понятие типа данных. Возможность использования как числовой, так и текстовой информации в привычной для человека форме появилась с введением в практику машинно-ориентированных языков программирования.

Фрагмент программы на ассемблере представлен на рисунке 7.

img2

Рисунок 7 – Пример программы на ассемблере

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

По заказу фирмы IBM под руководством Джона Бэкуса был разработан алгоритмический язык программирования FORTRAN (FORmula TRANslator). Появление языка FORTRAN, давшего программистам возможность записи вычислительных алгоритма с использованием условных операторов и операторов ввода - вывода, стало началом отсчета эры алгоритмических языков программирования.

Пример программы, записанной на языке программирования высокого уровня, представлен на рисунке 8.

91270-58_1

Рисунок 8 – Программа на языке программирования высокого уровня Pascal

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

К языкам программирования высокого уровня установлены следующие требования:

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

Условно соотношение уровней языков программирования представлено на рисунке 9.

img3

Рисунок 9 – Соотношение языков программирования

2.2 Языки программирования высокого уровня

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

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

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

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

Есть два основных способа реализации языка:

  • компиляторы;
  • интерпретаторы.

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

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

Разницу между компилятором и интерпретатором можно сравнить с разницей между письменным переводом текста и синхронным переводом устной речи.

Любой язык программирования высокого уровня может иметь как компилятор, так и интерпретатор, но у большинства языков выделяют предпочтительный способ трансляции. Например, для языков программирования высокого уровня Fortran, Pascal, Modula-2 практически всегда используют компилятор. Logo почти всегда интерпретируется. Для Basic и Lisp широко используют обе формы трансляции.

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

Специализация некоторых языков программирования высокого уровня представлена в таблице 1.

Таблица 1 – Специализация языков программирования высокого уровня

3 ИСТОРИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ C(C++) И Java

3.1 Рейтинг популярности языков программирования

Для определения популярности языка программирования многие специалисты обращаются к рейтингу TIOBE. Индекс TIOBE – programming community index – индекс, оценивающий популярность языков программирования, на основе подсчета результатов поисковых запросов, содержащих название языка. Логика этого индекса очень проста: «Если язык ищут в поисковых системах, то он популярен». С таким подходом можно спорить, но многие профессионалы считают, что он довольно точно отражает картину на рынке языков программирования и чувствителен к часто появляющимся новинкам.

Рейтинг печатается ежемесячно и включает позиционирование языков программирования, вошедших в первую двадцатку на текущий месяц и на тот же период прошлого года. Рейтинг TIOBE за июля 2020 года представлен на рисунке 10.

Анализ рейтинга показывает, что в течение последнего года языки программирования C и Java делили две первые позиции, попеременно уступая один другому первую строку популярности, в целом показывая и количественный рост процента востребованности.

Также можно отметить и то, что производные языка программирования C++ и C# по-прежнему популярны и прочно занимают в рейтинге TIOBE 4 - 5 строки.

Ретроспектива рейтинга популярности с пятилетним шагом (рисунок 11) демонстрирует незыблемые позиции языка программирования C, популярность его производных C++ и C#.

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

Рисунок 10 – Индекс TIOBE на июль 2020 года

Рисунок 11 – Ретроспектива популярности языков программирования

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

3.2 История появления и развития языка программирования C(C++)

Язык программирования C – компилируемый статически типизированный язык программирования общего назначения.

Язык программирования C берет свое начало в одном из первых языков программирования высокого уровня ALGOL ( от англ. ALGOrithmic Language – алгоритмический язык). Алгол был разработан в 1958 году комитетом Европейских и Американских ученых в сфере компьютерных наук и явился попыткой исправления отдельных недостатков языка программирования FORTRAN.

Язык программирования С был разработан в стенах AT&T Bell Telephone Laboratories в период с 1969 по 1973 годы. Создателем языка программирования C считают сотрудника лаборатории Денниса Ритчи (рисунок 12). Целью создания языка, по словам разработчика, было удовлетворение потребности программистов, которые «хотят заниматься системным программированием, но не хотят учить ассемблер».

Рисунок 12 – Разработчик языка C Деннис Ритчи

В 1983 году утвержден стандарт языка программирования, получивший название ANSI C.

При появлении парадигмы объектно-ориентированного программирования на основе языка программирования C был разработан язык C++, реализующий этот подход.

Компилятор языка C унаследовал традицию, заложенную еще разработчиком другого популярного языка программирования Pascal – Никлаусом Виртом, и был написан на самом C.

Согласно мнению большинства специалистов, название языка С является третьей буквой алфавита (его разработка следовала за разработкой языка B). Оно появилось как указание на то, что язык Си является более усовершенствованным, чем язык B. Но сам разработчик по поводу названия языка объяснял:

«Создав систему типов, соответствующий синтаксис и компилятор для нового языка, я почувствовал, что он заслуживает нового имени: NB показалось мне недостаточно четким. Я решил следовать однобуквенному стилю и назвал его C (Си), оставляя открытым вопрос, являлось ли после B это следующей буквой в алфавите или в названии BCPL».

Успех языка программирования C специалисты в первую очередь связывают с тем, что на нем написана значительная часть операционной системы UNIX, которая в итоге приобрела очень высокую популярность. Если считать по количеству используемых в настоящее время операционных систем, то UNIX она является самой распространенной системой в мире. В связи с ее популярностью, а также с тем, сегодня объем операционной системы измеряется в миллионах строк кода (например, в последних версиях ОС Linux содержится более 10 000 000 строк кода), задача о переписывании UNIX на другой язык программирования становиться практически невыполнима.

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

В 1983 году в рамках Американского Национального Института Стандартов (ANSI) был утвержден стандарт языка программирования, получивший название ANSI C.

После многих доработок стандарт был закончен в 1988 и формально принят в декабре 1989 как стандарт ANSI X3.159-1989. В 1990 году он был утвержден международной организацией по стандартизации (ISO) как интернациональный стандарт ISO/IEC 9899:1990. Эту версию языка обычно называют C89 или C90, для того, чтобы не путать ее с оригинальной версией C, которую обычно называют K&R C.

Язык подвергся небольшим изменениям в 1995 (изменения описаны в документе, который обычно называют Поправка 1). Более значительные изменения случились в 1999 году, когда был опубликован стандарт ISO/IEC 9899:1999. Язык, описанный в этом стандарте, обычно называют C99.

В 2011 году вместе с редакцией языка C++ был выпущен стандарт C11.

Развитием языка программирования C является его объектно-ориентированное продолжение C++. Язык возник в начале 1980-х годов, когда сотрудник компании AT&T Bell Telephone Laboratories Бьёрн Страуструп (рисунок 13) придумал ряд усовершенствований к языку C под собственные нужды.

Рисунок 13 – Разработчик языка C++ Бьёрн Страуструп

Страуструп добавил к C возможность работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C). В первую очередь в C были добавлены классы (с инкапсуляцией), наследование классов, строгая проверка типов, inline-функции и аргументы по умолчанию. Ранние версии языка, первоначально именовавшегося «C with classes» («Си с классами»), стали доступны с 1980 года. Новый язык приобрел большую популярность среди программистов.

К 1983 году в язык были добавлены новые возможности, такие как виртуальные функции, перегрузка функций и операторов, ссылки, константы, пользовательский контроль над управлением свободной памятью, улучшенная проверка типов и новый стиль комментариев. Получившийся язык уже перестал быть просто дополненной версией классического C и был переименован из C с классами в «C++». Его первый коммерческий выпуск состоялся в октябре 1985 года.

Имя языка, получившееся в итоге, происходит от оператора унарного постфиксного инкремента C++ (увеличение значения переменной на единицу).

В 1998 году был опубликован стандарт языка ISO/IEC 14882:1998 (известный как C++98). В 2003 году был опубликован стандарт языка ISO/IEC 14882:2003, в котором были исправлены выявленные ошибки и недочеты предыдущей версии стандарта.

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

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

Язык программирования Java разработан в компании Sun Microsystems в начале девяностых годов двадцатого века. Ведущую роль в создании языка сыграл канадский инженер Джеймс Гослинг (рисунок 14).

https://www.chimerarevo.com/wp-content/uploads/2010/04/gosling.jpg

Рисунок 14 – Разработчик языка Java Джеймс Гослинг

На ранних этапах разработки язык назывался Oak. Затем его переименовали в честь сорта кофе Java. Связь языка с напитком отражается в логотипе (рисунок 15).

https://www.younggates.com/uploads/1589090455java.jpg

Рисунок 15 – Логотип языка программирования Java

Джеймс Гослинг и его единомышленники хотели создать язык с C-подобным синтаксисом. В то же время он должен быть более простым по сравнению с С/С++. Создатели планировали использовать Java для программирования бытовой электроники. Однако практически сразу после выпуска версии 1.0 в 1995 язык стали использовать разработчики серверного и клиентского программного обеспечения.

Язык программирования Java – язык программирования общего назначения. Относится к объектно-ориентированным языкам программирования с сильной типизацией.

Создатели реализовали принцип WORA: write once, run anywhere – «пиши один раз, запускай где угодно». Такой подход означает, что написанное на Java приложение можно запустить на любой платформе, если на ней установлена среда исполнения Java.

Эта задача решается благодаря компиляции написанного на Java кода в байт-код. Этот формат исполняет JVM или виртуальная машина Java. JVM — часть среды исполнения Java (JRE). Виртуальная машина не зависит от платформы.

В Java реализован механизм управления памятью, который называется сборщиком мусора (garbage collector). Разработчик создает объекты, а JRE с помощью сборщика мусора очищает память, когда объекты перестают использоваться.

Синтаксис языка программирования Java похож на синтаксис других C-подобных языков, но имеет и особенности:

  • чувствительность к регистру – идентификаторы User и user в Java представляют собой разные сущности;
  • для именования методов используется lower Camel Case. Если название метода состоит из одного слова, оно должно начинаться со строчной буквы;
  • для именования классов используется upper Camel Case. Если название состоит из одного слова, оно должно начинаться с прописной буквы.
  • название файлов программы должно точно совпадать с названием класса с учетом чувствительности к регистру;
  • идентификаторы всегда начинаются с буквы (A-Z, a-z), знака $ или нижнего подчеркивания _.

По данным компании Oracle, нынешнего владельца прав на язык программирования), программы на Java запускаются на 3 миллиардах устройств. Именно такое сообщение можно увидеть в окне установки.

На языке программирования Java написано множество серверных приложений для корпораций, популярные фреймворки (например, Spring Stuts< JSP) используются для создания разных приложений в web – от образовательных платформ до правительственных ресурсов.

Популярная компьютерная игра Minecraft написана на Java.

Мобильная разработка – еще одна область использования Java. На этом языке пишут приложения для устройств, работающих под управлением ОС Android.

На Java создают клиентские приложения. К примеру, популярная у разработчиков интегрированная среда разработки IDE NetBeans написана на Java.

Язык программирования Java применяется для работы с Big Date, разработки программ для научных целей, например, обработки естественных языков, программирования приборов – от бытовых устройств до промышленных установок.

Подводя итоги, можно сделать следующие выводы:

  • оба языка программирования – Java и семейство C/C++ являются современными языками, дающими разработчикам универсальные инструменты для решения любых задач;
  • оба языка поддерживают современные концепции программирования и пригодны для разработки ПО любой сложности.

ЗАКЛЮЧЕНИЕ

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

Работа состоит из трех глав. В первой главе подробно рассмотрено устройство современного компьютера, благодаря которому стали возможными современные привычные уже нам явления – персональный компьютер, смартфон, глобальная сеть Интернет и облачные вычисления. Устройство компьютера проанализировано сточки зрения единства двух уровней – физического (аппаратура) и логического (программное обеспечение).

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

Третья глава посвящена исследованию языков программирования Java и С(С++):

  • популярность языков согласно индексу TIOBE;
  • история развития и возможности семейства языков программирования C/C++;
  • история развития и возможности языка программирования Java.

Рассматривая изученные языки программирования и сопоставляя их, можно сделать следующие выводы. Оба языка являются универсальными современными средствами разработки программного обеспечения. Несмотря на то, что язык программирования Java более молодой и легковесный, многие профессионалы продолжают выбирать C/C++. Языки одинаково популярны среди разработчиков.

Задачи курсовой работы выполнены, цель достигнута.

СПИСОК ЛИТЕРАТУРЫ

  1. Берд, Б. Java для чайников / Барри Берд. - М.: Диалектика / Вильямс, 2016. - 521 c.
  2. Боровский, А. C++ и Pascal в Kylix 3. Разработка интернет-приложений и СУБД / А. Боровский. - СПб.: БХВ-Петербург, 2015. - 544 c.
  3. Васильев А.Н. Программирование на С++ в примерах и задачах. – М.: Издательство Э, 2017. – 368 с.
  4. Вирт Н. Алгоритмы и структуры данных. - М.: Мир, 2012.- 121 с.
  5. Гарнаев, Андрей WEB-программирование на Java и JavaScript / Андрей Гарнаев , Сергей Гарнаев. - Москва: СПб. [и др.] : Питер, 2017. - 718 c.
  6. Ишкова Э.А. Изучаем С++ на задачах и примерах. – М.: Наука и техника, 2016. – 240 с.
  7. Кольцов Д.М. 100 примеров на Си. – М.: Наука и техника, 2017. – 256 с.
  8. Мешков, А. Visual C++ и MFC / А. Мешков, Ю. Тихомиров. - СПб.: БХВ-Петербург, 2016. - 546 c.
  9. Монахов, В. Язык программирования Java и среда NetBeans (+ CD-ROM) / В. Монахов. - М.: БХВ-Петербург, 2015. - 720 c.
  10. Потопахин В.В. Язык С. Освой на примерах. – СПб.: БХВ – Петербург, 2015. – 320 с.
  11. Саттер, Герб Новые сложные задачи на C++. – М.: Вильямс, 2015. – 272 c.
  12. Тимофеев В.В. Самоучитель С++ как он есть. – М.: Бином, 2016. – 336 с.
  13. Хабибуллин, И. Самоучитель Java / Ильдар Хабибуллин. - М.: БХВ-Петербург, 2016. - 768 c.
  14. Эккель, Б. Философия Java / Брюс Эккель. - М.: Питер, 2016. - 809 c.