gbeta - a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance

Authors

  • Erik Ernst

DOI:

https://doi.org/10.7146/dpb.v29i549.7654

Abstract

A language design development process is presented which leads to a language, gbeta, with a tight integration of virtual classes, general block structure, and a multiple inheritance mechanism based on coarse-grained structural type equivalence. From this emerges the concept of propagating specialization. The power lies in the fact that a simple expression can have far-reaching but well-organized consequences, e.g., in one step causing the combination of families of classes, then by propagation the members of those families, and finally by propagation the methods of the members. Moreover, classes are first class values which can be constructed at run-time, and it is possible to inherit from classes whether or not they are compile-time constants, and whether or not they were created dynamically. It is also possible to change the class and structure of an existing object at run-time, preserving object identity. Even though such dynamism is normally not seen in statically type-checked languages, these constructs have been integrated without compromising the static type safety of the language.

Author Biography

Erik Ernst

Downloads

Published

2000-05-01

How to Cite

Ernst, E. (2000). gbeta - a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance. DAIMI Report Series, 29(549). https://doi.org/10.7146/dpb.v29i549.7654