Эволюция языков программирования

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

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

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

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

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

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

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

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

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

Эволюция языков программирования

В 1950-х гг. появляются первые средства автоматизации программирования — языки Автокоды. Позднее для языков этого уровня стало применяться название «Ассемблеры».

Появление языков типа Ассемблер облегчило участь программистов.
Переменные величины стали изображаться символическими именами. Числовые коды операций заменились на мнемонические (словесные) обозначения, которые легче запомнить.

Язык программирования стал понятнее для человека, но при этом удалился от языка машинных команд.
Чтобы компьютер мог исполнять программы на Ассемблере, потребовался специальный переводчик — транслятор. Транслятор — это системная программа, переводящая текст программы на Ассемблере в текст эквивалентной программы на язык машинных команд.

fact:
pushrbp
movrbp,rsp
movrbx, qword rbp+16
cmprbx,1
jle fact_set_1
movrcx,rbx
decrcx
pushrcx
call fact
movrbx, qword rbp+16
mulrbx
jmp fact_end
fact_set_1:
movrax,1
fact_end:
poprbp
ret8

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

Языки типа Ассемблер являются машинно-ориентированными, т.е. они настроены на структуру машинных команд конкретного компьютера. Разные компьютеры с разными типами процессоров имеют разный Ассемблер.

Суть языков программирования

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

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


Суть языков программирования

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

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

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

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

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

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

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

Fortran — первый язык с компилятором

В 1957 году в компании IBM группа программистов, возглавляемая Джоном Бэкусом, представила первый работающий высокоуровневый язык Fortran. В его основе лежит принцип анализа всей строки.

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

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

Если вам интересна история, взгляните на потрясающую схему развития языков программирования, начиная с Фортрана.

Как видите, однозначного ответа на вопрос, какой язык программирования придумали первым, не существует. Первую абстрактную программу написала Ада Лавлейс, первым высокоуровневым языком был Plankalkül, но эру высоких информационных технологий начал Fortran. Все они первые в личном зачете, и каждый важен для того или иного этапа развития информационных систем.

Языки обработки данных

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

APL

В 1957 году была
предпринята попытка создания языка
для описания математической
обработки данных. Язык был назван APL
(Application Programming Language). Его
отличительной особенностью было
использование математических
символов (что затрудняло
применение на текстовых
терминалах; появление графических
интерфейсов сняло эту проблему) и
очень мощный синтаксис, который
позволял производить множество
нетривиальных операций прямо над
сложными объектами, не прибегая к
разбиению их на компоненты.
Широкому применению помешало, как
уже отмечалось, использование
нестандартных символов как
элементов синтаксиса.

Snobol и Icon

В 1962 году появился
язык Snobol (а в 1974 — его преемник Icon),
предназначенный для обработки
строк. Синтаксис Icon напоминает С и
Pascal одновременно. Отличие
заключается в наличии мощных
встроенных функций работы со
строками и связанная с этими
функциями особая семантика.
Современным аналогом Icon и Snobol
является Perl — язык обработки строк
и текстов, в который добавлены
некоторые
объектно-ориентированные
возможности. Считается очень
практичным языком, однако ему
недостает элегантности.

SETL

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

Lisp и ему подобные языки

В 1958 году появился
язык Lisp — язык для обработки
списков. Получил достаточно
широкое распространение в системах
искусственного интеллекта. Имеет
несколько потомков: Planner (1967), Scheme
(1975), Common Lisp (1984). Многие его черты
были унаследованы современными
языками функционального
программирования.

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

Популярность языков программирования меняется со временем в зависимости от потребностей рынка IT.

Рисунок 3. Наиболее популярные языки программирования по состоянию на 2018 г. Автор24 — интернет-биржа студенческих работ

Наиболее востребованные в настоящее время ЯП можно категоризировать и охарактеризовать следующим образом:

  1. Группа языков, ведущих свое происхождение от вышеупомянутого языка Си — C, C++, C#, Objective-C, Java, всегда актуальна и востребована. Программы, написанные на этих языках, характеризуются высокой эффективностью. Они обладают хорошей масштабируемостью (возможностью расширения возможностей без потери качества), пригодны для коллективной разработки. Недостаток этой группы языков — высокий порог вхождения. C# предназначен, прежде всего, для разработки в среде ОС Windows, Objective-C — для iOS и MacOS. C, C++ и Java универсальны и портированы для всех популярных операционных систем.
  2. К группе Си-подобных языков примыкает и JavaScript, созданный как язык с низким порогом вхождения для неспециалистов. К настоящему времени он развился в полноценную инфраструктуру со множеством библиотек и возможностью написания как программ, работающих в рамках браузера, так и сложных серверных приложений (среда node.js).
  3. Python — скриптовой универсальный язык для быстрой разработки. Он не требует компиляции, программы запускаются в интерпретаторе, т.е. превращаются в команды процессора в момент исполнения. Этот ЯП очень популярен благодаря своему быстродействию и наличию большого количества библиотек. Пригоден для написания широкого спектра программ, от десктопных приложений до полноценных вебсерверов.
  4. Ruby — скриптовой язык, в котором, в отличие от Python, акцент сделан на представление программируемых сущностей как объектов. Отличается высокой гибкостью и ориентированностью на экономию человеческих ресурсов. Широко применяется в веб-разработке, обладает развитой инфраструктурой (библиотеки, коммюнити).
  5. PHP — скриптовой язык, предназначенный для разработки, в первую очередь, веб-приложений. Отличается от других тем, что код, исполняемый на стороне сервера, встраивается непосредственно в тело веб-страницы и исполняется в момент отправки ее клиенту. Это избавляет программиста от необходимости писать по отдельности клиентскую и серверную части веб-приложения.

В последние годы появилось немало новых ЯП, популярность которых быстро растет. Среди них Go от корпорации Alphabet, Swift от Apple, Rust от Mozilla Fundation. Из российских разработок заслуживает внимания Kotlin — язык, который всё шире применяется для написания программ для ОС Android. Вместе с тем, не утратили актуальности и некоторые языки, возникшие много лет назад. В качестве примера можно назвать Perl, на котором до сих пор создаются как эффективные веб-приложения, так и скрипты для решения оперативных задач.

Разнообразие языковых алгоритмов

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

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

Есть два вида трансляций:

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

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

Ассемблер

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

Чтобы облегчить работу программистов с конца 40-х годов ХХ века, был разработан новый язык — ассемблер. В нем взамен 0 и 1, обозначающих определенное действие, применялись определенные краткие слова, наборы букв. «Ассемблер» всеми программистами был признан низкоуровневым, из-за его близости к машинным категориям. Программное обеспечение на Ассемблере зависимо от показателей отдельного процессора, и по этой причине он отнесен к категории машинного языка. Писать на нем программы является крайне непростой задачей, хотя они и признаются наиболее работоспособными.

Появление объектно-ориентированного программирования (ООП)

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

Этот вид программирования обладает такими понятиями, как:

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

Объектная ориентированность изначально была представлена на языке Симула, поддерживавшего работу с компонентами ООП. Но большинство концепций на тот момент определил язык Smalltalk, ставший первым для ООП. Сейчас группа прикладных языков, реализующих ООП, считается самой многочисленной. Первостепенными в ней стали C++, C#, Java и прочие.

Интернет: от истоков к современности

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

Одним из самых распространённых и реализуемых становится язык Perl – простой и понятный в плане переноса. Именно на нём начинают писаться приложения различного уровня сложности. Немалую роль играют также языки Java и SQL. Последний позволяет создавать структурированные запросы и открывать доступ к базам данных по запросу.

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

  • JavaScript, которые позволяют улучшить вид веб-страницы и решить мелкие задачи в веб-браузере.
  • СPHP, которые применяются при создании динамических HTML-страниц, форумов или опросов. Они работают благодаря выполнению отправки обработанной информации из браузера на сервер.
  • CGI-сценарии, которые также позволяют создавать динамические HTML-страницы, опросы или форумы. В основном, они пишутся с использованием языков Perl и C/C++. Сценарии зависят от действий пользователя и реализуются на стороне сервера.

Дальнейшее развитие языков программирования

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

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

Pascal-подобные языки

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

Отрицательной
чертой языка было отсутствие в нем
средств для разбиения программы на
модули. Вирт осознавал это и
разработал язык Modula-2 (1978), в котором
идея модуля стала одной из ключевых
концепций языка. В 1988 году
появилась Modula-3, в которую были
добавлены
объектно-ориентированные черты.
Логическим продолжением Pascal и Modula
являются язык Oberon и Oberon-2. Они
характеризуются движением в
сторону объектно- и
компонентно-ориентированности.

C-подобные языки

В 1972 году
Керниганом и Ритчи был создан язык
программирования C. Он создавался
как язык для разработки
операционной системы UNIX. C часто
называют «переносимым
ассемблером», имея в виду то, что он
позволяет работать с данными
практически так же эффективно, как
на ассемблере, предоставляя при
этом структурированные
управляющие конструкции и
абстракции высокого уровня
(структуры и массивы). Именно с этим
связана его огромная популярность
и поныне. И именно это является его
ахиллесовой пятой. Компилятор C
очень слабо контролирует типы,
поэтому очень легко написать
внешне совершенно правильную, но
логически ошибочную программу.

В 1986 году Бьярн
Страуструп создал первую версию
языка C++, добавив в язык C
объектно-ориентированные черты,
взятые из Simula (см. ниже), и исправив
некоторые ошибки и неудачные
решения языка. C++ продолжает
совершенствоваться и в настоящее
время, так в 1998 году вышла новая
(третья) версия стандарта,
содержащая в себе некоторые
довольно существенные изменения.
Язык стал основой для разработки
современных больших и сложных
проектов. У него имеются, однако же,
и слабые стороны, вытекающие из
требований эффективности.

В 1995 году в
корпорации Sun Microsystems Кеном
Арнольдом и Джеймсом Гослингом был
создан язык Java. Он наследовал
синтаксис C и C++ и был избавлен от
некоторых неприятных черт
последнего. Отличительной
особенностью языка является
компиляция в код некоей
абстрактной машины, для которой
затем пишется эмулятор (Java Virtual Machine)
для реальных систем. Кроме того, в
Java нет указателей и множественного
наследования, что сильно повышает
надежность программирования.

В 1999–2000 годах в
корпорации Microsoft был создан язык C#.
Он в достаточной степени схож с Java
(и задумывался как альтернатива
последнему), но имеет и
отличительные особенности.
Ориентирован, в основном, на
разработку многокомпонентных
Интернет-приложений.

Языки Ada и Ada 95

В 1983 году под
эгидой Министерства Обороны США
был создан язык Ada. Язык замечателен
тем, что очень много ошибок может
быть выявлено на этапе компиляции.
Кроме того, поддерживаются многие
аспекты программирования, которые
часто отдаются на откуп
операционной системе (параллелизм,
обработка исключений). В 1995 году был
принят стандарт языка Ada 95, который
развивает предыдущую версию,
добавляя в нее
объекно-ориентированность и
исправляя некоторые неточности.
Оба этих языка не получили широкого
распространения вне военных и
прочих крупномасштабных проектов
(авиация, железнодорожные
перевозки). Основной причиной
является сложность освоения языка
и достаточно громоздкий синтаксис
(значительно более громоздкий, чем
Pascal).

Объектно-ориентированное программирование (ООП)

С 1970-х гг. были заложены основы объектно-ориентированного программирования (ООП), которое возникло как поседствие развития процедурного программирования, при котором данные и подпрограммы их обработки формально не были связаны.

ООП включает следующие основные понятия:

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

Замечание 3

