Quantum Bayesian Networks

February 4, 2019

Translating Between Quantum Programming Languages, The Importance of Being Qubiter

Filed under: Uncategorized — rrtucci @ 7:05 am

The United Nations has 6 official languages: English, French, Spanish, Chinese, Russian and Arabic. I think the more languages you learn, the smarter you become. Don’t you?

Qubiter, a computer program/quantum programming language that I wrote, can translate from itself to the 3 most popular quantum languages that currently have a hardware backend: IBM Qiskit, Rigetti Pyquil, and Google Cirq. Here is a Jupyter notebook illustrating this feature of Qubiter.


I’ve recently noticed that others, both in Academia and in Industry, are attempting to write their own translators between quantum languages, so there seems to be a lot of interest out there for this sort of thing. Many quantum computerists are interested in running the same quantum program side by side on the 3 hardware devices just mentioned (and others soon to come) to compare performance and final results, a worthy scientific goal.

I want to argue briefly here that Qubiter does it better 😎

Qubiter has ALL the features that each of the big 3 quantum programming languages has and then some. This makes it the most expressive tool in town. You get a more succinct, efficient translation if you using a more expressive computer language to express a command in a less expressive one. For example, if you

use more expressive to express less expressive,
less expressive -> more expressive
you might find
10 lines of code -> 10 lines of code,

whereas if you go in the opposite direction,

use less expressive to express more expressive,
more expressive -> less expressive
you might find
10 lines of code -> 30 lines of code,

because you are “trying to reinvent the wheel” in the second case.

So if Qubiter is to maintain its edge as a translator of quantum programming languages, it must always try to surpass all the other languages in expressiveness. This is what I have done so far and will try to do in the future. (For example, I recently added to Qubiter, placeholders and loops at the English file level. And take a look at the feature comparison table that I gave in a previous, recent blog post).

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: