让我们说我有一些巨大的程序P
我知道它有一个错误:当我用参数A
运行它时会打印出丑陋的错误消息E
。在shell表示法中,会发生这种情况:
$ ./P A
E
$
现在我不知道导致这个错误的原因,但它似乎是确定性的。我找到错误的方法是"隔离"它。我"减少"程序P
到"最小的"给定参数E
仍然生成错误A
的版本。通过" reduce",我的意思是我将删除程序的一部分并手动内联函数,在P A --> E
的每个阶段进行测试,而不是成功响应或其他错误消息。一旦我无法再减少它,我有一个小程序可能会成为问题的核心。
这个过程相当机械化:它不需要太多的洞察力和#34;对我而言。感觉它可以自动完成:可能有一些程序X
,给定P
,A
和E
,吐出最小的程序{{1} } P'
缩小为P
和P'
。
那么,这个策略是否有一个名称,并且它在任何意义上都适用于任何编程语言?
答案 0 :(得分:1)
Finally stumbled over something that answers my question!显然,这种技术被称为“减少”或“最小化”。参见: