摘要
攀登上软件理论和工程双主峰的科学家
在中美科协2021全球创新峰会上,出自复旦大学的计算机软件科学家唐同诰先生接受邀请,介绍了自己的部分创新成果,并进行了10分钟的演示。他是一位痴迷于有兴趣试试解超难题的科学家。。
(一)彻底实现“软件程序正确性验证”工程方法论的首位科学家
众所周知,计算机软件的质量涉及软件算法效率的比较和软件(语义)的正确性。因此,软件开发史上出现了两个著名的问题:1)算法的P-NP问题,2)程序的正确性的验证方法。上面提到的第一个问题现在已经结束了。而上面提到的第二个问题:“软件正确性”的验证方法,长期没有解决。一个软件程序是一串代码符号,不能用数字的数学归纳法来证明一般软件(语义)的正确性。因而,科学家们被迫趋向于使用一种“形式语言”,用它来研究一般程序的正确性。
此前,为了解决“软件正确性”问题,欧美科学家发明了多种“形式语言”工具,不少科学家获得了图灵奖。但这些“形式语言”方法只能表达和验证相对简单的软件程序。 1987年, 唐同诰先生应埃德蒙·克拉克教授之邀到美国CMU工作,搞程序验证,随后又赴澳大利亚“软件验证研究中心”工作,也搞程序验证。许多年后,他了解了“形式语言”方法的局限性。理论科学家都知道,形式语言若要全面和极其严谨地用于程序验证,要实现“全面和极其严谨”,就必然会陷入公理化集合论日益复杂的境地。于是,在业余时间,他经过大约五年的软件系统编译和算法测试,发现软件程序中蕴含着一种“程序归纳原理”。他利用这种新型的“程序归纳法”,历史上首次实现了一种普遍适用的“验证软件程序正确性”的方法。
1991年左右,他把这个研究成果介绍给了埃德蒙·克拉克,然后他向极其令人敬佩的软件理论家Dana S. Scott教授演示了他新完成的 “程序正确性自动验证系统”,他发现Dana S. Scott也有类似的观点。 Dana Scott 对他说 ; “仅仅使用数学(形式语言)似乎不可能完全解决 ‘程序验证’的问题。” Dana S.
Scott 的前瞻性思维更符合唐同诰先生使用工程化 “程序归纳”进行“程序验证”的方法。其中,埃德蒙·克拉克教授是“程序验证”时态逻辑的发明者之一。后来他在2007年获得了图灵奖。在参加埃德蒙·克拉克60岁大庆的会场,埃德蒙·克拉克和他聊起了“时态推理”方法,问他“时态形式语言在哪些实际软件程序”可 .应用?此外,他曾在软件验证研究中心帮助辅导过一名研究生,验证她的四行语句的“Swap”程序。她用研究中心的“形式语言”方法,用了两周时间验证其正确性。可见这些旧的形式语言方法无法在大型实际应用中使用。这些让他更加坚信,使用“程序归纳原理”是唯一能够真正验证程序的正确道路。
1992年,在离开澳大利亚“软件验证中心”的前一天,他向研究中心的所有成员介绍并演示了一个“求最大公约数的软件程序”自动验证的例子。他的计算机系主任,研究电脑操作系统的Andrew List教授,跨领域地也有兴趣参加讲座。
从此,对于唐同诰先生来说,软件验证的理论方法和演示系统已经完成。但是,他认为“验证一个软件程序的正确性很重要,但是如果在制作软件程序的过程里错误较少或者基本没错,那么软件的可靠性不是更有保证吗?于是他转向软件工程技术,他有幸在First Data Resource的高级软件工程技术部工作一年, 知道软件工程的先进技术,到达了这么水准。他开始思考“如何利用软件理论和科学知识对软件工程技术进行一些革命性的改革” 。过了八年,他攻克了“自动化软件工程新技术”的20-21世纪难题。
(二) 实现了自动化软件工程技术的首位科学家
今年美国科协2021全球创新峰会请到逻辑学家唐同诰先生介绍“自动化软件工程新技术”,并演示了一个有代表性的例子:基于客户软件订单(这个例子大致包括一个公司的运行管理)
计划部、采购部、收货部、仓储部、销售部、会计部的管理软件), 以10分钟现演示, 自动生成一套完整的VC++语言客户应用软件。这个0错误的新软件有145个文件,总共约630万字节。如果高级程序员手动编译软件程序,至少需要一年时间。自动软件代码生成比手动方法快 500 至 1,000 个倍。尤其是软件维护费接近于零。也就是说,如果要改软件,只需要改变客户的软件顺序,软件程序就会自动改变,不需要人去重写那些可能已经部分遗忘的程序代码。
在信息时代,计算机智能软件无处不在。尤其是手工编写大型程序时存在大量错误。解决计算机软件的可靠性问题,成本很高。美国的所有应用软件巨头,甲骨文、IBM、微软,以及欧洲的各大软件公司SAP等,都花费了大量的人力物力来探索软件程序生产自动化的途径。此外,2019年美国约有430万软件开发人员和程序员。每年都有数百名有志之士也在不断探索自动化软件的可行性。特别是1986年以来,美国第二大计算机相关协 会发起并组织
IEEE/ACM 自动化软件工程国际会议
2021年至今,已经举办了30多届。
这个具有较大经济价值的“软件自动生成程序技术”,似乎比其他研究课题受到更多科技人员的关注。这个研究题目及其难,原因它超出了平时写软件人员的通常思路。数理逻辑学家唐同诰先生, 他思考着“自动化软件工程技术”实现的潜在困难,思考自动化所需的理论基础,以及相关方法的可行性。2001年,62岁的他怀着极大的兴趣,探索程序的 pattern细胞发育膨胀,而最终构成大程序的思路,开始独自在家研究“自动生成高速软件程序代码”。
1. 从2001年至2004年,首创了一套Pattern逻辑理论,并完成了“Pattern语言理论在“自动化软件”中的应用可行性测试。
2. 一个人继续做,写了千万字节程序代码。到2008年,他的愉快兴趣和执着精神,而有幸获得成功。完成了《一套可根据客户订单需求自动生成的《Window企业管理软件》》SDDA软件工具系统,该软件于2008年在网上免费下载试用,并慎重宣布宣布“自动生成全套程序代码”技术成功了!
3、后来为了证明他的创新的Pattern理论和方法的普遍适用性,他针对三个流行的软件应用领域做了三个软件自动化工具系统:a) 企业管理软件自动化Sdda_window、b) 互联网平台全套C语言CGI软件自动化Sdda_web ,以及c) Android手机应用软件自动化Sdda_android 。
2008年宣布自动化软件工程技术成功,并完成了软件的网络下载。此后, 又出版了书籍. 他成为了现时 唯一攀登到21世纪世界自动化软件工程技术顶峰的科学家。他相信,对于这样一项既有经济价值又有划时代意义的重要技术,一定有新人将其推向前进。