Quantum Programming Language: A Systematic Review of Research Topic and Top Cited Languages

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.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12

References

  1. 1.

    Deutsch D (1985) Quantum theory, the Church–Turing principle and the universal quantum computer. Proc R Soc Lond A 400:97–117

    MathSciNet  Article  Google Scholar 

  2. 2.

    Deutsch D, Jozsa R (1992) Rapid solution of problems by quantum computation. Proc R Soc Lond Ser A 439:553–558

    MathSciNet  Article  Google Scholar 

  3. 3.

    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

  4. 4.

    Shor PW (1997) Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer. SIAM J Comput 26(5):1484–1509

    MathSciNet  Article  Google Scholar 

  5. 5.

    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

  6. 6.

    Jordan S (2018) http://quantumalgorithmzoo.org. Accessed 8 Apr 2019

  7. 7.

    Knill E (1996) Conventions for quantum pseudocode. Technical report LAUR-96-2724, Los Alamos National Laboratory

  8. 8.

    Knill EH, Nielsen MA (2001) Theory of quantum computation. Supplement III, Encyclopedia of Mathematics (Summer 2001). arXiv:quant-ph/0010057

  9. 9.

    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

  10. 10.

    Unruh D (2006) Quantum programming languages. Informatik-Forschung and Entwicklung 21(1):55–63

    Article  Google Scholar 

  11. 11.

    Rudiger R (2007) Quantum programming languages: an introductory overview. Comput J 50(2):134–150

    Article  Google Scholar 

  12. 12.

    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

  13. 13.

    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

  14. 14.

    Omer B (2003) Structured quantum programming. PhD dissertation, TU Vienna. http://tph.tuwien.ac.at/~oemer/doc/structquprog.pdf. Accessed 8 Apr 2019

  15. 15.

    Omer B (2005) Classical concepts in quantum programming. Int J Theor Phys 44(7):943–955

    MathSciNet  Article  Google Scholar 

  16. 16.

    Zuliani P (2001) Quantum programming. PhD thesis, Oxford University Computing Laboratory. http://www.comlab.ox.ac.uk. Accessed 8 Apr 2019

  17. 17.

    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

  18. 18.

    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

  19. 19.

    Morgan C, McIver A, Seidel K (1996) Probabilistic predicate transformers. ACM Trans Program Lang Syst 18(3):325–353

    Article  Google Scholar 

  20. 20.

    Dijkstra EW (1976) A discipline of programming. Prentice-Hall series in automatic computation, 3rd edn, Prentice-Hall

  21. 21.

    Zuliani P (2001) Logical reversibility. IBM J Res Dev 45(6):807–818

    Article  Google Scholar 

  22. 22.

    Zuliani P (2005) Compiling quantum programs. Acta Inform 41(7–8):435–474

    MathSciNet  Article  Google Scholar 

  23. 23.

    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

    Google Scholar 

  24. 24.

    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

    Article  Google Scholar 

  25. 25.

    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

  26. 26.

    Mlnarik H (2006) Introduction to LanQ: an imperative quantum programming language. http://lanq.sourceforge.net/doc/introToLanQ.pdf. Accessed 8 Apr 2019

  27. 27.

    Mlnarik H (2007) Quantum programming language LanQ. PhD thesis, Masaryk University

  28. 28.

    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

    MathSciNet  Article  Google Scholar 

  29. 29.

    Mlnarik H (2008) Semantics of quantum programming language LANQ. Int J Quantum Inf 6:733–738

    Article  Google Scholar 

  30. 30.

    Mlnarik H (2007) Operational semantics and type soundness of quantum programming language LanQ. arXiv:0708.0890

  31. 31.

    D-wave SAPI Library (2016) Developer guide for Python. 09-1024A-A, version 2.3.1, D-Wave Systems Inc., Burnaby, British Columbia, Canada

  32. 32.

    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

  33. 33.

    Maymin P (1996) Extending the lambda calculus to express randomized and quantumized algorithms. arXiv:quant-ph/9612052

  34. 34.

    Selinger P (2004) Towards a quantum programming language. Math Struct Comput Sci 14(4):527–586

    MathSciNet  Article  Google Scholar 

  35. 35.

    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

  36. 36.

    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

  37. 37.

    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

  38. 38.

    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

  39. 39.

    Church A (1936) An unsolvable problem of elementary number theory. Am J Math 58:345–363

    MathSciNet  Article  Google Scholar 

  40. 40.

    Church A (1936) A note on the Entscheidungsproblem. J Symb Log 1:40–41

    Article  Google Scholar 

  41. 41.

    Tonder AV, Dorca M (2003) Quantum computation, categorical semantics and linear logic. arXiv:quant-ph/0312174

  42. 42.

    Tonder AV (2004) A lambda calculus for quantum computation. SIAM J Comput 33(5):1109–1135

    MathSciNet  Article  Google Scholar 

  43. 43.

    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

  44. 44.

    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

  45. 45.

    Maymin P (1997) The lambda-q calculus can efficiently simulate quantum computers. arXiv:quant-ph/9702057

  46. 46.

    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

  47. 47.

    Microsoft F# language manual. http://reserach.microsft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html. Accessed 8 Apr 2019

  48. 48.

    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

  49. 49.

    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

  50. 50.

    IARPA Quantum Computer Science Program (2010) https://www.iarpa.gov/index.php/research-programs/quantum-programs-at-iarpa. Accessed 8 Apr 2019

  51. 51.

    Chakraborty A (2011) QuECT: a new quantum programming paradigm. arXiv:1104.0497

  52. 52.

    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

  53. 53.

    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

  54. 54.

    Q# language Online available: https://docs.microsoft.com/en-us/quantum/quantum-relnotes?view=qsharp-preview. Accessed 8 Apr 2019

  55. 55.

    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

    Article  Google Scholar 

  56. 56.

    CorrelationExpansion.jl Package. https://github.com/bastikr/CorrelationExpansion.jl. Accessed 8 Apr 2019

  57. 57.

    CollectiveSpins.jl package. https://github.com/bastikr/CollectiveSpins.jl. Accessed 8 Apr 2019

  58. 58.

    Q# Language: https://www.microsoft.com/en-us/quantum/development-kit. Accessed 8 Apr 2019

  59. 59.

    Feitosa SS, Vizzotto JK, Piveta EK, Bois ARD (2016) FJQuantum: a quantum object oriented language. Electron Notes Theor Comput Sci 324:67–77

    MathSciNet  Article  Google Scholar 

  60. 60.

    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

    Article  Google Scholar 

  61. 61.

    Loke T, Wang JB, Chen YH (2014) OptQC: an optimized parallel quantum compiler. Comput Phys Commun 185(12):3307–3316

    Article  Google Scholar 

  62. 62.

    Chen YG, Wang JB (2013) QCompiler: quantum compilation with CSD method. Comput Phys Commun 184(3):853–865

    MathSciNet  Article  Google Scholar 

  63. 63.

    IBMQ Experience. https://www.reserach.ibm.com/ibm-q/. Accessed 8 Apr 2019

  64. 64.

    Moran CC (2018) Quintuple: a tool for Introducing quantum computing into the classroom. Front Phys 6, Article no 69

  65. 65.

    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

    MathSciNet  Article  Google Scholar 

  66. 66.

    Jose MA, Piqueria JRC, Lopes RDD (2013) Introduction to quantum programming. Revista Brasileira de Ensino de Fisica 35(1), Article 1306

  67. 67.

    Valiron B (2013) Quantum computation: from a programmer’s perspective. New Gener Comput 31(1):1–26

    Article  Google Scholar 

  68. 68.

    Ying MS, Feng Y, Duan RY, Li YJ, Yu NK (2012) Quantum programming: from theories to implementations. Chin Sci Bull 57(16):1903–1909

    Article  Google Scholar 

  69. 69.

    Tafliovich A (2004) Quantum programming. Master’s thesis, University of Toronto

  70. 70.

    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

    Article  Google Scholar 

Download references

Author information

Affiliations

Authors

Corresponding author

Correspondence to Sunita Garhwal.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

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

Download citation