Вы наверняка знаете, что эти машины функционируют благодаря двоичному коду: 0 и 1. Еще вы наверняка знаете, что вручную писать в двоичном коде трудно (вообще-то, настолько, что практически никто не хочет этим заниматься). Даже если у вас получится, то на выходе будет просто много цифр и никто – включая вас через несколько дней, как только вы забудете, что написали, – не разберется, что делает этот код. А ну-ка, быстро, что делает эта программа?
Честный ответ: «Что угодно – смотря как интерпретировать, на каком компьютере она работает… И даже при этом – поди разберись».
Чтобы избежать этой проблемы, мы, ученые-компьютерщики, изобрели так называемые языки ассемблера. Они созданы на основе железа и двоичного кода компьютеров и привязаны к ним, но сделаны понятнее, напоминая языки, на которых мы все разговариваем. На одном языке ассемблера сложение 10 и 20 может выглядеть примерно вот так:
Как видите, тут есть очевидные недостатки. Ассемблер утомительный и скучный, нужно постоянно помнить кучу деталей (адрес в памяти, заполнены ваши регистры или нет и т. д.), и поэтому в них очень просто ошибиться. Надо хорошо знать аппаратную часть вашего компьютера, чтобы писать на ассемблере, а раз у разных процессоров немного разная архитектура, все знать невозможно. Но хотя бы в сравнении с двоичным кодом он намного яснее, чем если читать бесконечный поток нолей и единиц!
Следующий шаг – убрать из уравнения железо, чтобы не приходилось знать о расположении (и даже о существовании) таких деталей, как сумматоры и регистры. Такие языки уже называются высокоуровневыми языками программирования, и они куда более интуитивно понятны. С ними можно написать что-то вроде «сложить 10 и 20 и показать результат на экране» – и это просто
Сейчас существуют сотни языков программирования, каждый – с собственной философией, специализацией и сценариями использования. – Но все существуют с одной целью: упростить для людей чтение и написание кода, а это, в свою очередь, упрощает создание программ, их понимание и поддержку. Высокоуровневые языки раскрыли потенциал компьютеров и помогают создавать сложное, масштабное и прекрасное программное обеспечение. Они дали нам, людям, свободу действовать на уровне