Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

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

Теоретические и практические предпосылки появления языков программирования

Попытки автоматизировать вычисления предпринимались математиками и инженерами с давних пор. Уже в XVII в. создать механические устройства, складывающее числа, пытались такие исследователи, как Вильгельм Шиккард, Готфрид Лейбниц, Блез Паскаль. В 1830-х гг. Чарльз Бэббидж и Ада Лавлейс не только сконструировали аналитическую машину, но и сформулировали такие понятия, как "ячейка памяти", "цикл". В середине XIX в. Джордж Буль заложил основы бинарной логики, а в конце того же столетия Герман Холлерит применил для автоматизации вычислений электричество и научился хранить информацию на перфокартах.

Теоретическую базу для разработки компьютеров с современной архитектурой заложили работы Алана Тьюринга, который в 1930-е гг. формулизовал понятие алгоритма, и Джона фон Неймана, обосновавшего принципы построения электронных вычислительных машин. Эти достижения вкупе с появлением в 1940-х гг. первых устойчивых реализаций компьютеров, дали толчок эволюции языков программирования (ЯП).

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

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

01 10 15

, что будет означать "сложить содержимое ячейки 10 и число 15".

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

Страница из учебника по Ассемблеру. Автор24 — интернет-биржа студенческих работ

Рисунок 1. Страница из учебника по Ассемблеру. Автор24 — интернет-биржа студенческих работ

«История возникновения языков программирования» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

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

Появление языков высокого уровня

В 1954 г. под руководством американского инженера Джона Бэкуса был разработан первый успешный язык высокого уровня - Fortran (Formula Translation, т.е. преобразователь формул). Он применяется и развивается до сих пор и стал прообразом для других ЯП, например, для Basic.

По мере роста производительности вычислительной техники и ее доступности появлялось все большее количество ЯП высокого уровня. В качестве наиболее успешных ЯП 1950-1960-х гг. можно назвать ALGOL, Lisp.

Наиболее революционным стало появление на рубеже 1960-1970-х гг. языка Си, разработанного Деннисом Ритчи и Брайаном Керниганом и Кеном Томпсоном. На нем в тот же период была написана операционная система (ОС) Unix, ставшая прообразом многих современных систем, а также давшая мощный толчок развитию сетевых технологий.

Брайан Керниган (Brian Kernighan), Деннис Ритчи (Dennis Ritchie) и Кен Томпсон. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Брайан Керниган (Brian Kernighan), Деннис Ритчи (Dennis Ritchie) и Кен Томпсон. Автор24 — интернет-биржа студенческих работ

Во второй половине 1960-х гг. итальянские исследователи Коррадо Бом и Джузеппе Джакопини и, независимо от них, голландец Эдсгер Дийкстра определили в качестве базовых элементов компьютерной программы следование, ветвление и цикл. Эти теоретические представления заложили основу для развития структурного программирования, классическим представителем которого является разработанный французским инженером Никлаусом Виртом язак Pascal.

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

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

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

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

Большую популярность завоевало в то время объектно-ориентированное программирование (ООП), позволяющее эффективно описывать предметные области, т.е. объекты реального мира. Основными постулатами этой концепции стали:

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

Флагманом ООП можно назвать язык C++, разработанный в 1980-х гг. Бьерном Страуструпом. На нем был написаны многие ОС и приложения, ставшие классическими.

Замечание 1

Идеи ООП зародились еще в 1960 - начале 1970-х гг. Первым успешным языком, реализующим эту парадигму, считается Smoltalk созданный Аланом Кеем.

В начале 1990-х гг. принципы ООП получили мощное развитие в рамках созданного корпорацией Sun Microsystems языка Java (автор Джеймс Гослинг), а также других популярных тогда языков, таких, как Turbo Pascal, Visual Basic и др.

В те же годы появилась потребность в стандартизированных многократно применяемых компонентах, таких, как элементы пользовательского интерфейса. В связи с этим появилась концепция компонентного программирования (Microsoft COM, Java Beans, CORBA). Компоненты особым образом упаковываются и распространяются в виде бинарных модулей (файлы dll, jar и т.п.). Особо следует отметить язык C#, совмещающий в себе достижения как объектно-ориентированного, так и компонентного программирования.

Веб разработка.

Начиная с 2000-х гг. наряду с распространением персональных компьютеров мощное развитие получают сетевые технологии, глобальная сеть Интернет. Резко растет спрос на разработку веб-приложений, сайтов. В этих условиях происходят следующие явления:

  1. сформировавшиеся на тот момент популярные ЯП обзаводятся собственными веб-фреймворками (сервлеты для Java, ASP-страницы для C#, на Си и C++ пишутся веб-серверы Apache, Nginx, Lighttpd).
  2. активизируется развитие скриптовых языков, позволяющих быстро создавать веб-страницы (Perl, PHP, Python, JavaScript);
  3. формируются международные стандарты, описывающие клиент-серверное взаимодействие во Всемирной паутине (например, протоколы семейства IP), а также интернациональные консорциумы (W3C, ECMA), занимающиеся стандартизацией средств веб-разработки;
  4. становятся популярными парадигмы программирования, позволяющие писать приложения меньшего объема, но более продуктивно; происходит возрождение функционального программирования и снижение популярности ООП;
  5. широко применяются клиентские (React, Angular, Vue) и серверные фреймворки, позволяющие за счет применения специальных синтаксисов быстро создавать приложения из готовых компонентов и алгоритмов.

Пример кода на языке PHP. Автор24 — интернет-биржа студенческих работ

Рисунок 3. Пример кода на языке PHP. Автор24 — интернет-биржа студенческих работ

Дата написания статьи: 23.03.2019
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot