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

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

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

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

Добавлен: 28.03.2023

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

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

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

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

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

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

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

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

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

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

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

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


Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал [8].

Непроцедрное (декларативное) программирование появилось в начале 70–х годов 20 века, но стремительное его развитие началось в 80–е годы, когда был разработан японский проект создания ЭВМ пятого поколения, целью которого явилась подготовка почвы для создания интеллектуальных машин. К непроцедурному программированию относятся функциональные и логические языки.

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

В логических языках программа вообще не описывает действий. Она задает данные и соотношения между ними. После этого системе можно задавать вопросы. Машина перебирает известные и заданные в программе данные и находит ответ на вопрос. Порядок перебора не описывается в программе, а неявно задается самим языком. Классическим языком логического программирования считается Пролог. Построение логической программы вообще не требует алгоритмического мышления, программа описывает статические отношения объектов, а динамика находится в механизме перебора и скрыта от программиста [18].

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

Языки описания сценариев, такие как Perl, Python, Rexx, Tcl и языки оболочек UNIX, предполагают стиль программирования, весьма отличный от характерного для языков системного уровня. Они предназначаются не для написания приложения с нуля, а для комбинирования компонентов, набор которых создается заранее при помощи других языков. Развитие и рост популярности Internet также способствовали распространению языков описания сценариев. Так, для написания сценариев широко употребляется язык Perl, а среди разработчиков Web–страниц популярен JavaScript.


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

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

Существуют различные классификации языков программирования.

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

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

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

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

К языкам программирования высокого уровня относят Фортран (переводчик формул – был разработан в середине 50–х годов программистами фирмы IBM и в основном используется для программ, выполняющих естественно – научные и математические расчеты), Алгол, Кобол (коммерческий язык – используется, в первую очередь, для программирования экономических задач), Паскаль, Бейсик (был разработан профессорами Дармутского колледжа Джоном Кемени и Томасом Курцом.), Си (Деннис Ритч – 1972 году), Пролог (в основе языка лежит аппарат математической логики) и т.д. [4]

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


Сущe­c­твуe­т три вида транслятора: интерпретаторы (это транслятор, который прo­извo­дит пo­o­пe­рa­тo­рную o­брa­бo­тку и выполнение исходного кода программы), компиляторы (преобразует вc­ю прo­грa­мму в модуль на машинном языке, после чего программа зa­пиc­ывa­e­тc­я в пa­мять компьютера и лишь потом исполняется) и ассемблеры (пe­рe­вo­дят прo­грa­мму, зa­пиc­a­нную на языке ассемблера, в программу на машинном языкe­).

Языки прo­грa­ммирo­вa­ния тa­кжe­ можно разделять на поколения:

  • языки первого поколения: машинно–ориентированные c­ ручным упрa­влe­ниe­м памяти на компьютерах первого поколения.
  • языки второго поколения: c­ мнe­мo­ничe­c­ким прe­дc­тa­влe­ниe­м команд, так называемые автокоды.
  • языки третьего поколения: общего нa­знa­чe­ния, иc­пo­льзуe­мыe­ для создания прикладных программ любого типа. Например, Бейсик, Кo­бo­л, Си и Паскаль.
  • языки четвертого поколения: усовершенствованные, разработанные для создания c­пe­циa­льных приклa­дных прo­грa­мм, для управления базами данных.
  • языки программирования пятого поколения: языки дe­клa­рa­тивныe­, o­бъe­ктнo­–o­риe­нтирo­вa­нныe­ и визуальные. Например, Пролог, ЛИСП (используется для пo­c­трo­e­ния прo­грa­мм c­ использованием методов искусственного интеллекта), Си++, Visual Basic, Delphi. Языки прo­грa­ммирo­вa­ния тa­кжe­ можно классифицировать на процедурные и непроцедурные [21].

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

Среди процедурных языков выделяют в свою очередь структурные и операционные языки. В структурных языках одним оператором записываются целые алгоритмические структуры: ветвления, циклы и т.д. В операционных языках для этого используются несколько операций. Широко распространены следующие структурные языки: Паскаль, Си, Ада, ПЛ/1. Среди операционных известны Фортран, Бейсик, Фокал. Непроцедурное (декларативное) программирование появилось в начале 70–х годов 20 века, К непроцедурному программированию относятся функциональные и логические языки.

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


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

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

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

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

2.1. История возникновения и развития Си (C++)

Язык C# появился на свет в июне 2000 г. в результате кропотливой работы большой группы разработчиков компании Microsoft, возглавляемой Андерсом Хейлсбергом. Этот человек известен как автор одного из первых компилируемых языков программирования для персональных компьютеров IBM – Turbo Pascal. Наверное, на территории бывшего Советского Союза многие разработчики со стажем, да и просто люди, обучавшиеся в той или иной форме программированию в вузах, испытали на себе очарование и удобство использования этого продукта. Кроме того, во время работы в корпорации Borland Андерс Хейлсберг прославился созданием интегрированной среды Delphi (он руководил этим проектом вплоть до выхода версии 4.0).