a system to simulate the thinking of computer programmer