Academia.eduAcademia.edu

Outline

A Strategy For Semi-automatic Program Development

2005

Abstract

In this paper we first review the knowledge-based approach to software construction. The knowledge-based approach to software develoment promises attractive solutions to the problems plaguing software develoment. But to realize these benefits knowledge about programming must be well understood, formalized and engineered into a functioning system. This paper presents some aspects of such a formalization, describing knowledge about the procedural implementation of recursive functions and about data structure selection. A significant feature of this approach is that a single transformation may substantially affect the program form, implenienting a high-level design decision. A detailed derivation of a depth-first search algorithm to compute the height of a directed acyclic graph is presented.

References (8)

  1. R. Balzer, T. Cheatham, C. Green, "Software technology in the 1990's: using a new paradigm," Computer Magazine, 1983.
  2. R. Burstall, and J. Darlington, "A transfor- mational sys tern for developing recursive pro- grams, " J. Ass Comp. Mach., vol. 24, 1, Jan. 1977.
  3. A. Goldberg, and R. Paige, "Stream Pro- cessing," ACM Conf. Lisp and Functional Pro- gramming, 1984.
  4. G. Kotik, "Knowledge-based compilation of high-level datatypes," technical report, Kestrel Institute, 1983.
  5. R. Kowalski, Logic for problem solving, North Holland, 1979.
  6. Z. Manna, and R. Waldinger, "A deductive approach to program synthesis, " ACM Trans. Programming Language Syst. (TUPLAS), vol. 2, 1, pp. 90-121, Jan. 1980.
  7. W. Scherlis, and D. Scott, "First steps toward inferential programming," technical report, Dept. of Computer Science, Carnegie- Mellon University, 1983.
  8. SI E. Shonberg, J. Schwartz, and M. Sharir, "An automatic technique for selection of data representations in SETL programs, " ACM Trans. Programming Language Syst. (TOPLAS), vol. 3, 2, pp. 126-143, April 1981.