An experiment in knowledge-based automatic programming