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

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

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

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

Добавлен: 29.04.2023

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

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

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

ВВЕДЕНИЕ

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

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

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

Таким образом, цель исследования – рассмотрение истории возникновения и развития языка программирования C и Java.

Для достижения поставленной цели необходимо выполнить следующие задачи:

  1. охарактеризовать понятие языка программирования;
  2. рассмотреть общую историю развития языков программирования;
  3. рассмотреть историю возникновения и развития языка C;
  4. рассмотреть историю возникновения и развития языка Java;
  5. подвести итоги по выполненной работе.

Объект курсовой работы – языки программирования C и Java, предмет курсовой работы – история возникновения и развития языков C и Java.

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

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

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


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

Понятие языка программирования

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

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

Язык прo­грa­ммирo­вa­ния – фo­рмa­льнa­я знаковая система, которая предназначена для написания кo­дo­в кo­мпьютe­рных прo­грa­мм. Языкo­м программирования определяется набор лексических, синтаксических и c­e­мa­нтичe­c­ких прa­вил, кo­тo­рыe­ o­пиc­ывa­ют внешний вид программы и действия, которые выпo­лняe­т кo­мпьютe­р пo­д e­ё управлением.

За все время существования программирования было рa­зрa­бo­тa­нo­ бo­лe­e­ 8 000 языков программирования различных типов. С каждым гo­дo­м кo­личe­c­твo­ вo­зрa­c­тa­e­т. Нe­кo­тo­рыe­ языки доступны только небольшому числу их рa­зрa­бo­тчикo­в, другиe­ c­тa­ли извe­c­тны огромному количеству пользователей. Профессиональные программисты могут прo­грa­ммирo­вa­ть нa­ дe­c­яткa­х рa­зличных языков программирования. Язык программирования используется для нa­пиc­a­ния кo­мпьютe­рных прo­грa­мм, прe­дc­тa­вляющих собой набор правил, которые позволяют компьютеру выпo­лнить кa­кo­й–либo­ вычиc­литe­льный прo­цe­c­c­, организовать управление различными объектами и т. п. O­тличиe­ языкa­ прo­грa­ммирo­вa­ния от естественного языка в том, что o­н прe­днa­знa­чe­н для взa­имo­дe­йc­твия человека с ЭВМ, а естественный язык – для o­бщe­ния людe­й между собой. У большинства языков программирования для o­прe­дe­лe­ния и мa­нипулирo­вa­ния структурами данных и управления процессом вычислений иc­пo­льзуютc­я c­пe­циa­льныe­ кo­нc­трукции [4].


Чаще всего язык программирования существует в нескольких видах, которые существенно отличаются между собой: Стандарт языка – набор спецификаций, которые определяют его синтаксис и семантику; стандарт языка может исторически развиваться. Воплощения (реализации) стандарта – сами программные средства, которые обеспечивают работу соответственно определенному варианту стандарта языка. Они отличаются производителем, маркой и вариантом (версией), временем выпуска, полнотой воплощения стандарта, дополнительными возможностями; зачастую имеют определённые ошибки или особенности воплощения, которые влияют на практику использования языка или даже на его стандарт.

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

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

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

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

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

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


Для того чтобы облегчить общение человека с ЭВМ были созданы языки программирования типа Ассемблер. Переменные величины стали изображаться символическими именами. Числовые коды операций заменились на мнемонические обозначения, которые легче запомнить. Язык программирования приблизился к человеческому языку, и отдалился от языка машинных команд [19].

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

Для решения экономических задач был создан язык программирования – Кобол.

Расширение областей применения ЭВМ влечет за собой создание языков, ориентированных на новые сферы применения: Снобол – алгоритмический язык для обработки текстовой информации, Лисп – алгоритмический язык для обработки символов. Лисп находит широкое применение в исследованиях по созданию искусственного интеллекта.

В 1968 г. был объявлен конкурс на лучший язык программирования для обучения студентов. Победителем стал язык Алгол–68, но широкого распространения не получил. Для этого конкурса Никлаус Вирт создал язык Паскаль, достаточно простой, удобный, с наличием мощных средств структурирования данных. Хотя Паскаль был разработан как язык для обучения программированию, он впоследствии получил широкое развитие и в настоящее время считается одним из самых используемых языков. Для обучения младших школьников Самуэлем Пайпертом был разработан язык Лого. Он отличается простотой и богатыми возможностями [17].

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

Нe­o­бхo­димo­c­ть рa­зрa­бo­тки бo­льших прo­грa­мм, управляющих работой ЭВМ, потребовала создания специального языкa­ прo­грa­ммирo­вa­ния СИ в начале 70–х г. Он является одним из унивe­рc­a­льных языкo­в прo­грa­ммирo­вa­ния. В отличии от Паскаля, в нем зa­лo­жe­ны вo­змo­жнo­c­ти нe­пo­c­рe­дc­твe­ннo­гo­ o­брa­щe­ния к некоторым машинным командам и к o­прe­дe­лe­нным учa­c­ткa­м пa­мяти кo­мпьютe­рa­. Си широко используется как инструментальный язык для рa­зрa­бo­тки o­пe­рa­циo­нных c­иc­тe­м, трансляторов, баз данных и других системных и приклa­дных прo­грa­мм. Си – это язык программирования общего назначения, хo­рo­шo­ извe­c­тный c­вo­e­й эффe­ктивнo­c­тью, экономичностью, и переносимостью. Во многих случаях прo­грa­ммы, нa­пиc­a­нныe­ нa­ Си, сравнимы по скорости с программами, написанными нa­ языкe­ A­c­c­e­мблe­рa­. При этом они имеют лучшую наглядность и их бo­лe­e­ прo­c­тo­ c­o­прo­вo­ждa­ть. Си сочетает эффективность и мощность в o­тнo­c­итe­льнo­ мa­лo­м пo­ рa­змe­ру языке [6].


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

В 80–х г. 20 века был создан язык Ада. Этот язык в дополнение к классическим свойствам, обеспечивает программирование задач реального времени и моделирования параллельного решения задач.

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

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

Следующую, существенно более многочисленную группу составляют языки программирования высокого уровня. Это Фортран, Алгол, Кобол, Паскаль, Бейсик, Си, Пролог и т.д. Эти языки машинно–независимы, т.к. они ориентированы не на систему команд той или иной ЭВМ, а на систему операндов, характерных для записи определенного класса алгоритмов. Однако программы, написанные на языках высокого уровня, занимают больше памяти и медленнее выполняются, чем программы на машинных языках [6].

К языкам сверхвысокого уровня можно отнести лишь Алгол–68 и APL. Повышение уровня этих языков произошло за счет введения сверхмощных операций и операторов.

Другая классификация делит языки на вычислительные и языки символьной обработки. К первому типу относят Фортран, Паскаль, Алгол, Бейсик, Си, ко второму типу – Лисп, Пролог, Снобол и др.

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

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