Fundamentos de lenguajes de programación cuántica

Prof. Alejandro Díaz-Caro, Universidad Nacional de Quilmes, Argentina.


En este curso se hará una introducción a la computación cuántica desde el punto de vista del diseño de lenguajes. Las dos primeras clases se cubrirá una introducción a la computación cuántica y sus algoritmos más conocidos, así como algunas aplicaciones simples a la criptografía. Luego, con el propósito de estudiar los fundamentos de los lenguajes de programación, haremos una introducción al cálculo lambda. En el resto del curso recorreremos los dos paradigmas existentes: 1) control clásico y datos cuánticos, el cual ve a la computadora cuántica como una especie de co-procesador que realiza el cómputo cuántico, mientras el programa principal es manejado clásicamente y 2) control y datos cuánticos, donde las propiedades cuánticas como el principio de superposición no ocurren sólo al nivel de los datos, sino que también los programas admiten ser superpuestos, medidos, etc. No se requiere conocimiento previo de cálculo lambda, ya que está previsto hacer una introducción al mismo, pero sí de álgebra lineal (matrices y vectores).


Contenidos:
Día 1: Introducción a la computación cuántica.
Día 2: Algoritmos cuánticos más comunes y aplicación a la criptografía.
Día 3: Introducción al cálculo lambda y la teoría de tipos.
Día 4: Paradigma del "co-procesador cuántico": Control clásico y datos cuánticos. El caso de Quipper.
Día 5: Paradigma puramente cuántico: Control y datos cuánticos.


Objetivos:
* Adquirir los conocimientos básicos de la computación cuántica.
* Aprender técnicas para el estudio de lenguajes (en particular el cálculo lambda).
* Obtener una noción de los diferentes paradigmas de lenguajes para computación cuántica existentes.

Bibliografía Recomendada

Computación cuántica
* Quantum Computation and Quantum Information (Michael Nielsen e Isaac Chuang)

Lambda cálculo
* Introduction to the Theory of Programming Languages (Gilles Dowek y Jean-Jacques Lévy)
* The Lambda Calculus, Its Syntax and Semantics (Henk Barendregt)
* Lambda Calculus, Types and Models (Jean-Louis Krivine)
* Proofs and Types (Jean-Yves Girard)