Backward error recovery via conversations in Ada
An approach is proposed for using backward error recovery in Ada. The advantages and disadvantages of Ada are not discussed, nor are new run-time algorithms for Ada proposed, but a practical method is offered for using backward recovery and software diversity within this language. The authors believe that Ada has sufficient facilities to allow the use of software diversity to develop fault-tolerant systems. However, previous researchers have noticed problems in attempting to use this possibility, and restrictive rules are necessary to avoid these problems. 'Conversations' for co-ordinated backward recovery of concurrent processes are considered and the following proposals are made: a restricted scheme similar to Kim's 'concurrent recovery block', but providing for deadlines on the execution of the diverse modules; programming rules for applying this scheme to Ada procedures; and a way for automatically enforcing these rules through a source code pre-processor. Two advantages of this scheme are its functioning within this widely used conventional industrial language and its suitability for real-time systems of an iterative type.