Towards an Approach to Overcome Software Brittleness

Development of bug-free, high-surety, complex software is quite difficult using current tools. The brittle nature of the programming constructs in popular languages such as C/C++ is one root cause. Brittle commands force the designer to rigidly specify the minutiae of tasks, e.g. using ''for(index=0;index>total;index++)'', rather than specifying the goals or intent of the tasks, e.g. ''ensure that all relevant data elements have been examined''. Specification of task minutiae makes code hard to comprehend, which in turn encourages design errors/limitations and makes future modifications quite difficult. This report describes an LDRD project to seed the development of a surety computer language, for stand-alone computing environments, to be implemented using the swarm intelligence of autonomous agents. The long term vision of this project was to develop a language with the following surety capabilities: (1) Reliability -- Autonomous agents can appropriate y decide when to act and when a task is complete, provide a natural means for avoiding brittle task specifications, and can overcome many hardware glitches. (2) Safety, security -- Watchdog safety and security agents can monitor other agents to prevent unauthorized or dangerous actions. (3) An immune system -- The small chunks of agent code can have an encryption scheme tomore » enable detection and elimination of unauthorized and corrupted agents. This report describes the progress achieved during this small 9 month project and describes lessons learned.« less