形式化方法对软件开发的挑战:一些历史与现实

几年前到某著名大学参加学术活动,无意中听到该校两位老师闲聊,现在还记得的一句话就是“形式化方法已经不行了”。看来真是隔行如隔山,不在一行里的人做评价,而且信口开河,难免出错。在关注形式化方法的人看来,它不仅没有“不行”,近年还发展得挺迅猛。只不过,形式化方法也就是做软件或硬件,并没有做出什么新东西,很难像近来热炒的云计算、大数据、人工智能那样,被疯狂追捧。

一些情况说明,不少计算机(包括软件)专业人士对形式化方法的认识还停留在几十年前。这里想介绍一些事例,说明形式化方法已经取得了真正的进展,正在被人们用来解决软件开发中一直没有解决的问题,也实际开发了一些重要系统或系统部件。

较早开展的与实际软件开发有关的形式化工作是证明程序正确性,工作以论文形式发表,内容是证明了一些小程序或算法(抽象程序)。研究者也想去证明复杂程序,但由于其中的复杂结构和设计,很难做下去。这种想法也因此被人诟病为“只能对付小程序”,没用。

一些研究者想到,证明已有程序很难,而构造具有所需功能的正确程序(或软件),更多方面可以自主控制,可以采用构造与证明并进的方式,目标是做出“构造即正确”的软件。最早提出这方面想法的人可能是Dijkstra,其著名的A Discipline of Programming给出了许多严格推导的程序。后来还有些类似著作,如The Science of Programming、Programming fromSpecification等。这些工作流行于上世纪80-90年代,由一批著名计算机科学家推动,但这类方法并未受到软件领域的重视,主要批评还是说只能做“玩具程序”。

用形式化技术开发实际系统的最早突破可能是法

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值