Describir: Knowledge based program construction /