Abstract
The paper reports on a framework in which different types of programming knowledge can be made explicit. This framework is argued to be a necessary step towards the development of knowledgeable programming tools and environments. Formalisations of the abstract programming concepts which capture the programmer's expertise and of the relations inbetween these concepts form the backbone of the framework. Frame-style representations are developed and implemented in the knowledge representations system KRS. Experimental systems which automate or support a particular task related to programming are built on top of this basic framework. On the one hand, developing such systems is useful to augment and enrich the framework. On the other hand, the success of these exercises demonstrates the appropriateness of the formalisations developed. Two quite different exercises are discussed in this paper to illustrate the open-endedness of our framework. The first exercise addresses algorithm transformation, the second is an experiment in algorithm discovery.
Get full access to this article
View all access options for this article.
