A Case-Based Reasoning Approach to Program Synthesisстатья