• DocumentCode
    1417950
  • Title

    Derivation of data intensive algorithms by formal transformation: the Schnorr-Waite graph marking algorithm

  • Author

    Ward, Martin

  • Author_Institution
    Dept. of Comput. Sci., Durham Univ., UK
  • Volume
    22
  • Issue
    9
  • fYear
    1996
  • fDate
    9/1/1996 12:00:00 AM
  • Firstpage
    665
  • Lastpage
    686
  • Abstract
    Considers a particular class of algorithms which present certain difficulties to formal verification. These are algorithms which use a single data structure for two or more purposes, which combine program control information with other data structures or which are developed as a combination of a basic idea with an implementation technique. Our approach is based on applying proven semantics-preserving transformation rules in a wide spectrum language. Starting with a set theoretical specification of “reachability”, we are able to derive iterative and recursive graph marking algorithms using the “pointer switching” idea of Schorr and Waite (1967). There have been several proofs of correctness of the Schorr-Waite algorithm, and a small number of transformational developments of the algorithm. The great advantage of our approach is that we can derive the algorithm from its specification using only general-purpose transformational rules, without the need for complicated induction arguments. Our approach applies equally well to several more complex algorithms which make use of the pointer switching strategy, including a hybrid algorithm which uses a fixed length stack, switching to the pointer switching strategy when the stack runs out
  • Keywords
    algorithm theory; data structures; formal specification; formal verification; graph colouring; program control structures; reachability analysis; set theory; Schnorr-Waite graph marking algorithm; data refinement; data structures; data-intensive algorithm derivation; fixed length stack; formal transformation; formal verification; ghost variables; implementation technique; iterative algorithms; pointer switching strategy; program control information; program development; reachability; recursion removal; recursive algorithms; semantics-preserving transformation rules; set theoretical specification; transformational development; wide spectrum language; Computer bugs; Computer science; Data structures; Formal verification; Iterative algorithms; Logic;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.541437
  • Filename
    541437