Organizing programming knowledge into syntax-directed experts
Programming environments of the future are certain to be "knowledge-based." Succinct statements of expertise, currently applied implicitly by programmers, will be available for explicit application by future programmers as well as opportunistic application by the environment itself. Considerable tension will exist between the desire to represent knowledge in a flat, decomposed form, and the desire for the efficiency available in compiled representations of this knowledge, as used in automatic processors, such as compilers, simplifiers, and code analyzers. I advocate specifying programming knowledge uniformly but organizing the knowledge into experts which solve "syntax-directed" problems, problems whose solution decomposition resembles the structure of the input data itself. This organization allows the efficiency of current ad hoc representations to be obtained and the resulting experts can coexist-in fact, cooperate-with more sophisticated problem solvers, including people.
KeywordsExpert System Programming Environment Program Transformation State Predicate Solve Generator
Unable to display preview. Download preview PDF.
- [Balzer 85]Balzer, R., "A 15 Year Perspective on Automatic Programming," IEEE Transactions on Software Engineering SE-11, (11), November 1985, 1257–1268.Google Scholar
- [Fickas 85]Fickas, S., "Automating the Transformational Development of Software," IEEE Transactions on Software Engineering SE-11, (11), November 1985, 1268–1277.Google Scholar
- [Kaiser 84]Kaiser, G., IE: An Implementor's Environment for Developing Language-Oriented Editors, Ph.D. thesis, Carnegie-Mellon University, Computer Science Department, 1984.Google Scholar
- [McDermott 83]McDermott, J., "Extracting Knowledge from Expert Systems," in Proceedings of the Eighth International Joint Conference on Artificial Intelligence, pp. 100–107, IJCAII, 1983.Google Scholar
- [Neches, et. al 85]Neches, R., W. Swartout, J. Moore, "Enhanced Maintenance and Explanation of Expert Systems through Explicit Models of Their Development," Transactions On Software Engineering, November 1985. Revised version of article in Proceedings of the IEEE Workshop on Principles of Knowledge-Based Systems, December, 1984Google Scholar
- [Reps 82]Reps, T., "Optimal-time incremental semantic analysis for syntax-directed editors," in Conference Record of the Ninth Annual ACM Symposium on the Principles of Programming Languages, pp. 169–176, ACM, 1982.Google Scholar
- [Wile 81]Wile, D.S., POPART: Producer of Parsers and Related Tools, System Builders' Manual, ISI, 4676 Admiralty Way, Marina del Rey, CA, 90292, 1981.Google Scholar
- [Wile 83]Wile, D.S., "Program developments: formal explanations of implementations," CACM 26, (11), November 1983, 902–911.Google Scholar
- [Wile 86]Wile, D., "Local Formalisms: Widening the Spectrum of Wide-spectrum Languages," in Conference on Program Specification and Transformation, IFIP Working Group 2.1, April 1986.Google Scholar
- [Wulf 75]Wulf, W., Johnsson, R., Weinstock, C., Hobbs, S., and Geschke, C., The Design of an Optimizing Compiler, American Elsevier, 1975.Google Scholar