3.19. Как работают компьютеры?
Математическое понятие: булева алгебра
Компьютеры повсюду: начиная со смартфонов в вашем кармане до ноутбука в рюкзаке и гигантских серверов, которые позволяют Amazon обрабатывать онлайн-покупки, – вычислительные устройства проникли во все уголки повседневной жизни. Но как именно они работают? Как металлические компоненты внутри корпуса компьютера позволяют вам сидеть в Интернете, делиться фотографиями с друзьями или просто складывать или вычитать числа?
Ответ кроется в математике. Компьютерные схемы создаются в соответствии с принципами, изложенными Джорджем Булем, английским математиком, который жил с 1815 по 1864 год. Буль стал известен тем, что применил алгебраические методы к логике, дисциплине, которая концентрируется на правилах, по которым можно приходить к выводам, основанным на предпосылках. Классический пример логического аргумента – или набора утверждений, которые в сочетании с разумом обосновывают положение, – приводит нас к Сократу, древнегреческому философу. Вот этот аспект:
Все люди смертны.
Сократ – человек.
Следовательно, Сократ смертен.
Этот вид аргумента, известный как силлогизм, интересен, так как если первые два утверждения верны, то третье утверждение тоже должно быть правдой. И нам не обязательно использовать «люди», «смертен» и «Сократ». Мы могли бы их заменить на что угодно. Вот другая версия:
У всех птиц есть крылья.
Тукан – птица.
Следовательно, у тукана есть крылья.
Но логика может применяться не только к таким простым понятиям, как «люди» и «туканы». Она также относится к высказываниям, то есть утверждениям, которые могут быть истинными или ложными. Эти утверждения можно объединить с помощью слов «и», «или» и «не». Получившиеся комбинации могут иметь свою истинность значения. Вот несколько примеров высказываний:
В настоящее время существует король Франции.
Собаки могут дышать под водой.
Когда светофор красный, автомобили должны остановиться.
Первые два высказывания ложные; третье – истинное. Вот несколько примеров смешанных высказываний:
Солнце светит, и коровы пасутся на холме.
Либо идет дождь, либо снег.
Автомобиль движется, и его колеса поворачиваются.
Давайте разберем каждый пример:
• В случае первой комбинации, если оба высказывания о коровах и о солнце являются истинными, тогда конечное высказывание тоже истина. Если одно из них ложное (или они оба ложные), тогда все высказывание тоже ложное.
• Во втором примере целое высказывание является истиной, если истиной является высказывание о дожде или снеге.
• И опять-таки в третьем примере высказывание истинное, если оба высказывания являются истинными. Если хотя бы одно из них ложное, тогда все высказывание тоже ложное.
Нововведением Буля было то, что он заметил, что можно представлять логические высказывания при помощи символов, которые используются в математике. Если, например, высказывание о солнце было представлено как Х, а высказывание о коровах как Y, вы в некотором смысле могли бы сложить два высказывания и получить значение истинности: 1 для истины, 0 для лжи.
Хотя «и», «или» и «не» – это не просто абстрактные идеи. Инженеры в ХХ веке научились представлять их физическим способом, в виде логических элементов. Эти элементы в конечном итоге стали включаться в транзисторы и компьютерные чипы и лежат в основе вычислительных расчетов, которые делает каждый компьютер и по сей день. Все расчеты выполняются на основе определенной электрической ситуации, будучи «правдой» или «ложью». Таким образом, под каждым модным экраном бьется математическое сердце.