Computing Reviews

Foundations of quantum programming
Ying M., Morgan Kaufmann Publishers Inc.,San Francisco, CA,2016. 372 pp.Type:Book
Date Reviewed: 01/19/18

The idea of programming in the modern sense first appeared in the textile industry for creating complex patterns on clothes using the Jacquard loom in the early 1800s. Since the development of silicon-based computers in the last century, a lot of progress has been made in thinking about programming abstracts, and a solid milestone was achieved by the famous book (in fact series of books) of Donald Knuth: The art of computer programming. Although Knuth’s book gives a mathematical treatment of programming, it has created many computer scientists and programmers. It will keep on motivating young programmers in the future. However, in the last two decades progress has been made (by many well-known companies such as Google, Microsoft, IBM, and Intel) in developing computers based on quantum physics. If we want to use quantum computers for our daily needs, we need to learn how to program them. Recently, few programming languages have been announced (for example, Microsoft announced Q# (Q-sharp) on December 11, 2017). However, the field of quantum programming (QP) languages is still in its infancy, so we will see many more developments in the near future. It is important for us to understand the mathematical developments and foundational concepts of the field of quantum programming. This book seems to fill that gap.

This book is divided into four parts including a preface, bibliography, index, and acknowledgment. Part 1 covers historical developments and QP approaches in chapter 1 and collects the basics of quantum mechanics, quantum circuits, and quantum algorithms in chapter 2. There are two fundamental approaches to QP: superposition of data and quantum programs with classical control, and superposition of programs and quantum programs with quantum control. Parts 2 and 3 separately focus on each of them. In particular, the syntax and semantics of quantum programs, logic for quantum programs, and analysis of quantum programs are discussed in chapters 3, 4, and 5, in Part 2. Quantum case statements and quantum recursion are discussed in chapters 6 and 7, respectively, in Part 3. Different prospects of QP are discussed in the final chapter 8 of Part 4.

This book can provide a good starting point for a computer science student, but I feel that one complete chapter on a quantum Turing machine, quantum automata, and quantum grammars should be included to complete the book. Such a chapter would allow the reader a better understanding of the material. Although the book touches briefly in chapter 8 on quantum process algebra, a separate treatment would have given it a wider audience. Nevertheless, I strongly recommend it to the new generation of programmers. As a test, I gave the book to my brother (who is in Silicon Valley with 20-plus years of programming experience) and the first reaction was, “I like the book even though it is mathematical.”

Reviewer:  Manish Gupta Review #: CR145793 (1804-0172)

Reproduction in whole or in part without permission is prohibited.   Copyright 2024 ComputingReviews.com™
Terms of Use
| Privacy Policy