The creation of the C programming language was a massive milestone for classic computing. C was developed by Dennis Ritchie and Ken Thompson at AT&T Bell Laboratories in the early 1970s and was a simple programming language for aspiring computer coders. At that time, most computer programs were written in a so-called assembly language, which communicates directly with the hardware of the computer. While assembly programs gave users unprecedented control over their machines, they were lengthy, complex, and difficult to debug. C was different. It was simple, intuitive, and helped make computer programming accessible to a whole new audience. It was nothing short of a revolution in the computer.
Now, almost 50 years after the founding of C, computer scientists have reached a similar milestone: a new programming language that gives the quantum computer the same ease of coding.
It is difficult to draw parallels between the development of classic computers and the current state of quantum computers. For those who are not familiar with them, quantum computers represent the future of computing as we know it. Unlike a classic computer that encodes information as a series of ones and zeros, the "qubits" in a quantum computer can be either one, one zero, or both at the same time. Quantum computers work according to different quantum rules than classic computers – and promise to ultimately be almost unimaginably fast when it comes to processing data and performing calculations.
They are of course a completely different animal than classic digital computers. However, if such a timeline comparison is to be carried out between today's quantum computers and the development of classic computers, the 1960s or early 1970s as an analogy are probably not too far away. Modern quantum computers fill entire rooms, just like the mainframes in the 1960s and 1970s before personal computers became the norm.
Almost a quarter of a century has passed since 1998 when the world's first actionable 2-qubit quantum computer was developed. In the 1960s and 1960s, a similar time had passed since switching on ENIAC, the first digital general-purpose digital computer, in 1946. Heck, the world of quantum computer games even begins to open here in 2020. Just like games like Spacewar! in the 60s. In both cases, there were or are promising for both calculation modes.
What we haven't had before has been the answer of quantum computers to C: a programming language accessible to the masses, with which these computers can be programmed easily, reliably and safely. Maybe until now.
All roads lead to Silq
This is where Silq comes into play, a new quantum programming language developed by researchers at ETH Zurich in Switzerland. According to its makers, Silq is the world's first high quantum language. The goal is to close the existing conceptual gap between classical and quantum languages. In this way, the freely available language will hopefully help to lower the entry barrier for inexperienced quantum programmers. You know, much like C did for classic computers all these years ago!
"It's tempting to say that existing quantum languages are about as expressive as assembly languages," Benjamin Bichsel, one of the researchers who developed Silq, told Digital Trends. "(That's because) they force the programmer to explicitly specify every single operation that is to be performed by the computer. Existing quantum languages, however, are (really) lower than assembly languages in some aspects: They typically describe operations on single quantum bits, which is more in line with low-level hardware description languages such as VHDL or Verilog. "
According to Bichsel, the level of abstraction provided by Silq is closer to that of C. It directly supports sub-expressions such as (a + b) + c, which cannot be written easily in existing quantum languages. Unlike existing quantum languages, Silq enables a descriptive view of quantum algorithms to express the intentions of high-level programmers. Compiling these algorithms into low-level quantum circuits becomes a second-order problem that can be handled by a specialized compiler. Bichsel believes that analyzing Silq programs will be easier than analyzing programs in existing quantum languages because Silq programs focus less on low-level details. This could help facilitate the development of analytical tools that support developers.
"Currently, the main approach to quantum computing is at the machine code level or through the use and customization of tools that others have already created," said James Wootton, an IBM quantum computer researcher who was not involved in the Silq Digital project Trends. “This is the best way to ensure that it can run on the devices available in the next ten years. All current frameworks such as Qiskit from IBM Quantum are set up in this way. Quantum programming in this way is similar to the classic logic circuits that I assembled in my shed as a child, and is therefore more intuitive than some may think. But it is certainly not the method that all quantum programmers of the future want to use. "
For those who want to design their own quantum algorithms instead of relying on pre-built quantum algorithm frameworks, solutions like Silq could be very interesting.
"It is good to see that more and more computer scientists are interested in this problem and are implementing their ideas as software that people can actually use," said Wootton. “This could allow people outside of the quantum computer to come up with new ideas for using these devices. It would be great to see this and get new perspectives. "
As mentioned above, the comparison with programming languages like C is of course not exact. Quantum computers work fundamentally different from classic computers, which means that various problems have to be tackled and solved.
Brad Jones / Digital Trends
One of the main ideas behind Silq is dealing with the so-called "garbage" that arises during the calculation. This is something that classic computers are not as sensitive to, but can cause errors in quantum computer calculations. The "garbage" finds its way into quantum programming because quantum computers calculate tasks in several intermediate steps. Creation of intermediate results or temporary values in the process. The process of getting rid of these superfluous values is complicated by a phenomenon called quantum entanglement. Silq automatically eliminates these values.
"Silq addresses a fundamental problem that makes the development of quantum programs significantly more difficult than traditional programs," said Bichsel. “The main advantage of Silq is that the calculation of temporary values is not automatically calculated. Unlike the classic setting, in which we can easily forget about temporary values that are generated during a calculation, discarding temporary values in the quantum setting requires explicit operations to remove these values from the view. "
Silq is already publicly available in the GitHub code repository, which is licensed under the free and open source boost software license 1.0. Since most of us don't have a quantum computer at hand, an extension for Visual Studio Code is available that allows developers to review and simulate Silq code on classic computers.
After all, if quantum computers are as big as many predict, you never know when to use them!