Quantum computing hardware continues to improve to the point where we can see its use in the real world in the coming years, so it's probably no surprise that we're seeing a steady increase in research projects focusing on how to better program these machines. One of the newest efforts in this area is Silq, a high-level programming language for quantum computers from ETH of Zurich. Researchers behind this programming language for quantum computers note that existing quantum computers languages still operate at a very low level of abstraction, which makes life for quantum ones developers much more difficult.
Associate Professor of Computer Science Martin Vechev said in a statement that researchers with this project wanted to solve a key problem in quantum computing. He added that if you want to solve a basic problem in quantum computing, such as analyzing and justifying quantum calculus. programs, you must have a language in which these problems are expressed - and there are such languages. The team started looking at different languages used by users, including its Q # Microsoft and software development kits such as IBM's Qiskit. Benjamin Bichsel, who is doing his doctorate in this science, said the researchers did not believe they would need to create a new programming language. At first, they just wanted to solve much more advanced problems in quantum computing. They thought of just choosing a language and then working with it. And then they realized that existing languages are completely inadequate for the kind of higher level properties that interested them.
So what about existing languages? A great way to answer this question is to look at one of the fundamental challenges in quantum computing that does not appear in classical languages, namely that of non-questioning, Vechev noted. Undisputedness is at the core of Silq's approach and is inherently integrated. In classical programming languages, if you calculate "A or B or C", you would first calculate "A or B" and then use it to calculate its result. Or the "C" and you would forget this temporary value you have calculated. If you do this quantum, then you have side effects. The bottom line is that what one would expect would not happen in this case. So you have to deal with it somehow. And that means for virtually all existing quantum languages that you have to work at a very low level of abstraction, where you have to think about all the temporary values. And that prevents any kind of high-level thinking. This means that even if you want to do something relatively trivial, such as adding integers, to a quantum machine, you need to think about all the temporary values you create in the process and handle them explicitly.
Vechev also added that drafting low-level programs is more prone to errors and makes it more difficult to understand what he is doing algorithm. In addition, Silq's compiler type controller tries to prevent developers from making common mistakes. The team also looked at recent developments in classical languages, such as property types, systems linear press, etc., and applied them in the context of quantum computing - something that is also first in Silq. Unsurprisingly, the team found that their language produced programs that were significantly smaller than those written in Q # and Quipper, for example, and used far fewer quantum primitives. At present, Silq is still a research project not yet running on any of the existing quantum platforms hardware. Instead, the researchers set up their own quantum simulator to test their hypotheses. The team envisions writing as a two-step process, where you first express the intent of a high level and then it is up to the compiler to decide which architecture to run and how to optimize a particular architecture.