An implementation of the FTAG model in concurrent ML

Non-imperative programming models can simplify the development of fault-tolerant software, in part because of their potential for automatically generating concurrent implementations. This paper describes the design of a concurrent implementation of FTAG, a previously-described functional model for writing fault-tolerant software based on attribute grammars. The implementation involves translating FTAG programs into Concurrent ML (CML), a strongly-typed version of ML supporting multi-threaded execution. The program convertor that realizes this translation is described, together with node and workspace managers that manage the computation tree and stable storage abstraction, respectively.

[1]  Brian Randell System structure for software fault tolerance , 1975 .

[2]  Fred B. Schneider,et al.  Implementing fault-tolerant services using the state machine approach: a tutorial , 1990, CSUR.

[3]  John H. Reppy,et al.  CML: A Higher-Order Concurrent Language , 1991, PLDI.

[4]  Richard D. Schlichting,et al.  Implementing fault tolerance with an attribute and functional based model , 1994, Proceedings of IEEE 24th International Symposium on Fault- Tolerant Computing.

[5]  Algirdas Avizienis,et al.  The N-Version Approach to Fault-Tolerant Software , 1985, IEEE Transactions on Software Engineering.

[6]  David Cummings,et al.  Checkpoint/rollback in a distributed system using coarse-grained dataflow , 1994, Proceedings of IEEE 24th International Symposium on Fault- Tolerant Computing.