Сейчас любая такая логика в машине настраивается с помощью транзисторов. В современном процессоре их (транзисторов) миллиарды или триллионы, для сравнения в первом процессоре Intel было 2300 транзисторов, и если с помощью десятка можно было сделать генератор случайных чисел, то что же можно было бы сделать с двумя тысячами. Сейчас Intel увеличила плотность транзисторов в процессоре, усложнив его архитектуру.
Как вы понимаете, что процессору нужно очень быстро давать команды, и чем быстрее команды даются, тем больший потенциал и скорость он показывает, чтобы переключать все эти транзисторы. Это свойство процессора называется тактовая частота. Чем она выше, чем больше циклов работы выполняет ваш процессор. В одном тактовом цикле обычно выполняется 1 простейшая команда. Например, процессор с тактовой частотой 3,2 Ггц выполняет 3,2 млрд циклов в секунду. Вот такая мощь может быть внутри вашего ноутбука или тлфа. Если процессор на вход понимает только команды в виде 0 и 1, то как ему их давать?
Для этого появился специальный инструмент и язык Assembler, который переводил программу в машинный язык. Он кодирует все сигналы в 0 и 1, чтобы ваша машина могла понять, чего вы от нее хотите. Раньше все программы писались на assembler’e. У каждого процессора свой диалект assembler’a, как у жителей разных стран. Программа написанная на assembler’e для одного процессора совершенно не совместима с другим процессором, потому что у него как вы понимаете другое количество транзисторов. Поэтому она не будет просто работать или запускаться. Это, кстати, и означает совместимость программ, когда ваши итишники говорят, вам что эта версия несовместима с версией вашего оборудования и нужно потратить тонну денег на миграцию, то это означает, что программа на ваших процессорах просто не запуститься и нужно ее фактически переписать. Все это было круто, но оказалось, что писать на ассемблере очень сложно, хотя и эффективно. Вы можете напрямую управлять памятью вашего устройства, порядком обработки команд и т.д.
Вот, например, код, который выполняет простую задачу – складывает 2 числа и если значение равно 0, то выводит на экран сообщение. Как вы видите, тут не одна строчка и все довольно непонятно, больше напоминает какой-то марсианский язык. Даже не каждый итишник сможет разобраться, что тут написано. Поэтому программисты пошли дальше и придумал языки высокого уровня. Они так и называются, Языки Высокого Уровня.
Языки программирования
Они гораздо проще для понимания программистом, но менее эффективны для машины, если их сравнивать с языком нижнего уровня (ассемблером), команды которого машина понимает быстрее. Языки высокого уровня появились, как виток эволюции наследуя все