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.
Introducing Silq - “A new high-level programming language for quantum computing with a strong static type system”- the first and only one of its kind!
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:
“We looked at various problems in quantum computing but what kept coming up as a fundamental issue is that we looked at the programs and how they are expressed — and you see that this is not ideal, this is not optimal.”
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.
"Silq is the first quantum programming language that is not designed primarily around the construction and functionality of the hardware, but on the mindset of the programmers when they want to solve a problem — without requiring them to understand every detail of the computer architecture and implementation." – Benjamin Bichsel
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.”
Silq facilitates a C-level abstraction and supports subexpressions, a trait unavailable in existing quantum languages.
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#
“In our case, because we are more high-level, we envision the compilation as a two-step process, where first you express your high-level intent and then it’s the job of the compiler to decide which architecture will this run on and how to optimize for a particular architecture.” – Bischel
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:
Don't miss this opportunity to share your voice and make an impact in the Ai community. Feature your blog on ARTiBA!
ContributeThe future is promising with conversational Ai leading the way. This guide provides a roadmap to seamlessly integrate conversational Ai, enabling virtual assistants to enhance user engagement in augmented or virtual reality environments.