Найти тему
Всё обо всём

Как придумали языки программирования без языков программирования?

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

В данной статье разберём какой язык появился первым и как языки программирования появились без языков программирования.

Об языках программирования

Язык программирования (ЯП) – это формальный язык, предназначенный для записи компьютерных программ. Существует более 8000 языков для разных целей. Наиболее известными из них являются C++, Python, Java, JavaScript и т.д.

ЯП нужен для написания определённых программ для выполнения конкретных целей. Программа – это запланированная последовательность действий. С греческого «programme» значит «объявление, афиша» («pro» - «раньше», «gramme» - «написанный»). Программа, в свою очередь, состоит из алгоритмов – инструкция для выполнения тех самых действий в программе. Например, режим дня – это последовательность действий человека в течение дня (программа), а каждый пункт режиме – это действие, которое выполняется некоторым алгоритмом.

Режим дня. Источник: Яндекс.Картинки
Режим дня. Источник: Яндекс.Картинки

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

Переводчик с человеческого на машинный. Источник: Яндекс.Картинки
Переводчик с человеческого на машинный. Источник: Яндекс.Картинки

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

Как создают ЯП?

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

Компилятор GCC. Источник: Яндекс.Картинки
Компилятор GCC. Источник: Яндекс.Картинки

Компилируемые ЯП берут весь код, написанный вами, и полностью его обрабатывают, на выходе давая вам некоторый исполняемый файл (.exe), который будет теперь всегда работать, вам только нужно дать на вход этому файлу некоторые данные.

Работа интерпретатора. Источник: itstan.ru
Работа интерпретатора. Источник: itstan.ru

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

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

Выполнено первое условие для создания ЯП – наличие переводчика. Только вот переводчик - это тоже программа. А на чём написан он?

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

Получается, что ЯП рано или поздно переходят в язык Ассемблера или машинный код. Поэтому вопрос о том, как появились ЯП без ЯП, неправильный. Все языки написаны на двоичном коде, только вот степень «близости» к двоичному коду на них разная. Некоторые языки сразу писали на двоичном коде, некоторые писали на другом языке, который написали на двоичном коде и т.д. В какой-то мере можно машинный код воспринимать самым первым языком программирования, который не имел предшественника, т.е. появился без другого ЯП.