Abstract
This chapter provides an overview of state-of-the-art quantum software technologies: quantum programming languages, quantum software simulators and design environments, quantum tools and libraries, quantum annealing environments, and quantum software development and run platforms.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Mueck L (2017) Quantum software. Nature 549(7671):171–171
Dijkstra EW (1972) The humble programmer. Commun ACM 15(10):859–866
Humble J, Farley D (2010) Continuous delivery: reliable software releases through build, test, and deployment automation. Pearson Education
Kim G, Humble J, Debois P, Willis J, Forsgren N (2021) The DevOps handbook: how to create world-class agility, reliability, & security in technology organizations. IT Revolution
Piattini M, Peterssen G, Pérez-Castillo R, Hevia JL et al (2020) The Talavera Manifesto for Quantum Software Engineering and Programming. QANSWER 2020 QuANtum SoftWare Engineering & pRogramming. Proceedings of the 1st International Workshop on the QuANtum SoftWare Engineering & pRogramming, Talavera de la Reina, Spain, February 11–12, 2020. http://ceur-ws.org/Vol-2561/paper0.pdf
Weder B, Barzen J, Leymann F, Salm M, Vietz D (2020) The quantum software lifecycle. In: Proceedings of the 1st ACM SIGSOFT International Workshop on Architectures and Paradigms for Engineering Quantum Software, pp 2–9
Pérez-Castillo R, Serrano MA, Piattini M (2021) Software modernization to embrace quantum technology. Adv Eng Softw 151:102933
Cross AW, Bishop LS, Smolin JA, Gambetta JM (2017) Open quantum assembly language. arXiv preprint arXiv:1707.03429
Cross AW, Javadi-Abhari A, Alexander T, de Beaudrap N, Bishop LS, Heidel S, Ryan C, Smolin J, Gambetta JM, Johson BR (2021) OpenQASM 3: a broader and deeper quantum assembly language. arXiv:2104.14722v1
Smith RS, Curtis MJ, Zeng WJ (2016) A practical quantum instruction set architecture. arXiv:1608.03355
Ömer B (2005) Classical concepts in quantum programming. Int J Theoretical Phys 44(7):943–955
Mlnarik H (2007) Operational semantics and type soundness of quantum programming language LanQ. arXiv preprint arXiv:0708.0890
Mlnarik H (2008) Semantics of quantum programming language LanQ. Int J Quant Inf 6(Suppl 01):733–738
Abhari AJ, Faruque A, Dousti MJ, Svec L, Catu O, Chakrabati A, Chiang C-F, Vanderwilt S, Black J, Chong F (2012) Scaffold: Quantum programming language. Princeton University, NJ
Abhari AJ, Patil S, Kudrow D, Heckey J, Lvov A, Chong FT, Martonosi M (2015) Scaffcc: Scalable compilation and analysis of quantum programs. Parallel Comput 45:2–17
Pakin S (2016) A quantum macro assembler. In: 2016 IEEE High Performance Extreme Computing Conference (HPEC). IEEE, pp 1–8
Khammassi N, Guerreschi GG, Ashraf I, Hogaboam JW, Almudever CG, Bertels K (2018) cQASM v1.0: towards a common quantum assembly language. arXiv:1805.09607v1
Morrison BC, Landahl AJ, Lobser DS, Rudinger KM, Russo AE, Van Der Wall JW, Maunz P (2020) Just another quantum assembly language (Jaqal). In: 2020 IEEE International Conference on Quantum Computing and Engineering (QCE). IEEE, pp 402–408
Sanders JW, Zuliani P (2000) Quantum programming. In: International Conference on Mathematics of Program Construction. Springer, pp 80–99
Zuliani P (2004) Non-deterministic quantum programming. In: Proceeding QPL 2004. Facoltà di Scienze e Tecnologie Informatiche Libera Università di Bolzano Italy. pp 179–195
Bettelli S, Calarco T, Serafini L (2003) Toward an architecture for quantum programming. Eur Phys J D-Atom Mol Optical Plasma Phys 25(2):181–200
Jia-Fu X, Song F-M, Qian S-J, Dai J-A, Zhang Y-J (2008) Quantum programming language NDQJava. J Softw 19(1):1–8
Purkeypile M (2009) Cove: a practical quantum computer programming framework. PhD Dissertation. Colorado Technical University. https://arxiv.org/abs/0911.2423
Liu X, Kubiatowicz J (2013) Chisel-Q: designing quantum circuits with a scala embedded language. In: 2013 IEEE 31st International Conference on Computer Design (ICCD). IEEE, pp 427–434
Feitosa SS, Vizzotto JK, Piveta EK, Du Bois AR (2016) FJQuantum–a quantum object oriented language. Electron Notes Theoretical Comput Sci 324:67–77
Häner T, Steiger DS, Smelyanskiy M, Troyer M (2016) High performance emulation of quantum circuits. In: SC’16: Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis. IEEE, pp 866–874
Aleksandrowicz G, Alexander T, Barkoutsos P, Bello L, Ben-Haim Y, Bucher D, Cabrera-Hernández FJ, Carballo-Franquis J, Chen A, Chen C-F, Chow JM, Córcoles-Gonzales AD, Cross AJ, Cross A, Cruz-Benito J, Culver C, González SDLP, Torre EDL, Ding D, Dumitrescu E, Duran I, Eendebak P, Everitt M, Sertage IF, Frisch A, Fuhrer A, Gambetta J, Gago BG, Gomez-Mosquera J, Greenberg D, Hamamura I, Havlicek V, Hellmers J, Herok Ł, Horii H, Hu S, Imamichi T, Itoko T, Javadi-Abhari A, Kanazawa N, Karazeev A, Krsulich K, Liu P, Luh Y, Maeng Y, Marques M, Martín-Fernández FJ, McClure DT, McKay D, Meesala S, Mezzacapo A, Moll N, Rodŕıguez DM, Nannicini G, Nation P, Ollitrault P, O’Riordan LJ, Paik H, Pérez J, Phan A, Pistoia M, Prutyanov V, Reuter M, Rice J, Davila AR, Rudy RHP, Ryu M, Sathaye N, Schnabel C, Schoute E, Setia K, Shi Y, Silva A, Siraichi Y, Sivarajah S, Smolin JA, Soeken M, Takahashi H, Tavernelli I, Taylor C, Taylour P, Trabing K, Treinish M, Turner W, Vogt-Lee D, Vuillot C, Wildstrom JA, Wilson J, Winston E, Wood C, Wood S, Wörner S, Akhalwaya IY, Zoufal C (2019) Qiskit: an open-source framework for quantum computing. Scott Aaronson and B. Toth. 2003. Simulation and synthesis of stabilizer quantum circuits
Paolini L, Piccolo M, Zorzi M (2019) QPCF: higher-order languages and quantum circuits. J Autom Reason 63(4):941–966
Killoran N, Izaac J, Quesada N, Bergholm V, Amy M, Weedbrook C (2019) Strawberry fields: a software platform for photonic quantum computing. Quantum 3:129
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
Google AI Quantum team (2018) Cirq. https://github.com/quantumlib/Cirq
Svore K, Geller A, Troyer M, Azariah J, Granade C, Heim B, Kliuchnikov V, Mykhailova M, Paz A, Roetteler M (2018) Q# enabling scalable quantum computing and development with a high-level dsl. In: Proceedings of the Real World Domain Specific Languages Workshop 2018, pp 1–10
Liu S, Wang X, Zhou L, Guan J, Li Y, He Y, Duan R, Ying M (2018) Q |SI ⟩: a quantum programming environment. In: Symposium on Real-Time and Hybrid Systems. Springer, pp 133–164
Bichsel B, Baader M, Gehr T, Vechev M (2020) Silq: A high-level quantum language with safe uncomputation and intuitive semantics. In: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation, pp 286–300
Zhao J (2020) Quantum software engineering: landscapes and horizons. arXiv preprint arXiv:2007.07047
Maymin P (1996) Extending the lambda calculus to express randomized and quantumized algorithms. arXiv preprint quant-ph/9612052
Van Tonder A (2004) A lambda calculus for quantum computation. SIAM J Comput 33(5):1109–1135
Selinger P (2004) Towards a quantum programming language. Math Struct Comput Sci 14(4):527–586
Selinger P (2004) Towards a semantics for higher-order quantum computation. In: Proceedings of the 2nd International Workshop on Quantum Programming Languages, TUCS General Publication No, vol 33, pp 127–143
Selinger P, Valiron B (2006) A lambda calculus for quantum computation with classical control. Math Struct Comput Sci 16(3):527
Altenkirch T, Grattage J (2005) A functional quantum programming language. In: 20th Annual IEEE Symposium on Logic in Computer Science (LICS’05). IEEE, pp 249–258
Mauerer W (2005) Semantics and simulation of communication in quantum programming. arXiv preprint quant-ph/0511145
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
Green AS, Lumsdaine PL, Ross NJ, Selinger P, Valiron B (2013) An introduction to quantum programming in quipper. In: International Conference on Reversible Computation. Springer, Berlin, pp 110–124
Green AS, Lumsdaine PL, Ross NJ, Selinger P, Valiron B (2013) Quipper: a scalable quantum programming language. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI ’13, Seattle, WA, June 16–19. pp 333–342
Wecker D, Svore KM (2014) LIQUi|>: a software design architecture and domain-specific language for quantum computing. arXiv:1402.4467
Rios F, Selinger P (2017) A categorical model for a quantum circuit description language. In: Proceedings 14th International Conference on Quantum Physics and Logic (QPL 2017), pp 164–178
Paolini L, Zorzi M (2017) qPCF: a language for quantum circuit computations. In: International Conference on Theory and Applications of Models of Computation. Springer, Cham, pp 455–469
Gay SJ, Nagarajan R (2004) Communicating quantum processes. In: Proceedings of the 2nd International Workshop on Quantum Programming Languages, pp 91–107
Gay SJ, Nagarajan R (2005) Communicating quantum processes. In: Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp 145–157
Gay SJ (2006) Quantum programming languages: survey and bibliography. Math Struct Comput Sci 16(4):581–600
Jorrand P, Lalire M (2004) From quantum physics to programming languages: a process algebraic approach. In: International Workshop on Unconventional Programming Paradigms. Springer, Berlin, pp 1–16
Lalire M, Jorrand P (2004) A process algebraic approach to concurrent and distributed quantum computation: operational semantics. arXiv preprint quant-ph/0407005
Chakraborty A (2011) QuECT: a new quantum programming paradigm. arXiv preprint 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, POPL 2017, Paris, France, January 18–20. ACM, pp 846–858
Zulehner A, Wille R (2019) Advanced simulation of quantum computations. IEEE Trans Comput-Aided Des Integr Circuits Syst 38(5):848–863
Wille R, Hillmich S, Burgholzer L (2020) JKQ: JKU tools for quantum computing. In: 2020 IEEE/ACM International Conference On Computer Aided Design (ICCAD). IEEE, pp 1–5
Smelyanskiy M, Sawaya NP, Aspuru-Guzik A (2016) qHiPSTER: the quantum high performance software testing environment. arXiv preprint arXiv:1601.07195
Steiger DS, Häner T, Troyer M (2018) ProjectQ: an open source software framework for quantum computing. Quantum 2:49
Burgholzer L, Wille R (2021) QCEC: A JKQ tool for quantum circuit equivalence checking. Softw Impacts 7:100051
Tabakin F, Juliá-Díaz B (2011) QCWAVE–a Mathematica quantum computer simulation update. Comput Phys Commun 182(8):1693–1707
Efthymiou S, Ramos-Calderer S, Bravo-Prieto C, Pérez-Salinas A, García-Martín D, Garcia-Saez A, Latorre JI, Carrazza S (2020) Qibo: a framework for quantum simulation with hardware acceleration. arXiv preprint arXiv:2009.01845
Prousalis K, Konofaos N (2016) QuCirDET: a design and simulation tool for quantum circuits. In: 2016 5th International Conference on Modern Circuits and Systems Technologies (MOCAST). IEEE, pp 1–4
Suzuki Y, Kawase Y, Masumura Y, Hiraga Y, Nakadai M, Chen J, Nakanishi KM, Mitarai K, Imai R, Tamiya S, Yamamoto T, Yan T, Kawakubo T, Nakagawa YO, Ibe Y, Zhang Y, Yamashita H, Yoshimura H, Hayashi A, Fujii K (2020) Qulacs: a fast and versatile quantum circuit simulator for research purpose. arXiv:2011.13524v1
Viamontes GF, Markov IL, Hayes JP (2009) Quantum circuit simulation. Springer
Khammassi N, Ashraf I, Xiang F, Almudever CG, Bertels K (2017) QX: a high-performance quantum computer simulation platform. Proc Design Autom Test Europe 2017:464–469
Huo C (2009) A Bloch sphere animation software using a three dimensional Java simulator. Doctoral dissertation, University of Cincinnati
Omole V, Tyagi A, Carey C, Hanus AJ, Hancock A, Garcia A, Shedenhelm J (2020) Cirq: a python framework for creating, editing, and invoking Quantum circuits. http://sdmay20-08.sd.ece.iastate.edu/docs/Design-Document-v2.pdf
Johan A. Brandhorst-Satzkorn. 2012. A review of freely available quantum computer simulation software.
Radtke T, Fritzsche S (2005) Simulation of n-qubit quantum systems. I. Quantum registers and quantum gates. Comput Phys Commun 173(1–2):91–113
Chen H, Lidar DA (2020). HOQST: Hamiltonian Open Quantum System Toolkit. arXiv preprint arXiv:2011.14046
Srivastava R, Choi I, Cook T, NQIT User Engagement Team (2016) The commercial prospects for quantum computing. Networked Quantum Information Technologies
Glendinning I, Ömer B (2003) Parallelization of the QC-lib quantum computer simulator library. In: International Conference on Parallel Processing and Applied Mathematics. Springer, Berlin, pp 461–468
da Silva Feitosa S, da Silva Bueno JA (2016) Simulating quantum parallelism in CPU and GPU using the LibQuantum library. Communications and Innovations Gazette Magazine 1(2):26–36
Tolba S, Rashad MZ, El-Dosuky MA (2013) Q#, a quantum computation package for the .NET platform. arXiv preprint arXiv:1302.5133
Schneider SD (2000) Quantum systems simulator. Doctoral dissertation, Massachusetts Institute of Technology
McKay DC, Alexander T, Bello L, Biercuk MJ, Bishop L, Chen J, Chow JM, Córcoles AD, Egger D, Filipp S, Gomez J, Hush M, Javadi-Abhari A, Moreda D, Nation P, Paulovicks B, Winston E, Wood CJ, Wootton J, Gambetta JM (2018) Qiskit backend specifications for OpenQASM and OpenPulse experiments. arXiv preprint arXiv:1809.03452
McCubbin CB (2000). Openquacs, an open-source quantum computation simulator in maple. Doctoral dissertation, University of Maryland, Baltimore County
Caraiman S, Archip A, Manta V (2009) A grid enabled quantum computer simulator. In: 2009 11th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing. IEEE, pp 189–196
Nielsen E, Gao X, Kalashnikova I, Muller RP, Salinger AG, Young RW (2013) QCAD simulation and optimization of semiconductor double quantum dots. Technical report. Sandia National Laboratories
Kelly A (2018) Simulating quantum computers using OpenCL. arXiv preprint arXiv:1805.00988
Zagorodko PV (2020) Research of possibilities of quantum programming for realization of tasks of machine learning. Doctoral dissertation
Juliá-Díaz B, Burdis JM, Tabakin F (2006) QDENSITY—a Mathematica quantum computer simulation. Comput Phys Commun 174(11):914–934
Moran CC (2016). Quintuple: a python 5-qubit quantum computer simulator to facilitate cloud quantum computing. arXiv preprint arXiv:1606.09225
Altenkirch T, Green AS (2010) The quantum IO monad. Semantic Tech Quantum Computation:173–205
Cross AW (2018) The IBM Q experience and QISKit open-source quantum computing software. In: APS March Meeting Abstracts, vol 2018. pp L58-003
Miller MD, Thornton MA (2006) QMDD: a decision diagram structure for reversible and quantum circuits. In: 36th International Symposium on Multiple-Valued Logic (ISMVL’06). IEEE, pp 30–30
Naeem W, Chuhdhry Y (2019) Q-Studio. Doctoral dissertation, Department of Computer Science, COMSATS University Islamabad, Lahore campus
Beals TR (2008) Quantum communication and information processing. University of California, Berkeley
Glos A, Miszczak JA, Ostaszweski M. QSWalk.jl: Julia package for quantum stochastic walks analysis. arXiv preprint arXiv:1801.01294
Feito A (2008) Quantavo: a maple toolbox for linear quantum optics. arXiv preprint arXiv:0806.2171
Terörde M (2019) Registry-Spuren verursacht durch die Quantenprogrammiersprache Q
Dekant H, Tregillus H, Tucci R, Yin T (2019). artiste-qb-net/quantum-fog: Python tools for analyzing both classical 29 and quantum Bayesian Networks [Electronic resource]. https://github.com/artiste-qb-net/quantum-fog
Ivancova O, Korenkov V, Tyatyushkina O, Ulyanov S, Fukuda T (2020) Quantum supremacy in end-to-end intelligent IT. Pt. I: Quantum software engineering-quantum gate level applied models simulators. Syst Anal Sci Educ 1:52–84
Amy M, Gheorghiu V (2020) staq-a full-stack quantum processing toolkit. Quantum Sci Technol
Hincks N, Granade CE, Borneman T, Cory DG (2015) Controlling quantum devices with nonlinear hardware. Physical Rev Appl 4(2):024012
Tóth G (2008) QUBIT4MATLAB V3.0: a program package for quantum information science and quantum optics for MATLAB. Comput Phys Commun 179(6):430–437
Jones T, Brown A, Bush I, Benjamin SC (2019) QuEST and high performance simulation of quantum computers. Scientific Rep 9(1):1–11
Patrzyk J (2014) Graphical and programming support for simulations of quantum computations. Master of Science Thesis supervised by Katarzyna Rycerz
Patrzyk J, Patrzyk B, Rycerz K, Bubak M (2015) Towards a novel environment for simulation of quantum computing. Comput Sci 16(1):103–129
Kottmann JS, Alperin-Lea S, Tamayo-Mendoza T, Cervera-Lierta A, Lavigne C, Yen T-C, Verteletskyi V, Schleich P, Anand A, Degroote M, Chaney S, Kesibi M, Curnow NG, Solo B, Tsilimigkounakis G, Zendejas-Morales C, Izmaylov AF, Aspuru-Guzik A (2020) TEQUILA: a platform for rapid development of quantum algorithms. arXiv:2011.03057v1
Gill SS, Kumar A, Singh H, Singh M, Kaur K, Usman M, Buyya R (2020) Quantum computing: a taxonomy, systematic review and future directions. arXiv preprint arXiv:2010.15559
Hevia JL, Peterssen G, Ebert C, Piattini M (2021) Quantum computing. IEEE Softw 38(5):7–15
Farhi E, Goldstone J, Gutmann S (2014) A quantum approximate optimization algorithm. arXiv preprint arXiv:1411.4028
LaRose R (2019) Overview and comparison of gate level quantum software platforms. Quantum 3:130
Piattini M, Serrano M, Pérez-Castillo R, Peterssen G, Hevia JL (2021) Towards a quantum software engineering. IT Professional, IEEE 23(1):62–66. https://doi.org/10.1109/MITP.2020.3019522
Piattini M, Peterssen G, Pérez-Castillo R (2020) Quantum computing: a new software engineering golden age. ACM SIGSOFT Softw Eng Newsl 45(3):12–14
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this chapter
Cite this chapter
Cruz-Lemus, J.A., Serrano, M.A. (2022). Quantum Software Tools Overview. In: Serrano, M.A., Pérez-Castillo, R., Piattini, M. (eds) Quantum Software Engineering. Springer, Cham. https://doi.org/10.1007/978-3-031-05324-5_12
Download citation
DOI: https://doi.org/10.1007/978-3-031-05324-5_12
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-05323-8
Online ISBN: 978-3-031-05324-5
eBook Packages: Computer ScienceComputer Science (R0)