More flexible data types

XML can play several roles in a distributed object system. In particular, data can be serialized in XML-based formats. XML-encoded data can be more self-describing than data encoded in many more traditional ways, which facilitates the kind of decentralized protocol evolution seen in Internet-scale development: XML's explicit "tagging and bagging" helps keep extensions straight. However, today's common distributed object systems have type systems that are not flexible enough to describe such data. We suggest a way to make more flexible data types; this improves distributed object systems in general, and is critical to realizing XML's full potential. This approach has: (1) typing judgements based on type structure instead of type identity, (2) extensible record types with optional fields, (3) coarse record types, for which extension is compatible with subtyping, and (4) non-ignorable fields in record values.

[1]  John C. Mitchell,et al.  Foundations for programming languages , 1996, Foundation of computing series.

[2]  Vitaly Shmatikov,et al.  A Core Calculus of Classes and Mixins , 1999, ECOOP.

[3]  Kraig Brockschmidt Inside OLE (2nd ed.) , 1995 .

[4]  William R. Cook,et al.  Inheritance is not subtyping , 1989, POPL '90.