A Lambda Calculus for Quantum Computation with Classical Control

  • Peter Selinger
  • Benoît Valiron
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3461)


The objective of this paper is to develop a functional programming language for quantum computers. We develop a lambda calculus for the classical control model, following the first author’s work on quantum flow-charts. We define a call-by-value operational semantics, and we give a type system using affine intuitionistic linear logic. The main results of this paper are the safety properties of the language and the development of a type inference algorithm.


Quantum Computation Type System Operational Semantic Classical Control Typing Rule 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Altenkirch, T., Grattage, J.: A functional quantum programming language. Available from arXiv:quant-ph/0409065 (2004)Google Scholar
  2. 2.
    Barendregt, H.P.: The Lambda-Calculus, its Syntax and Semantics. In: Directions in Human Factors for Interactive Systems, 2nd edn., vol. 103, North Holland, Amsterdam (1984)Google Scholar
  3. 3.
    Benioff, P.: The computer as a physical system: A microscopic quantum mechanical Hamiltonian model of computers as represented by Turing machines. Journal of Statistical Physics 22, 563–591 (1980)CrossRefMathSciNetGoogle Scholar
  4. 4.
    Bettelli, S., Calarco, T., Serafini, L.: Toward an architecture for quantum programming. The European Physical Journal D 25(2), 181–200 (2003)CrossRefGoogle Scholar
  5. 5.
    Danos, V., Joinet, J.-B., Schellinx, H.: On the linear decoration of intuitionistic derivations. Archive for Mathematical Logic 33, 387–412 (1995)zbMATHCrossRefMathSciNetGoogle Scholar
  6. 6.
    Deutsch, D.: Quantum theory, the Church-Turing principle and the universal quantum computer. In: Proceedings of the Royal Society of London. Series A, Mathematical and Physical Sciences, July 1985, vol. 400(1818), pp. 97–117 (1985)Google Scholar
  7. 7.
    Girard, J.-Y.: Linear logic. Theoretical Computer Science 50(1), 1–101 (1987)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Knill, E.: Conventions for quantum pseudocode. Technical Report LAUR-96-2724, Los Alamos National Laboratory (1996)Google Scholar
  9. 9.
    Nielsen, M.A., Chuang, I.L.: Quantum Computation and Quantum Information. Cambridge University Press, Cambridge (2002)Google Scholar
  10. 10.
    Preskill, J.: Lecture notes for Physics 229, quantum computation (1999), Available from
  11. 11.
    Sanders, J.W., Zuliani, P.: Quantum programming. In: Backhouse, R., Oliveira, J.N. (eds.) MPC 2000. LNCS, vol. 1837, pp. 80–99. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  12. 12.
    Selinger, P.: Towards a quantum programming language. Mathematical Structures in Computer Science 14(4), 527–586 (2004)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Valiron, B.: A functional programming language for quantum computation with classical control. Master’s thesis, University of Ottawa (September 2004)Google Scholar
  14. 14.
    van Tonder, A.: Quantum computation, categorical semantics and linear logic. On arXiv: quant-ph/0312174 (2003)Google Scholar
  15. 15.
    van Tonder, A.: A lambda calculus for quantum computation. SIAM Journal of Computing 33(5), 1109–1135 (2004) (Available from arXiv:quant-ph/0307150)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Peter Selinger
    • 1
  • Benoît Valiron
    • 1
  1. 1.Department of Mathematics and StatisticsUniversity of OttawaOttawaCanada

Personalised recommendations