The authors describe the writing of a small, very specific, software tool, Igor, that automates the creation and maintenance of many routine and repetitive code fragments used in a large software system. Igor is viewed as an application-specific application generator; it generates C source code from a higher level specification as an application generator does, and it is designed to be used only for this one purpose in this one project. The data structure is described in a concise, declarative notation, and a special-purpose translator was written to process the description. The translator generates files of source code that implement the many simple declarations, manipulations, and interrogations of this data structure. The authors discuss experience using this paradigm to implement the intermediate format and how it contributed to solving the larger task of building the CAE (computer-aided engineering) system of which it is a part. The authors compare their solution with other approaches and examine what aspects of the paradigm may be applicable to other software development efforts.
展开▼