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

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

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

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

Добавлен: 16.05.2023

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

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

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

Введение

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

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

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

Цель работы - изучить историю возникновения и развития языков Си (C++) и Java. Для этого необходимо решить следующие задачи:

1) изучить источники информации по теме;

2) описать историю возникновения и эволюцию языков Си (С++) и Java;

3) указать на достоинства рассматриваемых языков программирования.

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

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

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

Язык Си восходит корнями к языку ALGOL (расшифровывается как ALGorithmic Language), который был создан в 1958 году совместно с комитетом Европейских и Американских учёных в сфере компьютерных наук на встрече в 1958 в Швейцарской высшей технической школе Цюриха.

Вдохновлённые языком ALGOL-60, Математическая лаборатория Кембриджского Университета совместно с Компьютерным отделом Лондонского университета создали в 1963 году язык CPL (Combined Programming Language).

Язык CPL посчитали сложным, и в ответ на это Мартином Ричардсоном был создан в 1966 году язык BCPL, основное предназначение которого заключалось в написании компиляторов. В своё время из-за хорошей портируемости указанный язык играл важную роль.


Язык BCPL послужил предком для языка Би, разработанного в 1969 году Кеном Томпсоном и Денсом Ритчи. Язык Би был использован для написания самых ранних версий UNIX, созданной как ответ на проект Multics. Именно этот язык послужил непосредственным предшественником языка Си.

По поводу возникновения языка Си Питер Мойлан в своей книге «The case against C» пишет: «Нужен был язык, способный обойти некоторые жесткие правила, встроенные в большинство языков высокого уровня и обеспечивающие их надежность. Нужен был такой язык, который позволил бы делать то, что до него можно было реализовать только на ассемблере или на уровне машинного кода.» Си стал именно таким языком. Это обусловило его дальнейшую популярность в таких отраслях программирования, как написание драйверов и прочих аспектах низкоуровневого программирования.

Язык программирования Си был разработан в стенах Bell Labs в период с 1969 по 1973 годы. По словам Ритчи, самый активный период творчества приходился на 1972 год.

За всё время своего существования, язык Си оброс легендами по поводу мотивов своего создания.

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

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


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

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

Первая книга, посвящённая языку Си была написана Керниганом и Ритчи в 1978 году и вышла в свет под названием «Язык программирования Си». Эта книга, в среде программистов более известная как «K&R», стала неофициальным стандартом языка Си.

В конце 1970-х годов, язык си начал вытеснять BASIC, который в то время был ведущим в области программирования микрокомпьютеров. В 1980-х годах он был адаптирован под архитектуру IBM-PC, что привело к значительному скачку его популярности. В то же время Бьярн Страуструп начал разработку языка программирования, который бы сочетал в себе синтаксис популярного языка Си и концепцию объектно-ориентированного программирования, которая становилась всё более востребованной, так началась разработка языка С++, речь о котором пойдет в разделе 1.2. более подробно.

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


Разработкой стандарта языка Си занялся Американский национальный институт стандартов (ANSI). При нём в 1983 году был сформирован комитет X3J11, который занялся разработкой стандарта. Первая версия стандарта была выпущена в 1989 году и получила название С89. В 1990, внеся небольшие изменения в стандарт, его приняла Международная Организация Стандартизации ISO. Тогда он стал известен под кодом ISO/IEC 9899:1990, но в среде программистов закрепилось название, связанное с годом принятия стандарта: С90. Последней на данный момент версией стандарта является стандарт ISO/IEC 9899:1999, также известный как С99, который был принят в 2000 году.

Среди новшеств стандарта С99 стоит обратить внимание на изменение правила, касающегося места объявления переменных. Теперь новые переменные можно было объявлять посреди кода, а не только в начале составного блока или в глобальной области видимости. Это уводит Си от концепции объявления переменных в начале функции, которая присутствует в Паскале. Тем не менее, даже с принятием стандарта С99, в программе Borland Embarcadeo RAD Studio 2010, ограничение на объявление переменных в начале блока кода всё ещё действует. Также можно указать другие места, в которых стандарты Си не до конца соблюдаются. Есть мнение, что это связано с тем, что основное внимание больших компаний, таких как Microsoft и Borland сосредоточено на более новых языках программирования. Однако, согласно заверениям компании Sun Microsystems, её среда разработки Sun Studio полностью поддерживает С99.

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

8 декабря 2011 опубликован новый стандарт для языка Си (ISO/IEC 9899:2011). Были внесены следующие основные изменения:

  1. поддержка многопоточности;
  2. улучшенная поддержка Юникода;
  3. обобщённые макросы (type-generic expressions, позволяют статичную перегрузку);
  4. анонимные структуры и объединения (упрощают обращение ко вложенным конструкциям);
  5. управление выравниванием объектов;
  6. новый режим эксклюзивного открытия файла и другое.

Итак, Си - компилируемый статически типизированный язык программирования общего назначения, разработанный в 1969—1973 годах сотрудником Bell Labs Деннисом Ритчи как развитие языка Би. Первоначально был разработан для реализации операционной системы UNIX, но впоследствии был перенесён на множество других платформ. Согласно дизайну языка, его конструкции близко сопоставляются типичным машинным инструкциям, благодаря чему он нашёл применение в проектах, для которых был свойственен язык ассемблера, в том числе как в операционных системах, так и в различном прикладном программном обеспечении для множества устройств — от суперкомпьютеров до встраиваемых систем. Язык программирования Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования, как C++, C#, Java и Objective-C.


Перейдем к рассмотрению истории развития языка C++.

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

Разработчиком языка С++ и создателем первого транслятора является Бьерн Страуструп. Он родился 30 декабря 1950 года в Дании в городе Орхус. Поступил в Орхусский университет (Дания) на отделение информатики. Закончив его (1975), он получил степень магистра. Позже защитил диссертацию (Ph. D.) по информатике в Кембриджском университете (1979).

Страуструп стал первопроходцем в области использования объектно-ориентированной и обобщённой парадигм программирования в области создания программных приложений, где эффективность является приоритетным свойством, таких как симуляторы, графика, пользовательские интерфейсы, прикладные системы, системы для научных вычислений. Книга Страуструпа «Язык программирования C++» — одна из самых широко читаемых книг из своей области, которая была переведена на 19 языков..

Безусловно С++ многим обязан языку Си, который сохраняется как его подмножество. Сохранены и все свойственные Си средства низкого уровня, предназначенные для решения самых насущных задач системного программирования. Многим язык обязан своему предшественнику языку BCPL. Комментарий языка BCPL был восстановлен в С++. Еще одним источником вдохновения был язык SIMULA-67. Именно из него была заимствована концепция классов (вместе c производными классами и виртуальными функциями). Возможность в С++ перегрузки операций и свобода размещения описаний всюду, где может встречаться оператор, напоминают язык Алгол-68.

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

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

Название С++ было придумано Риком Маскитти летом 1983 г. Это название отражает эволюционный характер изменений языка Си. Обозначение ++ относится к операции наращивания Си. Чуть более короткое имя С+ является синтаксической ошибкой. Кроме того, оно уже было использовано как название совсем другого языка. Язык не получил названия D, поскольку он является расширением Си, и в нем не делается попыток решить какие-либо проблемы за счет отказа от возможностей С.