Technically in the 19th century saw the invention of
"programmable" looms and player piano scrolls, both of which
implemented examples of domain-specific languages. By the beginning
of the twentieth century, punch cards encoded data and directed
mechanical processing. In the 1930s and 1940s, the formalisms of
Alonzo Church's lambda calculus and Alan Turing's Turing machines
provided mathematical abstractions for expressing algorithms; the
lambda calculus remains influential in language design. However,
the first high-level programming language to be designed for a
computer was Plankalkül, developed for the German Z3 by Konrad Zuse
between 1943 and 1945