加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

我能在一天内解决任意bug……

发布时间:2021-02-25 11:15:14 所属栏目:传媒 来源:互联网
导读:的 bug,即代码出现任意不满足人的需求的行为,都叫 bug。 程序意义上的 bug,即代码执行时不停机,或者抛出错误,才叫 bug。 如果我们围绕观念意义上的 bug,去讨论这个问题。很容易发散联想,把问题变成超能力的小说创作。 如果我们围绕程序意义上的 bug,
  • 的 bug,即代码出现任意不满足人的需求的行为,都叫 bug。
  • 程序意义上的 bug,即代码执行时不停机,或者抛出错误,才叫 bug。

如果我们围绕观念意义上的 bug,去讨论这个问题。很容易发散联想,把问题变成超能力的小说创作。

如果我们围绕程序意义上的 bug,去讨论这个问题,会发现,这个能力实际上在做的,是对代码进行静态分析。即,在不运行代码的情况下,对代码的结构进行分析,判断它是否能正确运行。

Type Checking 类型检查技术,可以对代码实现这种静态分析。在特定 Type System 类型系统下,推断出程序接收给定的所有可能输入,能否正确输出指定类型的值。

main: input -> output

将代码简化成 main 函数看待,input 为参数类型,output 为返回值类型。main 函数执行的可能结果如下:

  • 接收 input 类型的参数,在有限时间内返回 output 类型的结果
  • 接收 input 类型的参数,永远执行,不停机,没有返回值
  • 接收 input 类型的参数,执行期间抛出错误(output 类型或者内部中间环节出现类型匹配错误)

根据上述 3 种结果,我们可以对 main 函数或者编写 main 函数的语言,做出分类:

  • function 或 language 的行为包含上述 3 种可能性
  • function 或 language 只有第一种行为,即输出指定类型的 output

我们将第二种称之为 total 的,第一种则是 partial 的。

大家可以理解为,total 就是所有可能输入,都有正确类型的输出,是全量的,无遗漏的。而 parital 则是所有可能输入,只有部分才有正确输出,是非全量的,有遗漏的。

回到那个问题,任何(程序意义上的) bug 都能被我在一天内定位并给出修复方案,可以认为等价于低效的 Type Checker 类型检查程序。


(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读