Abstract: | The rapid progress of computer technology has been accompanied by a corresponding evolution of software development, from
hardwired components and binary machine code to high level programming languages, which allowed to master the increasing hardware
complexity and fully exploit its potential.
This paper investigates, how classical concepts like hardware abstraction, hierarchical programs, data types, memory management,
flow of control, and structured programming can be used in quantum computing. The experimental language QCL will be introduced
as an example, how elements like irreversible functions, local variables, and conditional branching, which have no direct
quantum counterparts, can be implemented, and how nonclassical features like the reversibility of unitary transformation or
the nonobservability of quantum states can be accounted for within the framework of a procedural programming language. |