I have been working on the practical application of the simple ideas behind the X-machine models to real large problems, and the complications that arise. The X-machine was developed by Samuel Eilenberg in 1972 and it was researchers at the University of Sheffield that developed the model for the specification of computer systems. Introduction to X-machines' , Dr. Gilbert Laycock , Internal report, University of Sheffield, 1993. They are mathematically based mainly on set theory and borrow greatly from the Z Formal Specification language in order to fully describe elements, interactions, e.t.c. of the systems that they attempt to specify. There are several issues that I feel are particularly important.
Minor modifications can require extensive re-writing.
It is difficult to check even the most rudimentary properties of a machine, let alone more sophisticated work such as formal refinement or proof of equivalence between machines. Secondly, X-machines are easiest to handle when they are small to medium sized. Some way is needed of combining machines at different levels of abstraction to describe complete systems. Several possibilities suggest themselves, in particular that of using X-machines to specify object oriented objects, connected using some suitable protocol. Another idea is to investigate interacting concurrent X-machines.