Ще в XIX столітті існували «програмовані» ткацькі верстати та піаніно-програвачі, спосіб програмування яких нагадує так звані предметно-орієнтовані мови програмування. На початку XX століття починають використовувати перфокарти та механічну обробку даних. У 1930—1940 рр. виникає лямбда-числення та машина Тюринга, які застосовували математичну абстракцію для опису алгоритмів. Лямбда-числення згодом здійснило вплив на проєктування мов програмування.