Towards the Future: Bring Program Correctness back to the focus

03/29/2022
by   Chongyi Yuan, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
08/18/2021

On correctness and completeness of an n queens program

Thom Frühwirth presented a short, elegant and efficient Prolog program f...
research
10/23/2018

Programming Without Refining

To derive a program for a given specification R means to find an artifac...
research
07/22/2021

A Typed Slicing Compilation of the Polymorphic RPC Calculus

The polymorphic RPC calculus allows programmers to write succinct multit...
research
10/30/2018

Multi-Location Program Repair: Roads Ahead

Automated program repair (APR) has great potential to reduce the effort ...
research
02/22/2019

Reducing Total Correctness to Partial Correctness by a Transformation of the Language Semantics

We give a language-parametric solution to the problem of total correctne...
research
08/31/2020

Correctly Implementing Synchronous Message Passing in the Pi-Calculus By Concurrent Haskell's MVars

Comparison of concurrent programming languages and correctness of progra...

Please sign up or login with your details

Forgot password? Click here to reset