When did computers begin? When you look more closely at the question it dissolves into dust, almost literally, because people calculated with pebbles in the dust millennia ago. When you look at the origins of modern computers people will more likely refer to Alan Turing or John von Neumann or Konrad Zuse. All of these lived in the 20th century.
Yet many of the ideas that gave rise to modern computing are much older. Algorithms, which are so essential for modern computing, and even managing traffic lights, take their name from the ninth-century Mohammed Ibn Musa al-Khwârizmî from Khwarezm in the former Soviet Union. (The word “algorithm” is derived from Latin word Algorithmus, from his name).
It was from his work that the West learnt of the very familiar numerals 1,2,3 … that are now called Arabic, or more precisely, Hindu-Arabic numerals. More importantly we learnt from him the algorithms for how to use those, then newfangled, numerals.
Some people regard al- Khwârizmî as the first computer scientist. Though that title is anachronistic, it makes some sense. In Catalonia, and elsewhere, Ramon Llull (c.1232–c.1315) is regarded as the father of computer science and the first computer scientist.
Again this is anachronistic. Nevertheless one can trace the influence of Llull’s ideas through Gottfried Wilhelm Leibniz (1646–1716) and others to the modern discipline.
I find Llull’s work fascinating for the insights it gives into how we (slowly) develop sophisticated ideas and systems.
Llull’s formal language
Llull made a number of contributions to what we now call computer science. Among these, the idea of, and construction of, a formal language is probably the most important. On the other hand his machine has had more notoriety.
It was a very simple machine, and you can see it here.
The formal language used by Llull’s machine, and I do not know of any earlier formal language, used the eight letters B to K (omitting J), and made combinations of them. Of course the combinations were not as complicated as what you typed to get to this page, but the idea was seminal. These letters were variables, somewhat like the letters in algebra.
When the variables were given specific values Llull got a statement or a question. B represented “good” (among other things) and C represented “great”. Thus the combination BC could represent the statement “Goodness is great" or the question “Is goodness great?”
Llull did not have a logic machine even remotely like the 20th century authors I mentioned earlier. But his machine did generate questions and statements in his – admittedly restricted – formal language. These questions were concerned with morals and religion.
Why was he doing this? Llull’s aims were not philosophical: he was aiming to convert people to Christianity, and his target audience was the peoples of the religions of the Book, i.e. Jews and Muslims.
What Llull’s system did was to present statements or questions using his formal language. After that he would argue with the Jew or Muslim, relying on his belief in the veracity of Christianity to win the argument.
Did it work? The answer seems to be that although the mechanism was fine, the strategy of argument did not work too well. His efforts in North Africa got him thrown into prison by the Muslims. But the ideas did bear fruit.
Leibniz takes the baton
Llull’s ideas were taken up by Athanasius Kircher (1602–1680), and then by Leibniz (1646–1716). Leibniz mentions Llull many times by name, and discusses his work at length. He discusses both Llull’s combinations and his machine.
Leibniz went on to develop his own mechanical calculating machine, the Step Reckoner. He can also be regarded as the founder of mathematical logic, because he worked on the development of formal languages.
This work eventually led to the formal languages that underpin all computing. These range from the purely symbolic languages, incomprehensible to most mortals, that comprise “machine code” through mathematically inclined ones such a FORTRAN right up to logical languages such as PROLOG.
In addition to the formal language and the machine, Llull contributed a number of other ideas to computer science.
Anyone labouring under the illusion computers sprang to life spontaneously in the 20th century would be advised to consider these roots, as rich and nourishing as in any other field of human ingenuity, and tracing back to antiquity.
John Crossley will deliver a free public lecture – How can thirteenth century thoughts have contributed to computer science? – on Wednesday September 19 at Monash University, Melbourne.