THE GENE MACHINE

excerpts from the report by BLOOR RESEARCH

The following extracts are from a report on GENETIX written by Bloor Research, a highly regarded 'think tank' in the UK. The extracts used have been approved for this web site by Robin Bloor, President of Bloor Research. This report by Bloor Research was unsolicited, so represents an unbiased view of the technology. The full report is available from Bloor Research, contact Robin Bloor.

In 1998-99 the publication won an STCEO award in the Technical Publications and On Line Communication Competition, Technical Reports Category, honouring the three authors Robin Bloor, Bernard A Hodson and Richard Stockdale.



...This report is intended to serve only as an introduction to the concept of the Genetix Universal Turing Machine...
...The editorial content is our own and has not been influenced by Professor Hodson...
There are four chapters to this report:

The Theoretical Background:
This provides a brief description of the life of Alan Mathison Turing and sets the historical background to the Turing Machine and Von Neumann computing. It describes the Universal Turing machine.

The Anatomy of Genetix:
This chapter explores how Genetix works and demonstrates that Genetix is indeed a Universal Turing Machine. It provides an example of how the machine is programmed and covers many of the basic characteristics.

Broader and Deeper:
This chapter is simply an expansion of the previous chapter, providing more detail. It attempts to answer many questions that might arise in the readers mind.

The Turning of the Page:
This chapter analyses the possibilities of Genetix from our own perspective. As such it is partially speculative, however it refers to some of the work that Genetix Inc. has done to explore the possibilities of the technology.
The Theoretical Background

Alan Mathison Turing

...the immense contribution he made to mathematics and computing...

...he had invented the idea of a state machine...

...He also helped to design Colossus, the fully electronic decryption machine which some commentators claim was the first computer...

...Turing was developing a science of software...

...Turing's conception of a computer was more advanced than Von Neumann's...

...A Turing Machine consists of:
  • a Paper Tape
  • the Turing Machine
  • a Rule List

The Von Neumann Heritage

...However, he is most famous for being the father of the computer...

...He was not a visionary in the way that Turing was...

...If we accept Turing's model of computing, then the fundamental mistake that was made, as computers evolved, was the creation of the operating system... After that the world of software happily fragmented itself again and again as each year passed...

...The sad legacy of the Von Neumann approach is fragmentation...

The Beguiling Proposition

...Professor Hodson was able to demonstrate... They were both using exactly the same software. A point had been proved.

...the Turing model was both more economic and faster in software development...

...By 1995 he was developing a prototype as 'proof of concept' and in 1997, he had a proven architecture...
The Anatomy of Genetix

...The Genetix Turing Machine is a wholly different approach to software engineering and owes almost nothing to the many developments in software that have occurred in the past decades...

...some of the characteristics of Genetix are quite remarkable...

...Size may not be everything, but smallness indicates a level of consistency of thought...

...Our own conclusion on this is that Genetix does indeed implement a Turing architecture...

...The Universal Turing Machine is not a matter of religious purity, it is a matter of practical software engineering...

...there will eventually be no need for any operating system...

...50,000 applications could be accommodated in a single Genetix library occupying no more that 4 megabytes...

...We can see how both these claims may be true...

...If we consider the English language, it consists of a relatively simple alphabet of 26 letters. These letters are all that is required to compose the full vocabulary of the language...

...A closer analogy to Genetix, and one which prompted the naming of the product, is the analogy with the gene...

...DNA utilises a finite set of material which enables the creation of billions of different beings, 20 odd chromosomes and several hundred genes...

...In the same way that DNA strings are put together, applications are generated by Genetix. Just as we are now learning to splice genes into existing strings in Biology, we can do the same thing with applications...

...However, I do not see the 'software gene pool' becoming as large as the DNA pool. All of this leads us to one major conclusion and perhaps the most important claim that Genetix makes...

...Genetix offers genuine software reuse...

...The architecture of Genetix is a Turing architecture... it maps this into a software architecture that behaves in the same manner...

...The Genetix Turing Machine is a virtual machine... It executes virtual machine instructions...

...The commands can be classified as one of three types:
  • They call other genes, providing parameters with the call.
  • They call themselves recursively.
  • They are virtual machine instructions.

...A gene can call other genes which may also call the gene that called them... all genes are reusable...

...from a paper Turing gave in 1945, is worth mentioning: "There will positively be no internal alterations to be made even if we wish suddenly to switch"...

...All use the same 'software genes', the only difference in the applications being in the sequence in which the 'software genes' are processed. Many of the same genes will be used or, if you like, reused...

...An application is run by selecting a high level gene... and the whole linked structure defined by this gene and the genes it calls...

...These high level genes correspond to the idea of the machine, in Turing's words, having a 'state of mind'...

Programming

...Developers are provided with a 'gene dictionary' that gives the name of each exposed gene, along with a description of what the gene does...

...are true in respect of the prototype version that Bloor Research tested...

...This version provided the functionality to be able to carry out simple word processing, mathematics, graphics (draw graphs, create simple icons, draw lines, circles, curves, etc.), implement animation (i.e. move an object across the screen), build PC database style applications, print to a single printer, communicate (between two Genetix systems on two PCs) and develop new genes. It had no Windows capability, directly handling its own graphics, and the database applications were in character mode...

...The prototype occupied a single executable of less than 2 Kbytes... the gene library of 26 Kbytes containing more than 600 genes a small area for storing constants of 2 Kbytes...

...The size of the library... doesn't grow exponentially as functionality increases. With all other approaches... exponential growth seems to be a practical fact...

...executable is written in native Assembler and currently executes the following functions:
  • Thread pointer adjustment
  • True or false result processing
  • Address parsing
  • Floating point processing
  • Telecomms routine
  • Mouse routine
  • I/O routine
  • Port routine
  • Graphics routines
  • CD/ROM routines
  • Sound and Scanner routines

...processor takes just under 2 Kbytes of machine code (at the time of writing the figure is 1.7 Kbytes)... no other code is needed and none is ever generated. All applications can not only be developed, but will also run with this executable...

...the task of porting Genetix to other chips than the Intel series that it currently works on is not onerous...

...The executable has also been designed for efficiency of execution...

...Nothing dynamic happens within the executable or within the genes when execution takes place...

...Amazing though it may seem, it is quite possible to strip Genetix down and make it smaller still, if the application warrants it...

...The method of doing this is simply a process of identifying redundant genes and virtual instructions, and removing them...

...The Genetix implementation of the Universal Turing Machine has not lost any of Turing's generality... it has been carefully designed to be generic and it has also been designed to be efficient... it is capable of being used to build any kind of software application...

...gene calls could become a generic API for other programming languages and with some work to expand the gene pool it is probable that all useful program logic structures could be mapped to genes...

...Compilers themselves are made obsolete by Genetix...

...then there would be no problem at all in mixing program languages within the same application...

...Genetix is human language neutral. Gene names can be assigned or re-assigned using any human language from Polish to Pigeon English...

...The gene library itself is inherently portable...

...once a port is completed the full capability of Genetix becomes available on the new platform...

...The functionality that Genetix can provide depends on the gene pool... It is therefore extensible in two ways - by adding to the internal gene pool and by adding to the external gene pool...

...Another bewildering aspect of Genetix is its potential for communications...

...In order to make the application available to the processor, it is only necessary to transmit the 80 to 400 bytes and register them in the external gene pool for the application to be able to execute at once...

...This is an extraordinarily thin requirement when compared to Java, the current technology for this type of software distribution - and dramatically economic compared to anything else...

...The communications potential is a direct result of the code compression of Genetix...

...In effect, despite the remarkable advances in miniaturisation, there are still constraints and Genetix can address some of these constraints. We are particularly convinced that Genetix will see extensive usage in the aerospace industry, in the military and in telecommunications...

