Toward automatic programming