Sunday, March 26, 2006

Imbedded Communicating Computers

Imagine a pilot looking at gauges and listening to warning sounds while moving and turning the controls surrounding him, say in World War II. In this scenario the pilot is the only processing unit, so to speak. All input must enter pilot’s human sensory devices before they can be processed and produce output in the form of adjusting controls.

Mechanical devices that may assist the pilot by automatically making adjustments do not process any form of input. For instance, when a certain level of pressure is reached, a safety valve may open to lower the pressure. At the best this form of automation may be likened to instinctive reactions. Imbedded computing refers to an interval between the input and the output.

We usually speak of imbedded computers rather than imbedded programming. Generally, a special purpose computer is designed and programmed via its assembly language and C. This imbedded computer receives input through its sensory devices, performs some processing and causes certain actions to take place as the corresponding output. Of interest to us is the processing phase, i.e. the imbedded programming.

For a moment let us use the term computer in referring to a human, as it was at the time of Turing and Post. A pilot’s brain is the processing unit where the imbedded programs are stored. These programs are copied to the pilot’s brain during training, simulations etc. In many cases these biological programs are amenable to an algorithmic implementation. Developing further AI techniques will also extend the scope of imbedded programs. Ultimately, we will need an imbedded engine for an expressive formalization.

A modern carrier, such as the one the President is building in his father’s name, can house an entire supercomputer along with hundreds of various sizes of PC. In this scenario higher-level programming languages facilitate imbedded programming. However, even in the future it will sound like a joke to speak of imbedding a PC in a microwave oven. On the other hand, a PC-equipped house is already plausible.

A house with an imbedded computer can properly adjust itself and control many routine functions. For instance, equipment like air-conditioning unit, coffeemaker, etc can contain tiny computers and communicate wirelessly with the central computer. The possibilities are more endless than the Domino’s 5-5-5 pizza deal with 5 toppings to choose from.

The interfacing among all imaginable devices seems formidable. Every piece of equipment will probably contain a different type of processor. Some form of standardization is needed so the equipment can communicate with the central computer, and perhaps with each other.

Furthermore, as the equipment become more complex and provide more features, the language for accurately expressing advanced functionalities will need further research. Separating the language used for imbedded programming from the standard for inter-equipment communication will bring about the same chaos we are currently facing with regard to software development.

One cannot hope for a more expressive language than Z++ formalism, in any context. The Z++ processor supports the entire language on any processor for which a C++ compiler can be built. The latter is a consequence of the fact that the processor is written in C++, without relying on system calls. Thus, Z++ is the formalism for programming imbedded communicating computers, just as it is the abstract medium for component-oriented development.

Struggle for life is only meaningful against the opponent nature. What is so exciting about living a harsh life only so you can pay interest and taxes, and the rest for medical bills? That is, if you are lucky enough to possess the skills to generate sufficient profit for someone to hire you. I hope computerized homes will provide a small convenience to all rather than being affordable by a selected few.

Another domain of application for Z++ formalism is in the area of equipment used in factories, including robots. The imbedded programs in this field are considerably larger and more costly to develop. This makes it difficult to upgrade or switch to better hardware. The process is analogous to porting an application from Palm to Pocket PC, or vice versa. In this context Z++ acts as a shock absorber. All it takes is to build the Z47 processor for the target hardware. The actual software needs no change.

Presently, imbedded computers have severe limitations and are not suitable for satellites with nuclear arsenal. A fighter pilot sees and hears things outside of range of sensors attached to an imbedded computer. It would be better to focus the research on extending the usability of imbedded computing to exploring better lives for our kind.

Perhaps someday everyone will enjoy computerized products, at home, hospitals and other forms of public services. Presently, the cost of developing imbedded programs is too high for casual use of computerized products.

Labels: , , , , ,