В 1967 г. появился язык Симула – первый язык программирования, в котором были предложены принципы объектной ориентированности. Он поддерживал работу с объектами, классами, виртуальными методами и т.д., но все эти возможности не получили достойной оценки современников. Тем не менее, большинство этих концепций были заложены Аланом Кэем и Дэном Ингаллсом в язык Smalltalk, который стал первым широко распространённым объектно-ориентированным языком программирования.

В настоящее время число прикладных языков программирования, которые реализуют объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. Основные языки, которые поддерживают концепцию ООП: C++, C#, Object Pascal (Delphi), Java и т.д.

Языки высокого уровня

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

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

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

70-е

Язык программирования Паскаль был создан в 1970 году профессором Никлаусом Виртом в качестве академического языка программирования для обучения студентов. На язык Pascal оказал влияние язык программирования Algol 68, в разработке которого тоже участвовал Вирт. Синтаксис языка Паскаль похож на синтаксис Algol, по этому его еще называют Алголо-подобным языком.

Но Паскаль это не второй Алгол, Вирт выкинул из Алгола все лишнее и избыточное и создал очень маленький и аккуратный язык. Например этот язык программирования был полностью избавлен от оператора GoTo, что сделало его первым языком программирования поддерживающим концепцию структурного программирования. Это означает, что вся логика могла быть описана через операторы:

  • Последовательность
  • Ветвление
  • Циклы

Это сейчас такой подход воспринимается как единственно верный, но в те времена понадобилось 10 лет что бы понять это.

В 70-е все самым популярным языком программирования для написания прикладных программ все еще оставался Basic с его оператором GoTo, но в 80-е на его место уже приходит Pascal.

80-е

В 1983 году появляется Turbo Pascal. Это интегрированная среда разработки для DOS и позже, в 90-е, для Windows 3.x. Она стала очень популярной в 80-х годах т.к. содержала встроенные библиотеки и удобную среду разработки с отладчиком.

Turbo Pascal, а так же его расширенная версия Borland Pascal стали основным средством разработки прикладного программного обеспечения в 80-е.

В 1986 году появляется объектно ориентированная версия языка Pascal с удобной средой разработки. Ее назвали Delphi. Это как C++ для C. Но в отличие от C++, Delphi не стал в разы сложнее Pascal, т.к. язык изначально был спроектирован не как системный, а как язык прикладного программирования и в нем не было сложных конструкций для управления памятью как C.

90-е

В 90 мы видим рост аппаратных мощностей. В главу угла уже не нужно ставить скорость работы программ и Delphi становится самой популярной средой для быстрой разработки приложений. Она поддерживала все объекты Windows: формы, кнопки, бегунки и т.д. Их не нужно было программировать — они просто перетаскивались мышкой на форму.

2000-е

Со второй половине 90-х появляются убийцы Delphi. В 1995 появился язык Java, а в 1998-2000 язык C Sharp. В 2000-x эти языки программирования выйдут на первое место по популярности и займут место Delphy на поприще создания прикладного программного обеспечения.

Отличительной особенностью этих языков стала работа через виртуальную машину. А виртуальная машина стала использоваться повсеместно. Ее ставили на все устройства: мобильные телефоны, кофе-машины, персональные компьютеры. И программистам не нужно было беспокоиться об архитектуре устройства — они писали код под виртуальную машину и программа одинаково работала на любом устройстве на котором такая машина стояла.

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

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

В 1950-е годы были разработаны машинные коды, которые считаются языками программирования первого поколения. Но их приходилось переписывать для каждой ЭВМ отдельно, так что первым реально работающим языком программирования можно считать «Краткий код». Он первым стал представлять собой не набор математических кодов, а выражения, которые потом перерабатывались в код.

Затем появились языки второго поколения — они были проще для человека, но ограничивались использованием ассемблера. Так называли программу, которая переводила команду на машинный язык, своего рода переводчик.

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

В 1960-годы языки программирования начали стандартизировать и улучшать. Хоть затем и появились языки четвертого и пятого поколения, они являются более усовершенствованными версиями языков третьего поколения.

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: