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

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

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

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

Добавлен: 12.03.2024

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

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

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

Содержание:

Введение

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

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

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

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

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

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

Поставленная цель потребовала постановку следующих задач:

1. Изучить истории программирования в целом.

2. Изучение истории языка программирования Си (C++).

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

4. Сравнение языков С++ и Java.

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


1 История развития программирования

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

Никлаус Вирт, один из основателей языков программирования, говорил, что программы состоят из структуры данных и алгоритмов [1].

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

В 205 году до н. э. Антикитерский механизм из Древней Греции был калькулятором, который использовал шестерни различных конфигурации и размеров, обусловливавших его работу, по отслеживанию метонова цикла, до сих пор применяющигося в лунно-солнечных календарях[2].

В 1206 году Аль-Джазари сконструировал программируемый автомат-гуманоид. Одна система, которая была задействована в этих устройствах, использовала кулачки и зажимы, помещённые в деревянный ящик в определённых местах. Эти зажимы и кулачки поочередно задействовали рычаги, которые управляли ударными инструментами[3].

В 1804 году Жозефом Мари Жаккаром был построен жаккардовый ткацкий станок. Этот станок произвёл революцию в ткацкой промышленности, так как с помощью его стало возможным с помощью перфокарт программировать узоры на тканях. Такой жаккардовый ткацкий станок некоторые считают самым первым программируемым устройством [3].

19 июля 1843 года Чарлзом Бэббиджем была спроектирована «Аналитическая машина», которая так и не была им построена. «Аналитическая машина» — это первое программируемое вычислительное устройство[2].

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

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

В трудах Лавлейс и Бэббиджа были определены следующие понятия:

- подпрограмма;

- библиотека подпрограмм;

- модификация команд;

- индексный регистр.

Эти понятия начали употребляться лишь в 1950-х годах[2].


Не смотря на все вышесказанное, ни одна из программ, которая была написана Адой Лавлейс, никогда так и не была запущена[2].

1.1 Развитие программирования в СССР

Выпущенная в начале 1956 года книга «Электронные цифровые машины», написанная Анатолием Ивановичем Китовым, является первой открытой книгой по электронным вычислительным машинам и программированию в СССР[5]. Заключительная часть указанной выше книги раскрывает неарифметическое использование ЭВМ, то есть применение компьютеров в целях управления производственными процессами, решению задач искусственного интеллекта, экономики, машинного перевода и тому подобное. Книга Анатолия Ивановича Китова была переведена на различные иностранные языки и опубликована в таких странах как Китай, США, Польша, Чехословакия и в ряде других стран[5].

Президент Академии наук Советского Союза Г. И. Марчук писал об этой книге следующее:

«Вышедшая в 1956 году книга А. И. Китова «Электронные цифровые машины» фактически перевернула сознание многих исследователей».

В. М. Глушаков – выдающийся учёный современности писал:

«А. И. Китов — признанный пионер кибернетики, который заложил основы отечественной школы программирования и применения ЭВМ для решения народнохозяйственных и военных задач. Я сам, как и десятки тысяч иных специалистов, получил свои начальные компьютерные знания из его книги «Электронные цифровые машины» — первой отечественной книги по программированию и ЭВМ» [7].

Джон Карр, профессор Мичиганского университета, в своем научном труде «Лекции по программированию», написанном в 1958 году в США, писал о том, что, когда он проанализировал по рассматриваемой им тематике около 150 книг, выпущенных в мире на тот момент времени, вопросы как автоматического, так и ручного программирования были лучше всего рассмотрены в книге Анатолия Ивановича Китова.

Через пол года в том же году вышла в свет еще одна книга под редакцией А. И. Китова «Элементы программирования» (для электронных вычислительных машин). Соавторами А. И. Китова при написании это книги были Н. А. Криницкий и П. Н. Комолов.

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

В заключении этой книги написано: «Широкое использование электронно-вычислительных машин поднимет на новый небывало высокий уровень все виды производства в нашей стране, позволит резко увеличить материальное благосостояние нашего народа и значительно укрепить обороноспособность нашей Родины» [7].


Указанные выше две книги, покрыли огромный дефицит литературы по программированию и электронно-вычислительным машинам, который существовал на тот момент в СССР.

Книга «Электронные цифровые машины и программирование» Китова А. И. и Криницкого Н. А., написанная в 1959 году, явилась первым официальным учебником по программированию и электронно-вычислительным машинам в Советском Союзе, который был официально допущен Министерством образования СССР для обучения в высших учебных заведениях того времени.

Г. И. Марчук Президент Академии наук СССР писал об этой книге следующее: «В 1959 году появился другой фундаментальный труд А. И. Китова, написанный вместе с Н. А. Криницким — «Электронные цифровые машины и программирование». Это была фактически энциклопедия науки об электронно-вычислительных машинах. Многие поколения студентов в университетах и вузах страны с помощью этой замечательной книги получили фундаментальное образование и стали первоклассными учеными во многих областях знаний. Книги А. И. Китова, написанные в начале эры электронно-вычислительных машин в нашей стране, не должны быть забыты».

Данная книга издавалась в Венгрии, Румынии, ГДР и некоторых других странах. В 1961 году вышло в свет второе стереотипное издание книги «Электронные цифровые машины и программирование». Свыше 130 000 экземпляров составил общий тираж двух советских и иностранных изданий.

Об этом учебнике-энциклопедии в своих воспоминаниях ветеран кафедры вычислительной техники МЭИ (первая кафедра электронно-вычислительных машин в стране), д.т.н., профессор А. К. Поляков написал так: «По-моему мнению, учебник А. И. Китова и Н. А. Криницкого «Электронные цифровые машины и программирование», написанный в 1959 году, в то время был лучшим в мире».

2 История создания языка программирования C++ и С

Язык программирования С был создан в начале 70-х годов ХХ века, при разработке операционной системы UNDC, Кеном Томпсоном и Дэннисом Ритчи из Bell Labs. В начале ими было создано часть компилятора С, а затем эта часть была использована для компиляции оставшейся части компилятора С, далее они использовали получившийся в результате компилятор для компиляции UNIX.

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


Под компилятором понимается техническое средство или программа, которая выполняет компиляцию[8].

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

Исходным кодом для компилятора является описание алгоритма или программа на предметно-ориентированном языке, а на выходе компилятора получается объектный код [9].

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

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

Томсоном и Ритчи в процессе создания UNIX, до С было создано еще два языка программирования: А и В.

При сравнении языка С с более ранним языком — BCPL, можно выявить, что С является более улучшенным, так как имеет типы данных с заранее известной длинной. Например, тип данных long мог применяться для создания целой переменной с большим числом битов, обычно это число достигает 32 бита, а, например, тип данных int мог использоваться с целью создания переменной с определенным числом битов, обычно такое число битов достигает 16.

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

Язык С является, касаемо синтаксиса и грамматики, структурным языком программирования[10].

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

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