Abstract
Quantum programming is an emerging area developed in last 2 decades from the multidisciplinary research on quantum computing. Quantum computing combines the idea of Quantum Mechanics, Mathematics and Computer Science. This survey paper briefly gives an overview of state of the art in the field of quantum programming languages. This paper focuses on actual high-level quantum programming languages for quantum computers, their features and comparisons. We had not considered any available simulator in this paper.
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Deutsch D (1985) Quantum theory, the Church–Turing principle and the universal quantum computer. Proc R Soc Lond A 400:97–117
Deutsch D, Jozsa R (1992) Rapid solution of problems by quantum computation. Proc R Soc Lond Ser A 439:553–558
Shor PW (1994) Algorithms for quantum computation: discrete logarithms and factoring. In: Proceedings of 35th annual symposium on the foundations of computer science, 20–22 Nov 1994, Santa Fe, NM, USA, pp 124–134
Shor PW (1997) Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM J Comput 26(5):1484–1509
Grover LK (1996) A fast quantum mechanical algorithm for database search. In: Proceedings of the 28th annual ACM symposium on theory of computation. Philadelphia, Pennsylvania, USA, May 22–24, pp 212–219
Jordan S (2018) http://quantumalgorithmzoo.org. Accessed 8 Apr 2019
Knill E (1996) Conventions for quantum pseudocode. Technical report LAUR-96-2724, Los Alamos National Laboratory
Knill EH, Nielsen MA (2001) Theory of quantum computation. Supplement III, Encyclopedia of Mathematics (Summer 2001). arXiv:quant-ph/0010057
Selinger P (2004) A brief survey of quantum programming languages. In: Proceeding of 7th international symposium on functional and logic programming (FLOPS2004). Lecture notes in computer science, vol 2998. Springer, pp 1–6
Unruh D (2006) Quantum programming languages. Informatik-Forschung and Entwicklung 21(1):55–63
Rudiger R (2007) Quantum programming languages: an introductory overview. Comput J 50(2):134–150
Sofge DA (2008) A survey of quantum programming languages: history, methods and tools. In: Proceedings of the second international conference on quantum, nano and micro technologies (ICQNM 2008), 10–15 Feb 2008. IEEE Computer Society, Sainte Luce, Martinique, pp 66–71
Omer B (1998) A procedural formalism for quantum computing. Master’s thesis, Technical University of Vienna. http://tph.tuwien.ac.at/~oemer/doc/qcldoc.pdf. Accessed 8 Apr 2019
Omer B (2003) Structured quantum programming. PhD dissertation, TU Vienna. http://tph.tuwien.ac.at/~oemer/doc/structquprog.pdf. Accessed 8 Apr 2019
Omer B (2005) Classical concepts in quantum programming. Int J Theor Phys 44(7):943–955
Zuliani P (2001) Quantum programming. PhD thesis, Oxford University Computing Laboratory. http://www.comlab.ox.ac.uk. Accessed 8 Apr 2019
Zuliani P (2004) Non-deterministic quantum programming. In: Selinger P (ed) 2nd International workshop on quantum programming languages, pp 179–195. http://www.quasar.mathstat.uottawa.ca/selinger/qpl2004/PDFS/12Zuliani.pdf. Accessed 8 Apr 2019
Sanders JW, Zuliani P (2000) Quantum programming. In: 5th International conference on mathematics of program construction (MPC2000), Ponte de Lima, Portugal, 3–5 July 2000. Lecture notes in computer science, vol 1837. Springer, pp 88–89
Morgan C, McIver A, Seidel K (1996) Probabilistic predicate transformers. ACM Trans Program Lang Syst 18(3):325–353
Dijkstra EW (1976) A discipline of programming. Prentice-Hall series in automatic computation, 3rd edn, Prentice-Hall
Zuliani P (2001) Logical reversibility. IBM J Res Dev 45(6):807–818
Zuliani P (2005) Compiling quantum programs. Acta Inform 41(7–8):435–474
Bettelli S, Serafini L, Calarco T (2003) Toward an architecture for quantum programming. Eur Phys J D Atom Mol Opt Plasma Phys 25(2):181–200
Shusen L, Li Z, Ji G, Yang H, Runyao D, Mingsheng Y (2017) Q|SI\(\rangle \): a quantum programming environment. Sci Sin Inf 47(10):1300–1315. https://doi.org/10.1360/N112017-00095
Pakin S (2016) A quantum macro assembler. In: IEEE high performance extreme computing conference (HPEC), 13–15 Sept 2016, Waltham, MA, USA. https://doi.org/10.1109/HPEC.2016.7761637
Mlnarik H (2006) Introduction to LanQ: an imperative quantum programming language. http://lanq.sourceforge.net/doc/introToLanQ.pdf. Accessed 8 Apr 2019
Mlnarik H (2007) Quantum programming language LanQ. PhD thesis, Masaryk University
Bennett CH, Brassard G, Crepeau C, Jozsa R, Peres A, Wooters WK (1993) Teleporting an unknown quantum state via dual classical and Einstein–Podolsky–Rosen channels. Phys Rev Lett 70:1895–1899
Mlnarik H (2008) Semantics of quantum programming language LANQ. Int J Quantum Inf 6:733–738
Mlnarik H (2007) Operational semantics and type soundness of quantum programming language LanQ. arXiv:0708.0890
D-wave SAPI Library (2016) Developer guide for Python. 09-1024A-A, version 2.3.1, D-Wave Systems Inc., Burnaby, British Columbia, Canada
The D-Wave 2X quantum computer, Technology overview. D-Wave Systems Inc., Burnaby, British Columbia, Canada, 09-1062A-A, 2015. http://www.dwavesys.com/sites/default/files/DWave202X%20Tech%20Collateral_0915F.pdf. Accessed 8 Apr 2019
Maymin P (1996) Extending the lambda calculus to express randomized and quantumized algorithms. arXiv:quant-ph/9612052
Selinger P (2004) Towards a quantum programming language. Math Struct Comput Sci 14(4):527–586
Grattage J (2006) QML a functional quantum programming language. PhD thesis, The University of Nottingham, 2006. https://web.archive.org/web/20061009074750/, http://sneezy.cs.nott.ac.uk/qml/compiler/jjg-thesis-draft.pdf. Accessed 8 Apr 2019
Green AS, Lumsdaine PL, Ross NJ, Selinger P, Valiron B (2013) An introduction to quantum programming in quipper. In: Proceedings of 5th international conference on reversible computation, RC 2013, Victoria, BC, Canada, 4–5 July 2013. Lecture notes in computer science book series (LNCS), vol 7948, pp 110–124
Lapets A, da Silva MP, Thome M, Adler A, Beal J, Roetteler M (2013) QuaFL: a typed DSL for quantum programming. In: Proceedings of 1st annual workshop on functional programming concepts in domain-specific language (FPCDS’13), pp 19–26. http://web.mit.edu/jakebeal/www/Publications/FPCDSL13-QuaFL-Programming.pdf. Accessed 8 Apr 2019
Geller A, Svore KM, Wecker D (2016) Language-integrated quantum operations LIQUi|\(>\) simulator, user’s manual. http://stationq.github.io/Liquid/docs/LIQUiD.pdf. Accessed 8 Apr 2019
Church A (1936) An unsolvable problem of elementary number theory. Am J Math 58:345–363
Church A (1936) A note on the Entscheidungsproblem. J Symb Log 1:40–41
Tonder AV, Dorca M (2003) Quantum computation, categorical semantics and linear logic. arXiv:quant-ph/0312174
Tonder AV (2004) A lambda calculus for quantum computation. SIAM J Comput 33(5):1109–1135
Selinger P (2004) Towards a semantics for higher-order quantum computation. In: Proceeding of 2nd international workshop on quantum programming languages, Turku, Finland, 12–13 July 2004, pp 127–143
Selinger P, Valiron B (2005) A lambda calculas for quantum computation with classical control. In: Proceeding of 7th international conference on typed lambda calculi and applications (TLCA’05) Nara, Japan. Lecture notes in computer science, vol 3461. Springer, pp 354–368
Maymin P (1997) The lambda-q calculus can efficiently simulate quantum computers. arXiv:quant-ph/9702057
Altenkirch T, Grattage J (2005) A functional quantum programming language. In: 20th Annual IEEE symposium on logic in computer science (LICS’05), 26–29 June 2005, Chicago, IL, USA
Microsoft F# language manual. http://reserach.microsft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html. Accessed 8 Apr 2019
Green AS, Lumsdaine PL, Ross NJ, Selinger P, Valiron B (2013) The quipper language. In: Proceeding of the 34th ACM SIGPLAN conference on programming language design and implementation, vol 48(6), pp 333–342
Childs AM, Cleve R, Deotto E, Farhi E, Gutmann S, Spielman DA (2003) Exponential algorithmic speedup by a quantum walk. In: Proceedings of the thirty-fifth annual ACM symposium on theory of computing, pp 59–68
IARPA Quantum Computer Science Program (2010) https://www.iarpa.gov/index.php/research-programs/quantum-programs-at-iarpa. Accessed 8 Apr 2019
Chakraborty A (2011) QuECT: a new quantum programming paradigm. arXiv:1104.0497
Paykin J, Rand R, Zdancewic S (2017) QWIRE: a core language for quantum circuits. In: Proceedings of the 44th ACM SIGPLAN symposium on principles of programming languages (POPL2017), pp 846–858
Killoran N, Izaac J, Quesada N, Bergholm V, Amy M, Weedbrook C (2018) Strawberry fields: a software platform for photonic quantum computing. arXiv:1804.03159
Q# language Online available: https://docs.microsoft.com/en-us/quantum/quantum-relnotes?view=qsharp-preview. Accessed 8 Apr 2019
Krämer S, Plankensteiner D, Ostermann L, Ritsch H (2018) QuantumOptics.jl: a Julia framework for simulating open quantum systems. Comput Phys Commun 227:109–116
CorrelationExpansion.jl Package. https://github.com/bastikr/CorrelationExpansion.jl. Accessed 8 Apr 2019
CollectiveSpins.jl package. https://github.com/bastikr/CollectiveSpins.jl. Accessed 8 Apr 2019
Q# Language: https://www.microsoft.com/en-us/quantum/development-kit. Accessed 8 Apr 2019
Feitosa SS, Vizzotto JK, Piveta EK, Bois ARD (2016) FJQuantum: a quantum object oriented language. Electron Notes Theor Comput Sci 324:67–77
Igarashi A, Pierce BC, Wadler P (2001) Featherweight Java: a minimal core calculus for Java and GJ. ACM Trans Program Lang Syst 23(3):396–450
Loke T, Wang JB, Chen YH (2014) OptQC: an optimized parallel quantum compiler. Comput Phys Commun 185(12):3307–3316
Chen YG, Wang JB (2013) QCompiler: quantum compilation with CSD method. Comput Phys Commun 184(3):853–865
IBMQ Experience. https://www.reserach.ibm.com/ibm-q/. Accessed 8 Apr 2019
Moran CC (2018) Quintuple: a tool for Introducing quantum computing into the classroom. Front Phys 6, Article no 69
Ameen EMM, Ali HA, Salem MM, Badawy M (2017) Towards implementation of a generalized architecture for high-level quantum programming language. Int J Theor Phys 56(8):2376–2412
Jose MA, Piqueria JRC, Lopes RDD (2013) Introduction to quantum programming. Revista Brasileira de Ensino de Fisica 35(1), Article 1306
Valiron B (2013) Quantum computation: from a programmer’s perspective. New Gener Comput 31(1):1–26
Ying MS, Feng Y, Duan RY, Li YJ, Yu NK (2012) Quantum programming: from theories to implementations. Chin Sci Bull 57(16):1903–1909
Tafliovich A (2004) Quantum programming. Master’s thesis, University of Toronto
Johansson JR, Nation PD, Nori F (2012) QuTiP: an open-source Python framework for the dynamics of open quantum systems. Comput Phys Commun 183(8):1760–1772
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Garhwal, S., Ghorani, M. & Ahmad, A. Quantum Programming Language: A Systematic Review of Research Topic and Top Cited Languages. Arch Computat Methods Eng 28, 289–310 (2021). https://doi.org/10.1007/s11831-019-09372-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11831-019-09372-6