0 Compartilhamentos 613 Views

Conheça Silq: a primeira linguagem criada para popularizar a programação quântica

A computação quântica segue sendo a grande promessa do futuro da tecnologia da informação. Entretanto, essa promessa vem cercada de desafios a serem superados, apesar do otimismo dos envolvidos. Um desses obstáculos parece ter sido conquistado por um time de quatro pesquisadores do Instituto Federal de Tecnologia (ETH) de Zurique, na Suíça: desenvolver uma linguagem de programação específica que atenda suas necessidades mas que seja intuitiva para os programadores.

Essa linguagem foi batizada de Silq e tem seu funcionamento parecido com as linguagens C, Java, Python e outras projetadas para computadores eletrônicos. De acordo com um dos envolvidos em sua concepção, o professor de Ciência da Computação Martin Vechev, do laboratório SRI do ETH, “nossa linguagem de programação quântica Silq permite que os programadores utilizem o potencial dos computadores quânticos melhor do que com as linguagens existentes, porque o código é mais compacto, mais rápido, mais intuitivo e mais fácil de entender para os programadores”.

Origem

Silq é fruto dos esforços dos estudantes de Doutorado em Ciência da Computação Benjamin Bichsel , Maximilian BaaderTimon Gehr e do professor Martin Vechev.

Ela veio para atender uma necessidade do ecossistema da computação quântica: “ajudar a preencher a lacuna conceitual entre linguagens clássicas e quântica. Como conseqüência, Silq reduz a barreira de entrada para programadores não especialistas em quântica,  ajuda a expressar algoritmos complicados de forma limpa e concisa e facilita a transferência de tecnologia de mais de 50 anos de técnicas de programação e análise desenvolvidas para computação clássica, no domínio da programação quântica”.

Curiosamente, essa não era a meta original do time de pesquisadores. O objetivo era simplesmente analisar algoritmos quânticos. Entretanto, o time percebeu que as linguagens atuais de computação clássica não conseguiam expressar seu objeto de estudo com o nível de abstração necessário. Por causa disso, eles optaram em focar seus esforços para o desenvolvimento de uma ferramenta que pudesse ser utilizada não apenas nos laboratórios de sua universidade, mas também por outros entusiastas de computação quântica com as mesmas dificuldades.

“A história do projeto é que queríamos resolver um problema central na computação quântica. E se você deseja resolver um problema central da computação quântica, por exemplo, se deseja analisar e raciocinar sobre programas quânticos, precisa ter uma linguagem na qual esses problemas sejam expressos – e há linguagens existentes. Examinamos vários problemas na computação quântica, mas o que continuava surgindo como uma questão fundamental é que analisamos os programas e como eles são expressos – e você vê que isso não é o ideal, não está otimizado”, contou Vechev.

Foram quase dois anos de desenvolvimento até chegarem no ponto em que a linguagem desenvolvida estava pronta para ser disponibilizada para todos. De acordo com Bichsel, isso foi possível “graças à combinação de diferentes conhecimentos em design de linguagem, física quântica e implementação. Se outras equipes de pesquisa e desenvolvimento abraçarem nossas inovações, será um grande sucesso”.

No momento, Silq conta com um portal oficial, onde é possível ter uma introdução a seus principais conceitos.  Além disso, a linguagem também está hospedada no Github, licenciada de forma gratuita e aberta sob uma Boost Software License 1.0. No Github, também estão disponibilizados um parser, um type checker e um simulador.

Características

Atualmente, a programação quântica é extremamente dependente do hardware sendo utilizado. A abordagem até então envolvia enviar instruções detalhadas para os circuitos subjacentes, uma tarefa suscetível a erros dada a complexidade dos componentes e cansativa por causa da necessidade de se descrever cada minúcia para a implementação dos algoritmos quânticos.

Silq veio para mudar isso: “o Silq é a primeira linguagem de programação quântica que não é projetada principalmente para a construção e funcionalidade do hardware, mas para a mentalidade dos programadores quando eles querem resolver um problema – sem exigir que eles entendam todos os detalhes da arquitetura e implementação do computador”, explicou Bichsel.