...Another property of Genetix is that its architecture makes it eminently suitable for use in distributed and parallel processing environments...

...it is worth saying that the current state of an executing 'gene machine' is always knowable...

...It is thus possible to pass the current state of one instance of Genetix to another instance of Genetix very quickly...

...Bloor had concluded that Professor Hodson knew more about computing than most software engineers that he had previously encountered - and he had encountered a number of intellectual giants from the IT world...

...Bloor ... concluded that Turing's ideas had never been implemented and that Genetix was indeed a direct attempt to implement a Universal Turing Machine. He could find no fault with Alan Turing's conceptual view and soon began to see it as a very powerful software paradigm. Bloor concluded that Alan Turing was several decades ahead of his peers and had been completely ignored by the computer industry from the outset...

...Surprising though it may seem, Genetix does not need an operating system and can absorb all the operating system functions...

...As a basic requirement Genetix needs:
  • a chip, with an instruction set
  • the gene machine
...It does not need a compiler and it does not need a linker and it does not need an operating system and neither does it actually need GUI components or database components or communications components per se...

...Of course it can live with them, but actually it can live an awful lot better without them...

...the whole of the state of an application is defined by the values that the machine holds in memory...

...Genetix has been designed to be autonomous, so that once it is loaded, it need never shut down...

...In order for the machine to run two tasks, it is only necessary to duplicate the memory map...
...Clearly this kind of multi-tasking arrangement can be replicated as many times as you wish for multiple processes...

...One of the questions that is rarely asked in the computer industry, but one that should be discussed more often is: "What should be embedded in silicon and what should not?"... Genetix has a very small executable which cycles round repetitively doing nothing more than stack operations and executing virtual machine instructions... it only uses a total of 44 instructions from the set - although this count includes the 11 floating point instructions that Genetix uses on chips where floating point capability is available...

...Clearly it would be possible to design a RISC chip specifically for Genetix, including only the instructions required for the Genetix executable...

...There is another approach that could be taken. This would be to design a CISC CPU chip that simply executed the Genetix Virtual Machine instructions and to embed the execution of these instructions in micro code...

...Another clear possibility is to put a Genetix chip in every peripheral and have a standard protocol between the host CPU and the peripheral...

...The gene machine can be updated to have functionality added once it is deployed (as long as it is connected to some network)...

...The adding of functionality does not consume a significant amount of memory resource...

...the following web based service becomes feasible:...

...Specific versions of Genetix can be made available for different environments...

...Customers could be able to buy (or even rent) copies of Genetix, probably for a minimal cost...

...Upgrades of the basic machine could be handled automatically...

...Individual applications can be bought for permanent use or rented...

...Development capability can be bought for permanent use or rented...

...Genetix developers can use this electronic channel to sell or rent applications...

...New versions of software that obsolete old versions and cause regular major expenditure will not be a feature of Genetix. Any approach based on built-in obsolescence would destroy the coherence of the gene library...

...Genetix is a virtual machine, a library of routines and a development environment. We can add to this the fact that it is also a Universal Turing Machine and, in theory at least, is capable of building and running any application...

...The Turing Paradigm is this:

...All software consists of processes that transform data in one way or another. Therefore software can be constructed as a related collection of data transforming processes. As such, all applications have the same underlying structure...

...we expect that its development environment will first be... the smart card market or the embedded chip market or in building video applications...

...However in the longer term it will address all environments...

...The Universal Turing Machine will inevitably give rise to a universal development environment - one which treats all data, whether character, text, number, image, video or sound in a very similar way and will allow the combination of any one of these with any or all the others. As such we can expect it to give rise to wholly new applications and types of application...

...We believe that this is the most radical development in computing since the invention of the compiler and if it is accepted, it will change the whole industry. A page has been turned and a new chapter in the history of computing has begun...

The Final Summary

...In our opinion, the Genetix Turing Machine is the most significant development in computing since the invention of the compiler...