When it comes to programming languages, the first name that comes to mind typically is C. Dating back to the ‘70s when it was developed at AT&T Bell Laboratories by Dennis Ritchie and Ken Thompson, it was easy to learn by those who wanted to work on computer coding. Most existing computer programs were written in assembly language, communicating directly with hardware but being complex, long, and hard to debug. C offered ease and intuitiveness of use and brought in a totally new audience to computer programming.
Quantum computing represents the next stage in the development from classical computing. The latter encodes information as a series of 0s and 1s, while a qubit (from quantum computers) could be a 0, 1, or both at a time. Quantum computers use entangled quantum states with overlapping information bits to perform their calculations. This could make them much, much faster than classical computing at doing calculations and data-crunching, which is why they also looked at as the future of computing and as the source of programming languages for AI.
Working with the full potential of quantum computing requires two things:
- The most current technology
- A quantum programming language to describe quantum algorithms
Essentially, while the algorithm explains how to solve a problem, the programming language helps the computer to perform the necessary calculations by describing the algorithm.
Present approaches to quantum computation look to adapt and use existing tools and technologies, as this would allow them to be run on devices that will be available over the next few years. Current quantum languages are somewhat similar to assembly languages in their expressiveness, as the programmer must provide every operation the computer is to perform. The former is also at a lower level than the latter in some respects – chiefly, in describing operations on individual quantum bits, more like what low-level hardware description languages do. Another shortcoming is how closely they are tied to specific hardware, describing the behavior of underlying circuits precisely and thereby requiring highly-detailed individual programming instructions describing the required minutiae. Given the complexity of current programming languages for quantum computers, a new language is needed.
This is how Silq came about. It was created by researchers at ETH Zurich, Switzerland, and is claimed to be the first high-level quantum language in the world. Classical and quantum languages are currently quite far apart in their conceptual bases, and Silq looks to bridge that gap, offering an approach that is far more intuitive than imagined. And given how quantum computing could revolutionize AI, Silq could be a very useful programming language for AI.
Silq offers several advantages, some of which are detailed below:
- A level of abstraction close to that of C
- Better usage of the potential of quantum computers than existing languages
- The code used by Silq is more compact, faster, more intuitive, and easier to understand for programmers.
- Existing quantum languages make it difficult to directly support subexpressions such as (a+b) + c, which are directly supported by Silq.
- It facilitates the expression of the high-level intent of programmers through a descriptive view of quantum algorithms. A specialized compiler can take care of compiling these algorithms to low-level quantum circuits.
- Programs in Silq are less-focused on low-level details, which makes analyzing such programs easier than the programs written in existing quantum languages.
- Silq could facilitate the development of tools for analysis to support developers.
What keeps Silq ahead of other languages is its design. It is the first programming language for quantum computing whose design does not limit its focus to the construction and functionality of underlying hardware. The design instead pays due consideration to the mindset of a programmer when a problem is to be solved, and helps in finding a solution that does not need the understanding of each detail of the architecture and implementation of the computer.
Silq falls into the category of high-level programming languages, as it abstracts from technical details of a particular type of computer. It is the first such language for quantum computers, and is more expressive as it can use much lesser code to describe more complex algorithms and tasks. This is why programmers find it easier to comprehend and use, also because it works with different computer architectures.
Possibly the most important innovation of Silq is in dealing with a particular common source of errors. More than one intermediary step makes up the process of calculating a task by a computer, in which process intermediate results or temporary values are created. Classical computers automatically get rid of these values in what is known as a process of “garbage collection”, which however is dicey for quantum computers, as previously-calculated values can interfere with correct calculations due to interactions with current values (which is also called quantum entanglement). This requires an uncomputation technique that is more advanced, and Silq allows such identification and erasure automatically.
Silq is definitely a way ahead and is attracting more attention from computer scientists working on usable ideas. Given how it is easier to use, it could stimulate the development of further languages and algorithms for quantum computers.