This is the second part of a fictionalised fact short story. The first part descibed a case of identity theft with its awful consequences, using the fictitious characters of Justin and Patrick.


Following this lengthy discussion about identity theft Justin and Patrick decided to go and think about the problem and see if they could dream up any solution, either in hardware or software, or a combination of both, that would address the concerns they had expressed. They felt that, as practitioners, they had a duty to address the problem, but where to start? One thing both agreed upon was that current software is a horrendous mess, particularly the operating systems, with hardware somewhat better, almost the reverse condition to the way things were at the beginning of the computer age.

About a month later they felt that they had some grounds on which to work. Patrick related some work done several years ago by his father which, if developed further, might begin to address the problems they had previously outlined. Apparently a British scientist called Allan Turing had proposed a computer system in 1936, now called the Universal Turing Machine, which could, on its own, carry out any calculations required of it, switching from application to application at the behest of the machine operator. The only snag with the idea was the need for an infinitely long paper tape containing the applications.

He went on to say that his father had developed some concepts which said that any and all applications could be created with a small piece of software that required only a few thousand bytes of machine code, and that this small piece of code, augmented slightly, could replace all current operating systems, which require hundreds of millions of bytes of machine code. With this approach he had suggested that it became possible to replace the computer as we currently know it today by a small chip containing a small amount of conventional code. Ultimately this tiny code would be all that is required for any organisation to develop and run all its applications. Acceptance of the concept would save organisations billions of currency spent on computer hardware and software purchases, as well as on the costly development and maintenance of applications.

Apparently his father's ideas were not just theory, the concepts had been tested out in the main frame era. A system has been built and worked quite effectively. In its early development stage it had ran successfully (and in general quite fast) on large computers built by computer manufacturers such as ICL in the United Kingdom, IBM, Digital Equipment Corporation, Control Data Corporation and UNIVAC, in the United States.

Patrick went on to say that his father had mentioned some of the early applications developed for trial purposes. One was a pilot operation for a credit system similar to that of Dun and Bradstreet's at the time, using a pilot data base of 40,000 records. It had also been used to develop a pilot hospital information system similar to that developed by Lockheed Aircraft and Missile Systems for the famous Mayo Clinic, as well as for a document storage and retrieval system similar to that used world wide by Exxon. It had also been used for early on-line accounting systems.

These early applications on main frames had shown the concepts to be viable. It had also been demonstrated that they were an ideal tool for teaching concepts of computers and systems analysis to students in Universities and Colleges, but not only to students. The concepts had been readily understood by senior company managers at advanced management courses in both Canada and the United States. Several major companies had favourably evaluated the concepts.

Software genes

Patrick, now with considerable interest from Justin, who was already seeing how they might develop such a system, went on to give a few more details of the ideas.

The first part of the concept involved defining what was known as a virtual machine with a small instruction set, which did basic operations such as add or subtract numbers, compare strings of text, move strings of text about within the computer, draw a line on a graphics screen, communicate with a telephone, send an email, open a gate, sound an alarm, and so on.

The second part of the concept was that it was very easy to create the equivalent of the virtual machine on any real machine, meaning that any application developed for the virtual machine would run successfully on all computers.

The third and most important aspect of the concept was that any application, no matter how complex, could be divided into a relatively small set of basic functions, which his father had called 'software genes'. This small set of software genes, which could be considered as building blocks, would be found in every application (however sophisticated). The building blocks themselves had been discovered by examining a set of existing applications developed in a conventional manner. By linking these building blocks in different patterns a user could create a home accounting system, a communications package, a word processor or an airline reservation system operating on a world wide network, applications that with current technology of the time required hundreds of thousands of millions of computer instructions, and still do. Apparently no machine code was ever generated with the software gene concept, and no compiling was involved, a single computer program doing everything.

The building blocks or software genes were simply data elements stored in the memory bank of the computer, each of which was given a name. The number of software genes was quite small. With this small set of building blocks most of the applications currently running on the world's computers, could be built. Also, apparently, once these software genes had been created they could be used on any computer that could run the virtual machine. The virtual machine was also not dependent on any of the current computer architecture at the time, or any particular operating system, so would be able to run on any future computer that might be built.

Patrick, looking once again at the notes he had made while speaking with his father, went on to say that in creating the software genes it was quite possible to (in fact almost impossible not to) develop the software genes completely independent of the ethnic language used by a user.

He then went on to discuss further things related to him by his father. The concepts had at a later stage been successfully applied to microcomputers and a well known research firm in the United Kingdom had produced a well written, 132 page document called the "Gene Machine" in which they said these concepts represented the most important development in computer technology since the invention of the compiler many years previously. The ideas had even been used to develop a very small and compact JAVA run system, although his father thought that duplicating other languages was a waste of time, as the concepts, properly applied, would obsolete JAVA, COBOL and other languages.

His father had also said that the future impact of his ideas would be the elimination of the computer as it was known today, it being replaced by plug compatible peripheral devices each containing copies of the software genes. A user would then just buy the peripherals he needed and plug them together. Future applications would then be delivered on an electronic card, also containing the set of software genes.

In summary, just as an almost infinite number of human beings is created from a large but finite number of genes and chromosomes, and the body of English Literature from just 26 letter of the alphabet, so future computing requirements would be achieved by the analogy of software genes, although the number of software genes would be considerably less than the number of human genes.

Justin then said "OK, suppose we build this Turing machine in software, how will it change the situation we discussed about a month ago. Can it change the vulnerability or are we just barking up the wrong tree, and wasting our time? Let us take each item one by one and see whether a Turing machine in software would address the problem."

Part 3 will discuss the implementation of the solution proposed by Justin and Patrick, also outlining how it addresses problems previously discussed.