关于软件形式化验证

软件开发中一般使用“测试”来找bug,这种方法只能找到bug,不能证明程序没有bug。
形式化验证是用逻辑来验证程序的可靠性,就是把一段程序用逻辑的方法证明一遍,证明它能得到预期的结果,没有bug。一般这类研究主要应用于昂贵的航天器材的操作系统、危险的医疗设备的程序之中。因为航天器材、医疗设备牵扯到人的生命,如果操作系统出现错误,那么很危险,又不能用测试一遍一遍的测,所以用形式化验证来做。比如美国航天局NASA就会雇佣大批形式化验证的专家来验证他们操作系统的正确性。
学习这个方向,最好有比较好的逻辑知识(数理逻辑、拉姆达验算),最好比较了解程序(比如操作系统的设计、编译器的设计等)。
这个方向是比较犀利的研究方向,但不大容易出论文,需要长时间积累才能发一篇好论文。
这个方向只是科研方向,不适合找工作,如果你读完硕士打算找工作而不做研究,这个方向不适合。因为企业没人用形式化验证来验证程序。

参考:关于软件形式化验证

你可能感兴趣的:(区块链)