С началом второй мировой войны правительства разных стран начали разрабатывать вычислительные машины, осознавая их стратегическую роль в ведении войны. Увеличение финансирования в значительной степени стимулировало развитие вычислительной техники. В 1941 году немецкий инженер Конрад Цузе разработал вычислительную машину Z2, выполнявшую расчеты, необходимые при проектировании самолетов и баллистических снарядов. В 1943 году английские инженеры завершили создание вычислительной машины для дешифровки сообщений немецкой армии, названной "Колосс". Однако эти устройства не были универсальными вычислительными машинами, они предназначались для решения конкретных задач.
В 1946 году американские ученые Джон Мокли и Дж. Преспер Эккерт сконструировали электронный вычислительный интегратор и калькулятор (ЭНИАК) - компьютер, в котором электромеханические реле были заменены на электронные вакуумные лампы. Следующий важный шаг в совершенствовании вычислительной техники сделал американский математик Джон фон Нейман. Ранние вычислительные машины могли выполнять только команды, поступающие извне, причем команды выполнялись поочередно. Хотя использование перфокарт позволяло упростить процесс ввода команд, тем не менее, часто процесс настройки вычислительной машины и ввода команд занимал больше времени, чем собственно решение поставленной задачи. Фон Нейман предложил включить в состав компьютера для хранения последовательности команд и данных специальное устройство - память. Кроме того, Джон фон Нейман предложил реализовать в компьютере возможность передачи управления от одной программы к другой. Возможность хранить в памяти компьютера разные наборы команд (программы), приостанавливать выполнение одной программы и передавать управление другой, а затем возвращаться к исходной значительно расширяла возможности программирования для вычислительных машин. Другой ключевой идеей, предложенной фон Нейманом, стал процессор (центральное обрабатывающее устройство), который должен был управлять всеми функциями компьютера. В 1945 году Джон фон Нейман подготовил отчет, в котором определил следующие основные принципы работы и элементы архитектуры компьютера:
1. Компьютер состоит из процессора (центрального обрабатывающего устройства), памяти и внешних устройств.
2. Единственным источником активности (не считая стартового или аварийного вмешательства человека) в компьютере является процессор, который, в свою очередь, управляется программой, находящейся в памяти
3. Память компьютера состоит из ячеек, каждая из которых имеет свой уникальный адрес. Каждая ячейка хранит команду программы или единицу обрабатываемой информации. В любой момент процессор выполняет одну команду программы, адрес которой находится в специальном регистре процессора - счетчике команд.
4. Обработка информации происходит только в регистрах процессора. Информация в процессор поступает из памяти или от внешнего устройства.
5. В каждой команде программы зашифрованы следующие предписания: из каких ячеек взять обрабатываемую информацию; в какие ячейки памяти направить результат; как изменить содержимое счетчика команд, чтобы знать, откуда взять следующую команду для выполнения.
6. Процессор исполняет программу команда за командой в соответствии с изменением содержимого счетчика команд до тех пор, пока не получит команду остановиться.