Research on Knowledge-Based Software Environments at Kestrel Institute

We present a summary of the CHI project conducted at Kestrel Institute through mid-1984. The objective of this project was to perform research on knowledge-based software environments. Toward this end, key portions of a prototype environment, called CHI, were built that established the feasibility of this approach. One result of this research was the development of a wide-spectrum language that could be used to express all stages of the program development process in the system. Another result was that the prototype compiler was used to synthesize itself from very-high-level description of itself. In this way the system was bootstrapped. We describe the overall nature of the work done on this project, give highlights of implemented prototypes, and describe the implications that this work suggests for the future of software engineering. In addition to this historical perspective, current research projects at Kestrel Institute as well as commercial applications of the technology at Reasoning Systems are briefly surveyed.

[1]  Stephen J. Westfold,et al.  Knowledge-based programming self applied , 1986 .

[2]  Dana S. Scott,et al.  First Steps Towards Inferential Programming , 1983, IFIP Congress.

[3]  Donald Cohen Symbolic Execution of the Gist Specification Language , 1983, IJCAI.

[4]  Richard M. King,et al.  Research on Synthesis of Concurrent Computing Systems. , 1982, ISCA 1982.

[5]  Robert Balzer,et al.  Report on a knowledge-based software assistant , 1986 .

[6]  Robert Paige,et al.  Finite Differencing of Computable Expressions , 1982, TOPL.

[7]  Douglas R. Smith Applications of a Strategy for Designing Divide-and-Conquer Algorithms , 1987, Sci. Comput. Program..

[8]  Ralf Steinbrüggen,et al.  Program Transformation Systems , 1983, CSUR.

[9]  Steve Tappel,et al.  Some Algorithm Design Methods , 1980, AAAI.

[10]  Yutaka Ohno,et al.  Requirements Engineering Environments: Software Tools for Modeling User Needs - Guest Editors' Introduction , 1985, Computer.

[11]  Douglas R. Smith,et al.  Top-Down Synthesis of Divide-and-Conquer Algorithms , 1985, Artif. Intell..

[12]  Jacob T. Schwartz,et al.  Automatic data structure choice in a language of very high level , 1975, CACM.

[13]  Stephen John Westfold Logic specifications for compiling , 1984 .

[14]  Douglas R. Smith Reasoning by Cases and the Formation of Conditional Programs , 1985, IJCAI.

[15]  Jacob T. Schwartz,et al.  On programming : an interim report on the SETL Project , 1973 .

[16]  Zohar Manna,et al.  A Deductive Approach to Program Synthesis , 1979, TOPL.

[17]  Elaine Kant,et al.  Results in Knowledge-Based Program Synthesis , 1979, IJCAI.

[18]  Cordell Green Research on Knowledge Based Programming and Algorithm Design. , 1981 .

[19]  C. Cordell Green The design of the PSI program synthesis system , 1976, ICSE '76.

[20]  Elaine Kant,et al.  Efficiency considerations in program synthesis : a knowledge-based approach , 1979 .

[21]  Douglas R. Smith Derived Preconditions and Their Use in Program Synthesis , 1982, CADE.

[22]  Richard Michael King Knowledge-based transformational synthesis of efficient structures for concurrent computation , 1985 .

[23]  R King Synthesis of Tree-Structured Computing Systems through Use of Closures. , 1984 .

[24]  Robert A. Kowalski,et al.  Logic for problem solving , 1982, The computer science library : Artificial intelligence series.

[25]  David R. Barstow,et al.  Knowledge-based program construction , 1979 .

[26]  Friedrich L. Bauer,et al.  Programming in a Wide Spectrum Language: A Collection of Examples , 1981, Sci. Comput. Program..

[27]  Thomas E. Cheatham,et al.  Software Technology in the 1990's: Using a New Paradigm , 1983, Computer.