Любой язык программирования сводится к последовательности двоичного кода. Двоичный код излагается для человека в виде комбинаций нулей и единиц, а для компьютера в виде наличия или отсутствия электрического напряжения. Напряжение есть - это 1. Напряжения нет - это 0.
Ток проходит через сеть транзисторов, выступающих в роли переключателей. Принцип простой: если есть управляющее напряжение, ток проходит, если нет - не проходит.
Такое движение тока позволяет сформировать бинарную систему "включено/выключено" или другими словами "1/0".
Бинарная система позволяет сформировать уже базовые логические операции через систему последовательного или параллельного соединения транзисторов:
AND (И)
OR (ИЛИ)
NOT (НЕ)
XOR (исключающее ИЛИ)
как они релилизуются через течение тока в транзисторах?
Пример для логической операции НЕ.
Она реализуется через два транзистора, подключеных к одному входу.
Один транзистор PMOS соединен с питанием и открыт, когда на вход не подается ток.
Второй транзистор NMOS соединен с заземлением и открыт, когда на вход подается ток.
В итоге, когда на вход приходит ток, транзистор PMOS (соединенный с питанием) закрывается, а транзистор NMOS (соединенный с заземлением) открывается и заземляет входящий ток.
Если же ток на вход не поступает, то наоборот заземляющий транзистор остается не активным, а подключенный к питанию активируется и подает на выход ток. Так физически реализуется переход от 1 к 0 и от 0 к 1.
Вход 1 - Выход 0
Вход 0 - Выход 1.
Это переключающая система транзисторов. Один вход и в зависимости от значения напряжения на входе выход подключен либо к питанию, либо к заземлению.
Операция И реализуется через два последовательно подключенных транзистора. Исполнение операции И реализуется когда ток проходит через оба транзистора. Если на вход не поступает ток или один из транзисторов закрыт, операция и не реализуется.
Для реализации операция ИЛИ транзисторы подключаются параллельно и достаточно, чтобы один из транзисторов был открыт, чтобы на выходе был ток и реализовывалась операция ИЛИ.
Процессор содержит миллиарды транзисторов. Течение тока по ним позволяет реализовывать последовательность логических операций, реализующих программы.
Как , надеюсь понятно из вышеизложенного, на физическом уровне это решается через два возможных физических состояния в электропроводящих цепях (наличие напряжения / отсутствие напряжения). Эти состояния называются битами и соответствуют значениям 1 и 0 в двоичном коде.