Summary: | Fundação de Amparo à Pesquisa do Estado do Rio Grande do Sul === With the approaching end of Moore’s Law, where will not be possible to improve the
capacity of silicon based processors, the quantum computing appear to be a good choice to provide
a new era of computation. Quantum computing can be understood as the art of transform
information encoded in the state of a quantum physical system. This encoding is through the
quantum bits (qubits), which can be on superposition or entangled states, enabling to explore
the property called quantum parallelism. In this work is discussed the creation of a quantum
programming language implementing the object-oriented paradigm (OO), allowing manipulation
of classes and objects, where the quantum effects are handled through a monadic approach,
extending the Featherweight Java (FJ) proposal. This language is formally defined through
the operational semantics, which allow the implementation in any language that provides closures.
That language formalization enables us to create an interpreter, implementing the steps
of lexical, syntactic and semantic analysis, focusing in the type system to embedded quantum
computing concepts in a classical language. Several examples are provided in the text, showing
ways to handle the monadic layer in order to perform transformations in quantum information. === Com a aproximação do fim da Lei de Moore, onde não será possível melhorar a capacidade
dos processadores baseados em silício, a computação quântica aparece como uma boa
escolha para prover uma nova era da computação. A computação quântica pode ser entendida
como a arte de transformar informação codificada no estado físico quântico. Esta codificação
se dá através de bits quânticos (qubits), que podem estar em estados de superposição ou emaranhados,
permitindo explorar uma propriedade conhecida como paralelismo quântico. Nesta
dissertação é discutida a criação de uma linguagem de programação quântica que utiliza-se
do paradigma da orientação a objetos (OO), fornecendo a possibilidade de manipular classes
e objetos, onde os dados e os efeitos quânticos são manipulados através de uma abordagem
monádica, sendo modelada como uma extensão da proposta Featherweight Java (FJ). Esta extensão
é definida formalmente através da apresentação de sua semântica operacional, a qual é
passível de implementação em qualquer linguagem de programação que forneça o mecanismo
de closures. A formalização desta linguagem permitiu a criação de um interpretador, que implementa
as fases de análise léxica, sintática e semântica, com foco especial no tratamento do
sistema de tipos para embutir conceitos de computação quântica em uma linguagem clássica.
Vários exemplos são fornecidos no decorrer do texto, mostrando formas de manipular a camada
monádica para realizar transformações em informações quânticas.
|