Читаем История математики. От счетных палочек до бессчетных вселенных полностью

Как и предвидел Бэббидж, развитие компьютеров в значительной степени зависело от потребности ускорить выполнение расчетов с помощью механических калькуляторов. Первая автоматическая вычислительная машина была построена в Гарварде на средства IBM приблизительно в 1940 году. Первый электронный программируемый компьютер назывался «Колосс». Он был построен в 1943 году в результате сотрудничества Алана Тьюринга и Джона фон Неймана и представлял собой часть работы по взлому шифров в Блетчли-Парке. Однако был проект, который оказал особое влияние на будущую компьютерную архитектуру, — ENIAC (электронный цифровой интегратор и калькулятор), построенный приблизительно в то же время в университете штата Пенсильвания. Фон Нейманн надеялся, что ENIAC, первоначально разработанный для расчета баллистических таблиц, сможет выполнить некоторые вычисления, необходимые для Манхэттенского проекта. Однако затем он предложил новый, свой собственный проект компьютера, сохраняющего программу, называющийся EDVAC (Электронный Автоматический Компьютер Дискретных Переменных). Новая структура состояла из пяти основных компонентов: входные данные, выходные данные, блок управления, память и арифметический блок. Компьютер с сохранением программы называется так потому, что программа вводится в память посредством числовых данных, в то время как блок управления выполняет последовательность инструкций. Первый практический компьютер этого типа был построен в 1949 году в Великобритании и назывался EDSAC (Электронный Автоматический Калькулятор с задержкой Хранения). Следующие машины были построены в США и Великобритании, и к 1960-м годам хранение программ стало обычным делом. Использование полупроводниковых компонентов для замены электронно-лучевых ламп привело к значительному увеличению скорости и надежности работы. Несмотря на то что эти компьютеры сильно напоминали проекты Бэббиджа, их авторы ничего не знали о его работах.

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

Самый привычный пример формальной системы — обычная арифметика. В ней есть четкий набор символов, есть процедуры для того, чтобы работать с этими символами, разобраться с проблемой и найти решение. Сами символы не имеют никакого значения кроме как в отношении правил формальной системы. Например, если я хочу понять, что означает ABmBAeBEB, я могу использовать различные методы или алгоритмы, чтобы выполнить вычисление. Вероятно, будет легче понять это выражение в виде 12 х 21 = 252, но этот пример хорошо иллюстрирует, что фактические символы не важны, имеет значение лишь истинность утверждения, в данном случае вычисления, которая может быть доказана посредством выведения из установленных аксиом. Если убрать общепринятое использование букв в обозначении функций, числа могут не только обозначать количества, но могут также действовать как операторы. Это — критический фактор перехода от вычислительных устройств, разработанных для решения определенных типов задач, к общим, универсальным компьютерам. В современном компьютере любая команда, например указание показать красный пиксель в определенном месте на мониторе, — это, по существу, цепочка чисел. Фактически вся программа, преобразованная в бинарный код, есть одно (очень большое) число. Базисная простота компьютеров часто не замечается из-за все возрастающей скорости и мощности этих машин.

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже