A Program Design Assistant
The DA will be a design assistant which can assist the programmer in low-level design. The input language of the DA is a cliché-based program description language that allows the specification and high-level design of commonly-written programs to be described concisely. The DA language is high-level in the sense that programmers need not bother with detailed design. The DA will provide automatic low-level design assistance to the programmer in selecting appropriate algorithms and data structures. It will also detect inconsistencies and incompleteness in program descriptions. A key related issue in this research is the representation of programming knowledge in a design assistant. The knowledge needed to automate low-level design and the knowledge in specific programming clichés have to be represented explicitly to facilitate reuse.