Когда я начал свое путешествие, изучая код в школе Flatiron, у меня было много «ВАУ» моментов. По мере того, как я последовательно изучал более сложные темы, я все больше и больше впечатлялся объемом работы, проводимой под капотом. Как компьютер читал мои инструкции? Я знал, что знание того, как компьютер обрабатывает мои инструкции, могло только помочь мне понять, как помочь компьютеру понять мои инструкции. Я был особенно очарован логическими сравнениями и логическими вентилями, которые работали на основе моего ввода кода. Я хотел потратить некоторое время, чтобы изучить, как работают основные логические элементы, поддерживающие языки программирования.

На самом низком уровне большинство компьютеров работают с использованием двоичного кода. 0 означает выключение, а 1 - включение. Хотя возможно построить компьютеры с более чем этими двумя состояниями, это непрактично. Электрические помехи или низкий заряд батареи могут мешать электрическим сигналам, обрабатываемым вашим компьютером. Простыми словами «да» или «нет» или «включен» и «выключен» компьютер имеет два различных состояния вместо 4 или 5 более близких состояний. Это помогает гарантировать получение правильных результатов.

Отсюда построен простой транзистор с двумя электродами и управляющим проводом. Здесь управляющий провод является входом, а нижний электрод - выходом.

Когда ток протекает через верхний электрод, он должен получать соединительный электрический ток от входа, чтобы направить электрический ток на выход.

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

Но этого недостаточно…

Это даст только «истинный» результат, если «истина», и «ложный» результат, если «ложь».

Для решения более сложных логических задач у нас есть 7 общих структур логических вентилей, но все они могут быть построены с использованием базового набора из трех: НЕ, И и ИЛИ.

Основные три

НЕТ

Если подключение к электроду НЕ выполнено, то вы запускаете условный. В противном случае вы не выполняете условие.

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

А ТАКЖЕ

Принимает два входа, но имеет один выход.

Когда ток проходит через первые ворота, это должно быть истиной, иначе условия не соблюдаются. Если току удается добраться до второго затвора, а второй затвор является ложным, ток никогда не достигнет выхода. Это сделало бы условие ложным. Если оба условия верны, электрический ток будет проходить весь путь к выходу и вернет условное значение true.

Вот почему в таких языках программирования, как Ruby и Javascript, вы можете немедленно вернуться из условного оператора. Если первое условие ложно, второе не имеет значения, условие всегда будет возвращать ложь.

OR

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

Эти 3 ворот позволяют нам создать еще 4 ворот. Ворота NAND, NOR,
EOR и ENOR. Я призываю вас найти их и изучить их функциональность. Это только поможет вам углубить понимание компьютерных языков!