Quantum programming: Difference between revisions

Content deleted Content added
See also: section added
Rescuing 2 sources and tagging 1 as dead.) #IABot (v2.0.9.5
Line 78:
 
==== Quantum Development Kit ====
A project developed by [[Microsoft]]<ref>{{Cite web|url=https://learn.microsoft.com/en-us/azure/quantum/|title=Azure Quantum documentation, QDK & Q# API reference - Azure Quantum|website=learn.microsoft.com}}</ref> as part of the [[.NET Framework]]. Quantum programs can be written and run within [[Visual Studio]] and [[VSCode]] using the quantum programming language Q#. Programs developed in the QDK can be run on Microsoft's [[Microsoft Azure Quantum| Azure Quantum]],<ref>{{Cite web|url=https://learn.microsoft.com/en-us/azure/quantum/overview-azure-quantum|title=What is Azure Quantum? - Azure Quantum|website=learn.microsoft.com|date=January 11, 2023 }}</ref> and run on quantum computers from [[Quantinuum]],<ref name="auto1"/> [[IonQ]], and [[Pasqal]].<ref name="auto">{{Cite web|url=https://pasqal.io/|title=PASQAL|website=PASQAL}}{{Dead link|date=July 2025 |bot=InternetArchiveBot |fix-attempted=yes }}</ref>
 
==== Strawberry Fields ====
Line 145:
 
==== Scaffold ====
Scaffold is C-like language, that compiles to QASM and OpenQASM. It is built on top of the [[LLVM]] Compiler Infrastructure to perform optimizations on Scaffold code before generating a specified instruction set.<ref>{{cite web |last1=Javadi-Abhari |first1=Ali |title=Scaffold: Quantum Programming Language |url=https://www.cs.princeton.edu/research/techreps/TR-934-12 |website=Princeton University-Department of Computer Science |publisher=Princeton University |access-date=22 September 2020 |archive-date=September 20, 2020 |archive-url=https://web.archive.org/web/20200920090057/https://www.cs.princeton.edu/research/techreps/TR-934-12 |url-status=dead }}</ref><ref>{{cite journal |last1=Litteken |first1=Andrew |title=An updated LLVM-based quantum research compiler with further OpenQASM support |journal=Quantum Science and Technology |date=28 May 2020 |volume=5 |issue=3 |page=034013 |doi=10.1088/2058-9565/ab8c2c |bibcode=2020QS&T....5c4013L |osti=1803951 |s2cid=219101628 |doi-access=free }}</ref>
 
==== Silq ====
Line 151:
 
=== Functional languages ===
Efforts are underway to develop [[functional programming languages]] for [[quantum computing]]. Functional programming languages are well-suited for reasoning about programs. Examples include Selinger's QPL,<ref name="qpl">Peter Selinger, [http://www.mathstat.dal.ca/~selinger/papers.html#qpl "Towards a quantum programming language"], Mathematical Structures in Computer Science 14(4):527-586, 2004.</ref> and the [[Haskell]]-like language QML by Altenkirch and Grattage.<ref name="qml1">[http://www.cs.nott.ac.uk/~jjg/qml.html Jonathan Grattage: QML Research<!-- Bot generated title -->] {{Webarchive|url=https://web.archive.org/web/20080331114452/http://www.cs.nott.ac.uk/~jjg/qml.html |date=March 31, 2008 }} (website)</ref><ref name="qml2">T. Altenkirch, V. Belavkin, J. Grattage, A. Green, A. Sabry, J. K. Vizzotto, [http://sneezy.cs.nott.ac.uk/qml QML: A Functional Quantum Programming Language] {{webarchive|url=https://web.archive.org/web/20060710201728/http://sneezy.cs.nott.ac.uk/QML/ |date=2006-07-10 }} (website)</ref> Higher-order quantum programming languages, based on [[lambda calculus]], have been proposed by van Tonder,<ref>Andre van Tonder, [https://dx.doi.org/10.1137/S0097539703432165 "A Lambda Calculus for Quantum Computation"], SIAM J. Comput., 33(5), 1109–1135. (27 pages), 2004. Also available from [https://arxiv.org/abs/quant-ph/0307150 arXiv:quant-ph/0307150]</ref> Selinger and Valiron<ref>Peter Selinger and Benoît Valiron, [http://www.mathstat.dal.ca/~selinger/papers/#qlambda "A lambda calculus for quantum computation with classical control"], Mathematical Structures in Computer Science 16(3):527-552, 2006.</ref> and by Arrighi and Dowek.<ref>Pablo Arrighi, Gilles Dowek, [http://www.arxiv.org/abs/quant-ph/0612199 "Linear-algebraic lambda-calculus: higher-order, encodings and confluence"], 2006</ref>
 
==== LIQUi|> ====