Sometime in the 1970s, the computing world hit its first major breakthrough - Dennis Ritchie and Ken Thompson at AT&T Bell Laboratories founded the Holy Grail of C programming. It took another 50 years for programmers to achieve a milestone of similar force - a language that brought a comparable level of simplicity and functions to quantum computing.
Martin Vechev, associate professor of computer science at ETH Switzerland, says it all began when his team of researchers wanted to “solve a core problem in quantum computing.” Expressing his predicament, he said:
The existing languages, including Microsoft’s Q# and IBM’s Qiskit, were failing to meet the high-level properties criteria required for the project. So while they did not begin with a programming end-result in their minds, necessity paved their way to it.
Before we begin to analyze the programming goldmine Silq, let’s tap on a few basics:
Classical computers have been working on a series of zeros and ones. Known as the future of computing, quantum computing works in qubits, which could be ones, zeros, or both.
Computer languages that detach themselves from the technical details of the distinct type of computer are called high-level programming languages.
Compatible with different computer architectures, these languages are more expressive and they can explain even complex algorithms and tasks with less code. Programmers find these languages easier to understand and use.
James Wootton, a quantum computing researcher at IBM, says the current frameworks of quantum computing are “much like the classical logic circuits that I used to assemble in my shed as a kid, so it is more intuitive than some might assume. But it is certainly not the method that all the quantum programmers of the future will want to use.”
Several others in the fraternity echo these sentiments, including Benjamin Bichsel, Silq co-creator who said: “Existing quantum languages are [really] more low-level than assembly languages in some aspects: They typically describe operations on individual quantum bits, which is more in line with low-level hardware description languages like VHDL or Verilog.”
Speaking about the existing approaches to quantum computing, Wootton says: “Currently, the main approach to quantum computation is at the machine code level, or by using and adapting tools that others have already built.”
Present quantum computing languages are closely linked with the hardware. These languages are error-prone, cumbersome, and need detailed instructions.
Bichsel says that because Silq programs are less concerned about low-level details, analyzing them is easier. It is an excellent option for those who want to create their own quantum algorithms and not depend on the existing frameworks. It bridges the conceptual gap between the classical and quantum languages.
According to Bischel, “The key benefit of Silq is that it automatically handles uncomputation of temporary values. Unlike in the classical setting, where we can simply forget about temporary values that are produced during a computation, discarding temporary values in the quantum setting requires explicit operations to remove these values from consideration.”
Aside from this, Silq:
Can automatically remove garbage or superfluous values that can result in quantum entanglement*
Is more compact, quicker, and more intuitive
Has a compiler type-checker that restricts programmers from making common errors
Has much shorter programs than those written in Q# and Quipper
Incorporates the latest developments in classical languages
Needs significantly less code and fewer built-in functions, gates, and annotations, as compared to Q#
Looking at the impact and applicability of the language, we expect many more benefits to emerge in the near future. The future of quantum computing sure looks promising!
Silq is written in the D programming language.
To install Silq via vscode, see: https://silq.ethz.ch/install.
A timeline of major developments in quantum computing: