Next: The Main AI Up: Artificial Intelligence Programming Previous: Support for Symbolic

Support for Exploratory Programming

For many (most?) AI programming problems, software engineering techniques such as stepwise refinement and development from formal specifications may not be that helpful. It is seldom possible to give a complete specification of an AI program before building at least a prototype - we just don't understand the nature of the problems well enough. AI programming is therefore inherently exploratory. We develop a program to explore the nature of the problem and domain, and discover good solution strategies as we go. This is not to say that we should abandon good software engineering techniques, just that we cannot rely on them, and that we require an environment that supports more exploratory styles of program development.

Features of a programming language/system that support exploratory programming include: extensibility - the ability to develop special purpose interpreters for solving classes of problems; and interactive development environments - where the programmer can flexibly and interactively test small sections of their program.


alison@
Fri Aug 19 10:42:17 BST 1994