SCIENTIA SINICA Informationis, Volume 47, Issue 10: 1300-1315(2017) https://doi.org/10.1360/N112017-00095

$Q|SI\rangle $ : a quantum programming environment

More info
  • ReceivedJun 4, 2017
  • AcceptedJun 20, 2017
  • PublishedOct 13, 2017


This paper describes a quantum programming environment called $Q|SI\rangle $ . It is a platform created in the .NET language to support quantum programming as a quantum extension of the $\mathbf{while}$-language. This platform includes a compiler for the quantum $\mathbf{while}$-language and a chain of tools for the simulation of quantum computations, optimization of quantum circuits, and analysis and verification of quantum programs. Throughout the paper, $Q|SI\rangle $ is used to simulate quantum behaviors on classical platforms and demonstrate the combination of components. The scalable framework allows users to program customized functions on the platform. The compiler works as the core of $Q|SI\rangle $ , bridging the gap between quantum hardware and quantum software. The built-in decomposition algorithms enable universal quantum computation on current quantum hardware.


[1] Shor P W, Preskill J. Simple Proof of Security of the BB84 Quantum Key Distribution Protocol. Phys Rev Lett, 2000, 85: 441-444 CrossRef PubMed ADS Google Scholar

[2] Grover L K. A fast quantum mechanical algorithm for database search. In: Proceedings of the 28th Annual ACM Symposium on Theory of Computing, Philadelphia, 1996. 212--219. Google Scholar

[3] Harrow A W, Hassidim A, Lloyd S. Quantum Algorithm for Linear Systems of Equations. Phys Rev Lett, 2009, 103: 150502 CrossRef PubMed ADS arXiv Google Scholar

[4] Ömer B. A Procedural Formalism for Quantum Computing. Wien: Technical University of Vienna, 1998. Google Scholar

[5] Selinger P. A brief survey of quantum programming languages. In: Proceedings of International Symposium on Functional and Logic Programming. Berlin: Spring, 2004. 1--6. Google Scholar

[6] Bettelli S, Calarco T, Serafini L. Toward an architecture for quantum programming. Eur Phys J D-Atomic Mol Opt Plasma Phys, 2003, 25: 181--200. Google Scholar

[7] Sanders J W, Zuliani P. Quantum programming. In: Proceedings of the 5th International Conference on Mathematics of Program Construction. Berlin: Springer, 2000. 80--99. Google Scholar

[8] Green A S, Lumsdaine P L F, Ross N J. Quipper. SIGPLAN Not, 2013, 48: 333-342 CrossRef Google Scholar

[9] Wecker D, Svore K M. Liquid: a software design architecture and domain-specific language for quantum computing,. arXiv Google Scholar

[10] JavadiAbhari A, Patil S, Kudrow D, et al. Scaffcc: a framework for compilation and analysis of quantum computing programs. In: Proceedings of the 11th ACM Conference on Computing Frontiers, Cagliari, 2014. Google Scholar

[11] JavadiAbhari A, Patil S, Kudrow D. ScaffCC: Scalable compilation and analysis of quantum programs. Parallel Computing, 2015, 45: 2-17 CrossRef Google Scholar

[12] Smelyanskiy M, Sawaya N P D, Aspuru-Guzik A. qHiPSTER: the quantum high performance software testing environment,. arXiv Google Scholar

[13] Ying M S. Floyd-hoare logic for quantum programs. ACM Trans Program Lang Syst, 2011, 33: 1--49. Google Scholar

[14] Ying M S. Foundations of quantum programming. In: Proceedings of the 8th Asian Symposium on Programming Languages and Systems, Shanghai, 2010. 16--20. Google Scholar

[15] Svore K M, Aho A V, Cross A W, et al. A layered software architecture for quantum computing design tools. IEEE Comput, 2006, 39: 74--83. Google Scholar

[16] Ying M, Feng Y. Quantum loop programs. Acta Informatica, 2010, 47: 221-250 CrossRef Google Scholar

[17] Ying M, Yu N, Feng Y. Verification of quantum programs. Sci Comp Programming, 2013, 78: 1679-1700 CrossRef Google Scholar

[18] Ying M S, Ying S G, Wu X D. Invariants of quantum programs: characterisations and generation. In: Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, Paris, 2017. 818--832. Google Scholar

[19] Liu T, Li Y J, Wang S L, et al. A theorem prover for quantum hoare logic and its applications. Comput Sci, 2016,. arXiv Google Scholar

[20] Nielsen M A, Chuang I L. Quantum Computation and Quantum Information. Cambridge: Cambridge University Press, 2010. Google Scholar

[21] Shende V V, Bullock S S, Markov I L. Synthesis of quantum-logic circuits. IEEE Trans Comput-Aided Des Integr Circuits Syst, 2006, 25: 1000-1010 CrossRef Google Scholar

[22] Dawson C M, Nielsen M A. The solovay-kitaev algorithm. Quant Inf Comput, 2006, 6: 81--95. Google Scholar

[23] Ying M, Feng Y. A flowchart language for quantum programming. IIEEE Trans Software Eng, 2011, 37: 466-485 CrossRef Google Scholar

[24] Smith R S, Curtis M J, Zeng W J. A practical quantum instruction set architecture,. arXiv Google Scholar

[25] Barenco A, Bennett C H, Cleve R. Elementary gates for quantum computation. Phys Rev A, 1995, 52: 3457-3467 CrossRef ADS Google Scholar

[26] Devroye L. Sample-based non-uniform random variate generation. In: Proceedings of the 18th Conference on Winter Simulation, Washington, 1986. 260--265. Google Scholar

[27] Bennett C H, Brassard G. Quantum cryptography: Public key distribution and coin tossing. Theor Comp Sci, 2014, 560: 7-11 CrossRef Google Scholar

Copyright 2020 Science China Press Co., Ltd. 《中国科学》杂志社有限责任公司 版权所有