Isso implica em uma série de vantagens. Por ser uma linguagem de alto nível, ela é mais expressiva, podendo descrever tarefas mais complexas com menos código. Ela também é mais acessível aos programadores e mais flexível, uma vez que pode ser utilizada com mais arquiteturas de computadores quânticos e não focada em um hardware em específico.

Seus criadores também apontam um recurso poderoso da Silq: descomputação automática, sem intervenção do programador. O termo descomputação é relativamente novo e é característico do ambiente quântico. Na computação clássica, o processo de “coleta de lixo”, ou seja, a eliminação de valores temporários desnecessários, é uma simples questão de gerenciamento de memória. Na computação quântica, esse processo é fundamental, porém mais complexo devido ao fenômeno do entrelaçamento quântico, que é a base dos qubits. Valores tendem a ser preservados através de qubits e podem interferir ao interagir com dados novos, provocando erros. Para essa limpeza, é preciso executar a descomputação.

De acordo com Bichsel, “Silq é a primeira linguagem de programação que identifica e apaga automaticamente  valores que não são mais necessários”, libertando o programador da necessidade de se preocupar constantemente com a descomputação. “Entre outros benefícios, isso nos permite dar suporte nativo a expressões aninhadas, conhecidas das linguagens clássicas”.

E o Q#?

O Q# foi lançado pela Microsoft em 2017, como parte do seus esforços para evoluir a computação quântica com o Quantum Development Kit. Sua proposta era muito similar à do Silq. Nas palavras da própria Microsoft, “projetado para quantum, o Q # é a linguagem de programação de alto nível mais acessível com um sistema de tipo nativo para qubits, operadores e outras abstrações”.

Então, quais são as vantagens do Silq em relação àquela que veio antes? Silq requer menos código e emprega menos funções pré-criadas.

Para demonstrar a eficiência de seu projeto, os quatro pesquisadores resolveram todas as 28 tarefas que a Microsoft havia proposto em desafios de Q# em 2018 e 2019. O resultado foi mais satisfatório e intuitivo em Silq.

Compare os dois fragmentos de código abaixo que realizam as mesmas tarefas:

e

Mais recursos

Por enquanto, Silq ainda está em seus primeiros momentos. Ela sequer foi testada em computadores quânticos reais e foi desenvolvida com o uso de simuladores.

Para os interessados em se aventurar nessa nova fronteira, há mais recursos disponíveis relacionados a Silq:

Carregando...

Você pode se interessar

Sir Clive Sinclair, o homem adiantado no tempo
Artigos
67 visualizações
Artigos
67 visualizações

Sir Clive Sinclair, o homem adiantado no tempo

Carlos L. A. da Silva - 18 de setembro de 2021

O inglês Clive Marles Sinclair nasceu de uma família de engenheiros. Seu avô foi engenheiro, assim como o seu pai. Com um talento natural pela Matemática e um forte interesse em eletrônica, ele se tornaria uma página importante da popularização da computação em diversas partes do mundo, construindo um legado que se perpetuará por anos […]

A cibersegurança por trás das vacinas
Artigos
182 visualizações
Artigos
182 visualizações

A cibersegurança por trás das vacinas

Carlos L. A. da Silva - 7 de setembro de 2021

Vacinas contra o coronavírus contam com aparato sofisticado de cibersegurança que bateu de frente com tentativa de ação de hackers.

Top 25 comandos do Git
Artigos
319 visualizações
Artigos
319 visualizações

Top 25 comandos do Git

Carlos L. A. da Silva - 28 de agosto de 2021

Git é uma mão na roda para source control, mas pode ficar melhor ainda conhecendo os comandos certos.

Deixe um Comentário

Your email address will not be published.

Mais publicações

Dez anos de Kotlin: origens e futuro
Artigos
376 visualizações
376 visualizações

Dez anos de Kotlin: origens e futuro

Carlos L. A. da Silva - 20 de agosto de 2021
10 jogos que todo programador deveria conhecer
Artigos
690 visualizações
690 visualizações

10 jogos que todo programador deveria conhecer

Carlos L. A. da Silva - 1 de agosto de 2021