Cambridge University Press eBooks
Programming Languages
Noson S. Yanofsky, Mirco A. Mannucci
Abstract
The computer programmer is a creator of universes for which he alone is the lawgiver … universes of virtually unlimited complexity can be created in the form of computer programs. … They compliantly obey their laws and vividly exhibit their obedient behavior. No playwright, no stage director, no emperor, however powerful, has ever exercised such absolute authority to arrange a stage or a field of battle and to command such unswervingly dutiful actors or troops. J. Weizmann, Computer Power and Human Reason: From Judgement to Calculation In this chapter we are going to describe quantum programming , i.e., the art and science of programming a quantum computer. In Section 7.1, we briefly sketch what it means to program a quantum computing device. Section 7.2 covers a simple version of quantum assembler, based on the so-called QRAM architecture. Section 7.3 describes possible steps leading to higher-level programming languages and constructs. We conclude this chapter with Section 7.4, a short discussion on quantum emulators. PROGRAMMING IN A QUANTUM WORLD As you are about to read this chapter, you have undoubtedly been exposed to computer programming in a variety of flavors, and are perhaps already an accomplished programmer of real-life applications. Programming a classical machine carries an immediate, unambiguous sense. However, we are going to leave the familiar world of binary chips, and learn how to program some as yet unspecified quantum hardware.