La computación cuántica está emergiendo como una de las tecnologías más prometedoras para transformar áreas desde la criptografía hasta la simulación de materiales y la inteligencia artificial. Sin embargo, para aprovechar plenamente su potencial, es fundamental contar con herramientas de software robustas que puedan traducir los algoritmos cuánticos en instrucciones óptimas para el hardware disponible. Aquí es donde el desarrollo de compiladores especializados juega un papel crucial. El compilador quilc ha sido un referente clave en la comunidad cuántica, ofreciendo capacidades de optimización para programas escritos en Quil, un lenguaje de programación cuántico diseñado para manejar circuitos y algoritmos cuánticos. Quilc está construido en Common Lisp, un lenguaje dinámico que permite gran flexibilidad, pero que también presenta desafíos relacionados con el manejo de tipos y abstracciones estáticas, que son vitales para garantizar la precisión y la seguridad de operaciones tan delicadas como las usadas en computación cuántica.
Para superar esos obstáculos, el equipo de desarrollo ha incorporado Coalton, un lenguaje estáticamente tipado que se integra dentro del entorno Common Lisp. Coalton permite la implementación de funcionalidades complejas con soporte para verificación estática de tipos, reduciendo errores en tiempo de ejecución y aportando abstracciones más robustas. Entre las innovaciones más destacadas realizadas con Coalton está la introducción de la compilación discreta en quilc, un nuevo enfoque para descomponer operaciones unitarias arbitrarias en un conjunto discreto de operaciones nativas, en lugar de utilizar operaciones continuas que dependen de parámetros analógicos con precisiones limitadas. Una computación cuántica típica se basa en la aplicación de un conjunto de operaciones unitarias a un sistema de qubits. Estas operaciones suelen representarse con matrices cuadradas unitarias de tamaño 2ⁿ×2ⁿ, donde n es el número de qubits involucrados.
La mayoría del hardware cuántico actual admite solo un conjunto limitado y específico de operaciones nativas. Por ejemplo, los sistemas de IBM utilizan operaciones como RX, RZ y CNOT, con la particularidad que algunas de estas operaciones, como RZ(θ), dependen de un parámetro continuo θ, que representa un ángulo de rotación sobre un eje determinado. Estas operaciones continuas, aunque poderosas, presentan un reto inherente: su naturaleza analógica impone un límite físico a la precisión con la que puede implementarse cada rotación, lo que se traduce en ruido y errores acumulativos. La pregunta que surge es si es posible contar con un conjunto discretizado de operaciones nativas para las computadoras cuánticas, que permita aproximar con precisión arbitraria cualquier operación unitaria requerida, sin depender de parámetros continuos. La respuesta afirmativa a esta cuestión abre la puerta a la compilación discreta, un área de investigación madura con décadas de desarrollo, siendo uno de los métodos más eficientes y estudiados el algoritmo desarrollado por Neil Ross y Peter Selinger.
Su propuesta se basa en un conjunto de operaciones conocido como Clifford+T, formado por operaciones H (Hadamard), S, T y algunas puertas de dos qubits como CNOT, que juntas forman un conjunto computacionalmente universal y discretizado. La descomposición discreta es un desafío matemático considerable porque requiere representar una matriz unitaria arbitraria, en particular aquellas que dependen de ángulos continuos, mediante productos y combinaciones de matrices con entradas en un conjunto algebraico bien definido, en este caso el anillo numérico Z[1/√2, i]. La belleza del algoritmo Ross-Selinger radica en transformar esta cuestión en una ecuación diofántica dentro de este anillo, y proveer una estrategia de solución eficiente, logrando así aproximaciones óptimas en longitud y precisión para las secuencias resultantes de puertas discretas. Para implementar este complejo algoritmo, que involucra tipos numéricos especializados, estructuras algebraicas y manipulación avanzada de matrices, Coalton se convierte en una herramienta excepcional. A diferencia de Common Lisp, donde la sobrecarga de operadores y la jerarquía numérica son limitadas y menos seguras, Coalton ofrece un sistema robusto de polimorfismo ad hoc mediante clases de tipos, que permite extender las operaciones aritméticas de forma estática y segura para nuevos tipos numéricos.
Por ejemplo, Coalton facilita definir estructuras algebraicas como los números del tipo a + b√2 implementando instancias para clases de tipos de igualdad y de operaciones numéricas, que comprenden suma, resta, multiplicación y construcción desde enteros. Esto habilita construir una torre numérica personalizada, interoperable y escalable, con tipado seguro y sin la necesidad de castings engorrosos o comprobaciones en tiempo de ejecución. Esta capacidad es indispensable para manejar los múltiples anillos y campos involucrados en la descomposición discreta, como los enteros ciclotómicos de grado 8 y enteros cuadráticos, además de permitir conversiones seguras y controladas entre representaciones algebraicas y números de punto flotante, necesarios para validar la precisión del compilado final. Coalton permite definir instancias que intentan convertir tipos algebraicos a dobles con manejo explícito de errores, preservando la seguridad y claridad del código. Integrar esta matemática avanzada en quilc, mediante el módulo cl-quil/discrete construido en Coalton, ha resultado en la primera implementación generalista de compilación discreta para compiladores cuánticos.
Los usuarios pueden activar la compilación discreta simplemente seleccionando un ISA (arquitectura de conjunto de instrucciones) basado en Clifford+T, y la compilación se realizará automáticamente, generando secuencias compuestas exclusivamente de operaciones discretas. Aunque la cantidad de operaciones puede aumentar notablemente en relación con secuencias que permiten operaciones continuas, la eficiencia del algoritmo Ross-Selinger hace que el incremento sea razonable y controlable en función de la precisión deseada. Además de la eficiencia, el sistema aprovecha la infraestructura de optimización existente en quilc, asegurando que la salida sea lo más compacta y efectiva posible. Los usuarios pueden controlar la precisión mediante directivas previstas para tal fin, equilibrando el costo computacional y el error tolerable para sus aplicaciones. Sin embargo, la introducción de la compilación discreta implica desafíos adicionales en validación.
Dado que la única operación aproximada es la rotación RZ(θ), el error acumulado es proporcional a la cantidad de veces que se utiliza esta operación. Por eso, la asignación de tolerancias debe considerar el total de aproximaciones y ajustar los parámetros para mantener la fidelidad global del programa. El equipo desarrollador ha probado exhaustivamente esta funcionalidad con simulaciones numéricas y empíricas, incluyendo la preparación de estados cuánticos conocidos como el estado W, y la medición repetida de los resultados para validar la convergencia de las distribuciones hacia los esperados valores teóricos a medida que se incrementa la precisión. Los resultados confirman la confiabilidad y corrección del enfoque, observando además que el porcentaje de operaciones T, que suelen ser costosas en hardware físico, permanece controlado. La implementación demuestra un equilibrio entre el rigor matemático, la eficiencia de compilación y la practicidad para computación cuántica real y simulada.
El proyecto Coalton, paralelamente, evoluciona para facilitar aún más estas y otras implementaciones complejas, proponiendo extender sus capacidades estándar, mejorar la velocidad de desarrollo y ejecución sin sacrificar la seguridad del tipo, fomentando una comunidad activa e inclusiva donde colaboradores de todas partes pueden contribuir al avance del lenguaje y sus aplicaciones. En conclusión, la combinación de Coalton y quilc representa un avance significativo en el desarrollo de compiladores para computación cuántica, facilitando la adopción de compilación discreta mediante algoritmos matemáticamente sofisticados, implementados con seguridad y efectividad. Esta integración no solo mejora la precisión y reproducibilidad de los programas cuánticos, sino que también establece un nuevo estándar para software cuántico capaz de abordar las complejidades inherentes a esta disciplina. La invitación está abierta para que desarrolladores interesados participen en estos proyectos innovadores, contribuyendo a la evolución de herramientas esenciales para la próxima generación de computación.