Nowadays, it seems just common sense to write a program in a high-level programming language and let it be compiler (or interpreted) into machine code to run a computer. However, when did the precursors of computer scientists realized that what they needed was a 'programming language' with syntax, grammar, well-defined expressions and symbols, for example. Couldn't they just thought that any machine that processes information would just get mathematical formula as input? Have 19th century loom 'programmers' already used something akin to a language, in the same way they used punched cards? Was there an eureka moment at all, when people realized that computing machines were not just some really big calculator (to do the tedious math stuff for you), but that could be used for much more (like sorting lists, printing tailored letters, and so on)?
-
3$\begingroup$ There was no such eureka because mathematicians developed concepts of programming languages before they designed computers to run programs on. Jacquard looms and mechanical calculators had very limited assortment of operations. Universal Turing machines, "that could be used for much more", and "language" for them, were developed in 1930s out of purely theoretical concerns. Assemblers and higher level languages came out of that for first computers in 1940s, see History of programming languages. $\endgroup$– ConifoldDec 9, 2019 at 20:24
-
1$\begingroup$ A good review of Lovelace's program and its predecessors is What Did Ada Lovelace's Program Actually Do? on Two-Bit History:"Menabrea published “diagrams of development” in his paper a year before... Babbage also wrote more than twenty programs that he never published. Even so, Lovelace’s program was miles ahead of anything else that had been published before. The longest program that Menabrea presented was 11 operations long and contained no loops... Lovelace’s program contains 25 operations and a nested loop". $\endgroup$– ConifoldDec 11, 2019 at 6:28
-
$\begingroup$ According to legend, John von Neumann invented the idea of reading part of data memory as instructions, because he was tired of rewiring the machine for every task. Is this legend distorted or exaggerated or just plain wrong, or does it imply that “programming language” as we know it was not used then? $\endgroup$– Anton SherwoodDec 13, 2019 at 6:55
1 Answer
As Conifold says, Turing's proof was a decisive intellectual step, along with Church's Lambda Calculus and Goedel's proof. And as he says, real computers then arrived with assembler language, "bottom up" language design.
Fortran and Cobol were the first major steps towards high level languages. McCarthy's LISP was also an important step: he designed it as a way to express algorithms, "top down", and we reportedly surprised when one of his graduate students decided to implement it.
-
1