论文标题
走向未来:将计划正确性重新焦点
Towards the Future: Bring Program Correctness back to the focus
论文作者
论文摘要
在正式语义是一个热门话题的早期,程序正确性曾经是计算机软件的主要关注点。但是,随后,“正确”一词被可靠,健壮和值得信赖的等等所取代,这是一种权衡的情况。这不是因为正确性不再重要,而是因为人们找不到朝这个方向发展的方法。权衡导致软件工程师专注于技术和测试工具。现在,软件工程的快速开发已经达到了高峰,并且程序员现在可以自由地工作而不必担心错误,因为无论如何都无法避免使用错误。 今天谈论程序正确性是否有意义?我们的答案是肯定的。现在是时候再次认真考虑正确性的时候了,为时已晚,为未来做准备。未来的计算机系统应在句法(静态)和语义(动态)上是正确的。 第一作者(2019年)的《 OESPA:面向语义的编程理论》(2019年)为语义研究开辟了新的方向。从理论上讲,现在,基于OESPA,可以从程序文本中计算程序语义,以便可以证明程序的正确性。 但是,当程序的大小很大时,语义计算和正确性证明无法手动完成。自动工具是必要的。本文试图为开发所需的汽车工具奠定基础,以便OESPA丰富以满足未来需求。为此,提出了一个名为条件语义谓词的新概念。 OESPA中的概念,包括语义函数,语义谓词,语义公式和语义演算,都按照一致。由于本书是迄今为止唯一的语义演算出版物,因此需要重新引入。新版本的语义演算说明了语义自动计算将如何进行。
Program correctness used to be the main concern of computer software in the early days when formal semantics was a hot topic. But, the word "correct" was afterwards replaced by reliable, robust and trustworthy etc., a tradeoff situation then. This is not because correctness is no longer important, but because people found no way to get through in this direction. The tradeoff has led software engineers to focus on techniques and testing tools. Rapid development of software engineering has now reached a peak and programmers are now working freely without worrying too much about bugs, since bugs are not avoidable anyway. Is it meaningful to talk about program correctness today? Our answer is yes. It is the time to seriously consider correctness again, before it is too late, to prepare for the future. Future generation computer systems should be correct, both syntactically (statically) and semantically (dynamically). The book "OESPA: Semantic Oriented Theory of Programming" (2019) by the first author has opened a new direction for semantic study. Theoretically speaking, it is possible now, based on OESPA, to compute program semantics from program text so that program correctness could be proved. But, semantic computations and correctness proving cannot be done by hand when the size of a program is big. Automatic tools are necessary. This paper tries to lay a foundation for developing needed auto tools, so that OESPA is enriched to serve future need. To this end, a new concept named conditional semantic predicate is proposed. Concepts in OESPA, including semantic functions, semantic predicates, semantic formulas and semantic calculus, are re-represented in accordance. Such re-introduction is necessary since the book is the only publication on semantic calculus so far. The new version of semantic calculus illustrates how semantics auto-computation would be carried out.