Living with free type and class union

There are two constructs in the formal specification language Object-Z for modelling polymorphic and recursive structures. One construct, the free type, is adopted from the Z specification language. The other, class-union, facilitates polymorphic class declarations. Free type and class-union constructs are respectively based upon the functional value point of view and the object reference point of view. Consequently, the roles these two constructs perform in system modelling are different. The free type and class-union constructs are compared and discussed through various examples. The aim of this comparison and discussion is to present guidelines on how to appropriately and effectively use these two constructs to specify polymorphic and recursive structures.

[1]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[2]  Roger Duke,et al.  Object-Z: a specification language advocated for the description of standards , 1995 .

[3]  Jin Song Dong,et al.  Class Union and Polymorphism , 1993, TOOLS.

[4]  Rob Arthan On Free Type Definitions in Z , 1991, Z User Workshop.

[5]  Alf Smith On Recursive Free Types in Z , 1991, Z User Workshop.

[6]  R. Arthan,et al.  On Free Type Deenitions in Z , 1992 .

[7]  Jin Song Dong,et al.  An object-oriented approach to the semantics of programming languages , 1994 .

[8]  Jin Song Dong Formal object modelling techniques and denotational semantics studies , 1996 .

[9]  Jin Song Dong,et al.  The role of secondary attributes in formal object modelling , 1995, Proceedings of First IEEE International Conference on Engineering of Complex Computer Systems. ICECCS'95.

[10]  Gordon A. Rose,et al.  Object-Z , 1992, Object Orientation in Z.

[11]  Jin Song Dong,et al.  The Geometry of Object Containment , 1994 .