В 1822 году Бэббидж опубликовал статью с описанием "разностной машины", которая могла выполнять вычисление функций по аппроксимирующим полиномам до шестой степени методом конечных разностей. Эта машина использовала десятичную систему счисления и выполняла вычисления с точностью 18 знаков. К сожалению, изобретатель не смог при своей жизни построить полностью работающую версию задуманной им машины. Во второй половине 19-го века другие изобретатели по его чертежам сумели построить работающие версии разностных машин, одна из которых даже использовалась для расчёта и публикации логарифмических таблиц.
В 1835 году Бэббидж разработал общую версию механического компьютера - «аналитическую машину», которую построили в конце 20 века для Лондонского музея науки.
В Турине Бэббидж познакомился с итальянским инженером Менабреа и вдохновил его написать обзор возможностей аналитической машины. В 1842 Менабреа опубликовал работу по этой теме на французском языке. Ада Лавлейс перевела её на английский и добавила свои примечания.
В примечании А к фразе Менабреа, что эта машина является инструментом для автоматизации «длительных и скучных вычислений», Ада написала, что машина не будет ограничена работой с числами, и может обрабатывать любые объекты, «чьё взаимное фундаментальное взаимодействие можно выразить абстрактной наукой операций, и которые можно приспособить к операционным записям и механизму машины» и когда-нибудь такая машина сможет сочинять музыку.
В примечании G, Ада Лавлейс пишет, что, несмотря на впечатляющие возможности, нельзя сказать, что аналитическая машина «думает». Тем не менее машина способна на удивительные вещи и в качестве примера записывает программу для вычисления чисел Бернулли.
Первым компьютером, управляемым программой, стал Z3, построенный Цузе в 1941 году.
Он работал на электрических реле, в дальнейшем компьютеры использовали электровакуумные лампы, транзисторы, микросхемы и т.д.
Современные компьютеры используют архитектуру, предложенную фон Нейманом:
Следует различать
Рассмотренные ранее способы описания алгоритма отражают только связи по управлению, но не содержат сведений о данных, памяти и наборе элементарных шагов. Поэтому необходима модель вычислений, которая включает в себя
Можно выделить три основных типа моделей вычислений
Все эти модели необходимы для формализации понятия вычислимости. Так как в современном процессоре слишком много "элементарных" операций, то для математических доказательств ранее рассмотренных свойств алгоритма применяется более простые модели. Математиками была доказана возможность переписывания программы для любой модели в эквивалентную программу для другой модели. При появлении нового вычислительного устройства достаточно доказать возможность имитации на нём машины Тьюринга, тогда этот исполнитель может вычислить любую вычислимую по Тьюрингу функцию. С другой стороны было доказано, что машина Тьюринга может имитировать любое вычислительное устройство.