CONSTRUCTING FLOW-BASED TOOLS WITH GENERATIVE AND COMPOSITIONAL TECHNIQUES

In this paper, a model called object-oriented attribute grammar (OOAG), which combines both compositional and generative techniques, is presented to effectively construct flow-based tools that deal with fine-grained language semantics as well as a mass of graphics-drawing activities. OOAG, which consists of two interrelated parts: a model-view-shape (MVS) class framework and an AG++, an object-oriented extension to traditional AGs, is intended to preserve both advantages introduced by respective OO and AG models, such as rapid prototyping, reusability, extensibility, incrementality, and applicability. So far, a flow-based editor associated with two flow-analyzer prototypes, DU/UD tools and a program slicer, have been implemented using OOAG on the Windows environment. Our flow-based editor can be used to construct programs by specifying the associated flow information in a visual way, while (incremental) flow analyzers incorporated into the editor can help analyze incomplete program fragments to locate and inform the user of possible errors or anomalies during programming.