Prolog Project: C Debugger Expert System

 

Welcome to the Prolog C Debugger Expert System homepage. The C Debugger Expert System is a Prolog project written by Shabsi Walfish for Cooper Union's EE459: Artificial Intelligence course, taught by Prof. David Cavuto, in October 1999.

The object of the C Debugger Expert System is to help a user debug his or her C code by asking thought provoking questions and providing suggestions. In order to accomplish this, the expert system is provided with a knowledge base of C problem classifications and solution suggestions. The Prolog based code for the expert system is capable of 'intelligently' interpreting its knowledge base and determining which questions to ask the user based on past responses. It does this by analyzing the entirety of its knowledge base to see which potential solutions exist, and looking only at those solutions which have not been eliminated by prior responses from the user or previously suggested to the user. By looking at these 'viable' solutions the expert system is able to determine what peice of information is most needed to make the next series of determinations, and once it has found that missing peice of information, it prompts the user to fill it in. While this form of 'intelligent' analysis may seem very simple, it is also very powerful, allowing the expert system to draw inferences about the relationships between the problem classifications from the list of possible solutions in the knowledge base.

Below are links to the Prolog source code for the expert system itself, the source for a sample knowledge base I created to solve some common C Debugging issues, the user guide for the expert system, and sample runs. All code was written for Amzi Prolog, specifically, it was tested with Amzi! Logic Explorer (Amzi! Prolog 3.3 Mar96, (c) Amzi! Inc.). If you are interested in developing a more advanced version of the knowledge base or expert system, or have questions/comments regarding this project, please send email to Shabsi Walfish (walfis@cooper.edu).