Dynamic Attributes, Code Generation and the IUE

by Terrance E. Boult, Samuel D. Fenster and Jason W. Kim

This papers reviews two software aspects of the IUE project: dynamic attributes and code-generation. Dynamic attributes separates inheritance of object state from inheritance of storage and provide more flexible object derivations. The primary motivation for dynamic attributes difficulties with using in existing C++ for what the IUE specification committee considered a natural design. After presenting basic background and motivation, the paper overviews the dynamic attributes mechanisms and the current C++ proto-type. It discusses how dynamic attributes provide more flexible access, cleaner class structure, and greatly reduced storage constraints, while still maintaining time efficient data access. It also discusses other benefits of the dynamic attributes mechanism including derivations with subtyping, run-time attributes and properly scoped polymorphic variables. This is followed by a summary of an initial performance study of the second proto-type which is now incorporated into the IUE development process.

A TeX-based code generator is then described. This generator supports the dynamic attributes mechanism, provides the needed support for the IUE meta-class objects and ensures (syntactic) consistency between the specification documentation and the developed code. This facility mechanism has produced over 100K of working IUE code directly from the IUE specification documents.

Keywords: IUE, Image Understanding Environment, Dynamic Attributes, Software Engineering, CASE, C++, object-oriented programming, object-oriented design, Code generation, TeX


Entire article as a PostScript file (233K)


Samuel D. Fenster
Department of Computer Science
Columbia University

fenster@cs.columbia.edu