Robert Balzer began the session by presenting an overview of where debugging fits into knowledge-based programming systems. He distinguished between differences in <italic>paradigm</italic> (the traditional software engineering approach in which the source code is the first formal representation vs. the operational specification approach in which the specification is both formal and <italic>executable</italic> and from which the implementation is formally derived) and differences in <italic>technology</italic> (traditional debuggers vs. knowledge-based tools), pointing out that it is possible to use traditional debugging techniques with the operational specification paradigm as well as use knowledge-based tools with the traditional software engineering paradigm. Balzer presented the operational specification paradigm for software development. The basic idea is that an implementation is derived from a specification through transformations chosen by the programmer and applied by the system. Assuming each transformation is correct, the resulting implementation will accurately reflect the intentions of the specification.
Read full abstract