Book Image

Quantum Computing with Silq Programming

By : Srinjoy Ganguly, Thomas Cambier
Book Image

Quantum Computing with Silq Programming

By: Srinjoy Ganguly, Thomas Cambier

Overview of this book

Quantum computing is a growing field, with many research projects focusing on programming quantum computers in the most efficient way possible. One of the biggest challenges faced with existing languages is that they work on low-level circuit model details and are not able to represent quantum programs accurately. Developed by researchers at ETH Zurich after analyzing languages including Q# and Qiskit, Silq is a high-level programming language that can be viewed as the C++ of quantum computers! Quantum Computing with Silq Programming helps you explore Silq and its intuitive and simple syntax to enable you to describe complex tasks with less code. This book will help you get to grips with the constructs of the Silq and show you how to write quantum programs with it. You’ll learn how to use Silq to program quantum algorithms to solve existing and complex tasks. Using quantum algorithms, you’ll also gain practical experience in useful applications such as quantum error correction, cryptography, and quantum machine learning. Finally, you’ll discover how to optimize the programming of quantum computers with the simple Silq. By the end of this Silq book, you’ll have mastered the features of Silq and be able to build efficient quantum applications independently.
Table of Contents (19 chapters)
1
Section 1: Essential Background and Introduction to Quantum Computing
6
Section 2: Challenges in Quantum Programming and Silq Programming
10
Section 3: Quantum Algorithms Using Silq Programming
14
Section 4: Applications of Quantum Computing

Conventions used

There are a number of text conventions used throughout this book.

Code in text: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "In the second line, the coerce keyword forces the secret string to be a classical unsigned integer on four qubits."

A block of code is set as follows:

def scal[n:!ℕ](const x:uint[n], const y:uint[n])qfree:uint[n] { 
  count := 0:uint[n];
  for k in [0..n) { 
    count += x[k] && y[k];
  }
  return count;
}

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

def scal[n:!ℕ](const x:uint[n], const y:uint[n])qfree:uint[n] { 
  count := 0:uint[n];
  for k in [0..n) { 
    count += x[k] && y[k];
  }
  return count;
}

Bold: Indicates a new term, an important word, or words that you see onscreen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "In the world of quantum computing we use the term qubit or quantum bit to represent the bits."

Tips or important notes

Appear like this.