RTR11
November 2000, 25 pp.
A technique is developed that transforms any program in the probabilistic Guarded Command Language (pGCL) into an equivalent but reversible program. The result extends previous works firstly by considering a general purpose programming language (pGCL), and secondly by dealing with `demonic' nondeterminism and probability. A formal definition of logical reversiblity is given and the expectation-transformer semantics for pGCL is used to prove the result. The technique presented has a direct application in the compilation of a general purpose programming for quantum computation.