  The subject of this work is quantum predicative programming -- the study of
developing of programs intended for execution on a quantum computer. We look at
programming in the context of formal methods of program development, or
programming methodology. Our work is based on probabilistic predicative
programming, a recent generalisation of the well-established predicative
programming. It supports the style of program development in which each
programming step is proven correct as it is made. We inherit the advantages of
the theory, such as its generality, simple treatment of recursive programs,
time and space complexity, and communication. Our theory of quantum programming
provides tools to write both classical and quantum specifications, develop
quantum programs that implement these specifications, and reason about their
comparative time and space complexity all in the same framework.
