The paper presents a formal and practical approach to dependable algorithm development.First,starting from a formal specification based on the Eindhoven quantifier notation,a problem is regularly reduced to subproblem...The paper presents a formal and practical approach to dependable algorithm development.First,starting from a formal specification based on the Eindhoven quantifier notation,a problem is regularly reduced to subproblems with less complexity by using a concise set of calculation rules,the result of which establishes a recurrence-based algorithm.Second,a loop invariant is derived from the problem specification and recurrence,which certifies the transformation from the recurrence-based algorithm to one or more iterative programs.We demonstrate that our approach covers a number of classical algorithm design tactics,develops algorithmic programs together with their proof of correctness,and thus contributes fundamentally to the dependability of computer software.展开更多
基金National Natural Science Foundation of China under Grant No. 60773054,60870002 and 61020106009Zhejiang Provincial Natural Science Foundation of China under Grant No. R1110679
文摘The paper presents a formal and practical approach to dependable algorithm development.First,starting from a formal specification based on the Eindhoven quantifier notation,a problem is regularly reduced to subproblems with less complexity by using a concise set of calculation rules,the result of which establishes a recurrence-based algorithm.Second,a loop invariant is derived from the problem specification and recurrence,which certifies the transformation from the recurrence-based algorithm to one or more iterative programs.We demonstrate that our approach covers a number of classical algorithm design tactics,develops algorithmic programs together with their proof of correctness,and thus contributes fundamentally to the dependability of computer software.