There have been several revolutions during the 60 year history of electronic computation, such as high level programming languages and client/server separation, but one key challenge has yet to be fully resolved. This is to break down large complex processes into small more manageable components that can then be reused in different applications. There are many possible ways of doing this, but none of them cope well with all processes, with the major problem lying in the dependant links, or correlations, between components that cannot be broken down, the threads that interconnect whole computer processes or programs. These correlations are common to all processes in which computation is involved, including biological systems and the emerging field of quantum computing, as well as conventional programming.
European computer scientists believe the time is right now for a coordinated effort to solve the correlation problem and a group of them recently held a workshop organised by the European Science Foundation (ESF) to establish a framework for further research. The workshop was an astounding success, firstly in identifying that correlations in computer science represented an important problem common to the whole field of programming and software development now highly relevant to all industries and everybody's lives. It was, as was noted by the workshop's convenor Ellie D'Hondt, a specialist in quantum computing research at Vrije Universiteit in Brussels, an important forum for accumulating the required expertise to take the field forward.
"We are now at a stage were all participants understand why we need a correlation paradigm, that there is a commonality between the fields included, and we converged on a definition and basic principles," said D'Hondt." People are now ready to do research on the problem, and this is what we should get together on in another year or so."
Now is a good time to tackle the correlation problem. The evolution of general purpose computing has reached a point where the correlation problem can stand in the way of progress. The explosion of the Internet has been associated with rapid growth in software components designed to be reused to avoid the cost of duplicated programming effort.
The workshop discussed progress in the relatively new field of aspect-oriented software development (AOSD), which is bringing new techniques for isolating the correlations cutting across software components. The techniques of AOSD make it possible to modularise those aspects of a system or process that cut across different components. In this way the cross cutting aspects themselves can be broken down into reusable components or objects. This in turn enables a whole process to be broken down more completely into components that also embrace the cross cutting aspects.
Research into correlation is also timely because expertise is emerging independently in three different fields, quantum computing, bio computing, and AOSD, the latter being most applicable to general purpose computing. As D'Hondt noted, cooperation between specialists in these fields is needed to avoid duplication of effort, but more particularly because it will stimulate and drive forward the whole study of correlations. On this front the ESF workshop was highly successful, because it bought together representatives from each of the three fields in small groups. "It was amazing to have these groups of people actually communicate," said D'Hondt. "We split up into small groups where there would be one aspect, one quantum and one bio person, people not usually knowing each other beforehand, and this worked! People came up with small presentations after only one day of talks getting introduced to the whole body of work."
A common thread emerged from these mini-workshops, which was the fact that correlations appear when progressing from the high level global description of a problem to the lower level local components.
"Correlations capture the interaction between the parts," said D'Hondt. In other words the devil is in the detail. This is as true in biological systems as say a web based search engine. In the human brain for example it is possible to define how long term memories are formed, but this does not tell us how an individual neuron might be phase locked with another at a local level, so that the two depend on each other. Similarly in computation, a high level view does not describe the particular order in which lower level components need to be executed on the basis of the correlations or links between them. For example two sub-programs might share a common variable, which decides when they have to be executed within a larger task or application.
The ESF workshop also established a common theme, which was that correlations can be a good thing, rather than a hindrance to computation, as has been shown in quantum computing. "Correlations are often seen as a burden, a nuisance, something making the problem hard to solve," said D'Hondt. "But my experience in quantum computing tells me it is something that can also steer computations or even make them possible."
Quantum computing involves entangled states that can actually be exploited to perform specific tasks more quickly – in effect just one computation can sometimes execute a large number of entangled components, each of which would require separate processing in a traditional computer.
The ultimate objective set out in the ESF workshop was to produce a recipe for programming taking full account of correlations, but this is still a long way off. Yet as D'Hondt noted, the basic framework for a new programming paradigm based on correlations in computer science was established.