我能在一天内解决任意bug……
如果我们围绕观念意义上的 bug,去讨论这个问题。很容易发散联想,把问题变成超能力的小说创作。 如果我们围绕程序意义上的 bug,去讨论这个问题,会发现,这个能力实际上在做的,是对代码进行静态分析。即,在不运行代码的情况下,对代码的结构进行分析,判断它是否能正确运行。 Type Checking 类型检查技术,可以对代码实现这种静态分析。在特定 Type System 类型系统下,推断出程序接收给定的所有可能输入,能否正确输出指定类型的值。 main: input -> output 将代码简化成 main 函数看待,input 为参数类型,output 为返回值类型。main 函数执行的可能结果如下:
根据上述 3 种结果,我们可以对 main 函数或者编写 main 函数的语言,做出分类:
我们将第二种称之为 total 的,第一种则是 partial 的。 大家可以理解为,total 就是所有可能输入,都有正确类型的输出,是全量的,无遗漏的。而 parital 则是所有可能输入,只有部分才有正确输出,是非全量的,有遗漏的。
回到那个问题,任何(程序意义上的) bug 都能被我在一天内定位并给出修复方案,可以认为等价于低效的 Type Checker 类型检查程序。 (编辑:常州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |