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

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

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

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

Добавлен: 06.04.2023

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

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

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

В 2005 году был выпущен отчёт Library Technical Report 1. Отчёт описывает расширения стандартной библиотеки, которые, должны быть включены в следующую версию языка C++.

С 2009 года велась работа по обновлению предыдущего стандарта, предварительной версией нового стандарта сперва был C++09, а спустя год C++0x, сегодня – C++11, куда были включены дополнения в ядро языка и расширение стандартной библиотеки.

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

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

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

В стандарт 2017 было решено добавить параллельные версии алгоритмов, работу с файловой системой, дополнительные атрибуты для управления предупреждениями при компиляции. К сожалению, в новый стандарт не попало предложение Б.Страуструпа и Г.Саттера об унификации вызовов методов и функций: можно писать как x.size(), так и size(x).

В текущем году анонсировано появление C++20 – неофициальное название стандарта ISO/IEC языка программирования C++, который ожидается после после C++17 [13].

Хотя язык программирования С++ справедливо называют продолжением С и любая работоспособная программа на языке С будет поддерживаться компилятором С++, при переходе от С к С++ был сделан весьма существенный скачок. Язык С++ выигрывал от своего родства с языком С в течение многих лет, поскольку многие программисты обнаружили, что для того, чтобы в полной мере воспользоваться преимуществами языка С++, им нужно отказаться от некоторых своих прежних знаний и приобрести новые, а именно: изучить новый способ концептуальности и решения проблем программирования. Перед тем как начинать осваивать С++, Страуструп и большинство других программистов, использующих С++ считают изучение языка С необязательным [14].


Заключение

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

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

С++ является языком программирования общего назначения. Естественная для него область применения – системное программирование, понимаемое в широком смысле этого слова. Кроме того, С++ успешно используется во многих областях приложения, далеко выходящих за указанные рамки. Реализации С++ теперь есть на всех машинах, начиная с самых скромных микрокомпьютеров – до самых больших супер-ЭВМ, и практически для всех операционных систем.

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

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