C++ programming language for an abstract massively parallel SIMD architecture
这项工作的目的是定义和实现一个扩展的C++语言,以支持SIMD编程范式。C++程序设计语言已被扩展以表达由中央控制处理器和N维环形数字处理器阵列组成的抽象SIMD机的所有潜力。很少有扩展被添加到标准C++中,目的是最大限度地减少程序员学习新语言的努力,并保持编译代码的高性能。所提出的语言已实现为一个移植的GNU C++编译器上的SIMD超级计算机。
2000-05-19 cs.PL
Models of quantum computation and quantum programming languages
本文的目的是介绍量子信息论中使用的基本计算模型。我们回顾了量子图灵机、量子电路和量子随机存取机(QRAM)的各种模型以及它们的经典对应物。我们还介绍了量子程序设计语言,这是使用QRAM模型开发的。我们回顾了几种现有的量子程序设计语言的语法,并讨论了它们的特点和局限性。
2011-12-03 cs.PL quant-ph
Extending scientific computing system with structural quantum programming capabilities
我们提出了一个基本的高级结构用于开发量子程序设计语言。所提出的结构是许多现有量子程序设计语言中常用的,我们使用基于QCL量子程序设计语言的量子伪码来描述它们。我们还介绍了在科学计算的GNU Octave语言中引入的结构的实现。在实现中使用的程序可作为一个包量子倍频程,提供了一个函数库,这有利于量子计算的模拟。该软件包还允许将高级编程概念纳入GNU Octave和Matlab的仿真中。因此,它将高级量子程序设计语言特有的功能与现代科学计算系统中常见的高效计算例程的全部调色板连接起来。为了呈现所描述的包的主要特征,我们提供了所选择的量子算法的实现。我们还展示了如何量子误差可以考虑在量子算法的模拟使用量子倍频程包。这是可能的,这要归功于对密度矩阵进行操作的能力。
2010-06-08 cs.PL quant-ph
QuECT: A New Quantum Programming Paradigm
量子计算构成了计算机科学的一个迅速扩展的子领域。有效的量子编程语言的可用性促进了量子算法的开发,文献中已经提出了大量的方法,从基于GUI的简单工具到精心设计的独立编程语言。在本文中,我们提出了一种新的范例称为量子嵌入电路技术(QuECT),允许程序员嵌入一个电路图在一个经典的“主机”语言。该范式可以在任何现代古典语言中实现。作者使用Java开发了一个原型。
2011-04-04 cs.PL quant-ph
Semantics and simulation of communication in quantum programming
我们提出了量子编程语言cQPL,它是QPL的扩展版本[P. Selinger,Math.Struct.in Comp.Sci. 14(4):527-586,2004]。它能够进行量子通信,并且可以用来制定所有可能的量子算法。此外,它拥有基于超算子偏序的指称语义,并使用广义希尔伯特空间上的不动点来形式化(除了量子编程语言预期的所有标准特征之外)任意数量的参与者之间的经典和量子数据的交换。此外,我们提出了一个cQPL编译器,生成量子模拟器的代码的实现。
2005-11-15 cs.PL quant-ph
MCBeth: A Measurement Based Quantum Programming Language
基于门的量子程序设计语言无处不在,但基于测量的语言目前只存在于纸上。这项工作介绍了MCBeth,量子程序设计语言,它允许程序员直接表示,编程和模拟基于测量和集群状态计算的测量演算的基础上。虽然MCBeth程序旨在直接在硬件上执行,但为了利用当前的机器,我们还提供了一个编译器来编译基于门的指令。我们认为,与基于门的量子计算相比,基于测量的量子计算在实现常见的量子算法和分布式量子计算方面具有明显的优势。
2022-06-25 cs.PL quant-ph
Programming with Quantum Mechanics
量子计算是一种新兴的范例,它为指数计算加速开辟了一个新时代。尽管如此,量子计算机还没有准备好用于商业用途。然而,今天必须对将开发量子加速解决方案的劳动力进行训练和资格认证,以便在未来获得量子优势。本教程给出了量子计算的广泛观点,抽象了大部分的数学形式主义,并提出了量子编程语言Ket的实践。目标读者是量子计算专业的本科生和研究生--学习本教程没有先决条件。
2022-10-27 cs.PL quant-ph
Cove: A Practical Quantum Computer Programming Framework
虽然还没有商业存在,量子计算机有能力解决某些类别的问题,这些问题在现有的基于图灵机的(经典)计算机上无法有效解决。要使量子计算机发挥作用,必须存在对其进行编程的方法。目前存在对量子计算机进行编程的提议,但所有现有的量子计算机都存在缺陷,使得它们在商业软件开发环境中不切实际。Cove是一个用于编程量子计算机的框架,它扩展了现有的经典语言以允许量子计算,从而为商业软件开发人员提供了一个量子计算工具包。由于Cove的目标用户是商业开发人员,因此它是一个面向对象的框架,可用于多种语言,并强调完整的文档。Cove的重点并不是软件产品,而是使量子计算对普通开发人员实用的基本概念。
2009-11-12 cs.PL quant-ph
Qumin, a minimalist quantum programming language
在这项工作中,我们介绍Qumin,一种新的量子程序设计语言,重点是提供一个易于使用的,极简的,高层次的,易于扩展的平台,量子编程。Qumin的设计集中于通过使用两种子语言来涵盖经典和量子计算之间的各种交互:一种是处理经典准备和控制的非类型子语言,另一种是显式处理量子例程的线性类型子语言。这使得语言的经典部分可以自由地用于一般编程,同时对量子部分施加限制,以执行量子计算的规则,如量子比特的不可克隆。我们描述了语言的理论基础,在lambda演算和线性类型系统方面,以及更实际的问题,如算法和有用的编程工具,如矩阵和Oracle生成器,简化了程序的经典和量子片段的相互作用的实现。最后,我们提供了一个实验性的开源实现的解释器,typechecker和相关工具的语言(可以在\url{https://github.com/wintershammer/QImp}中找到)。
2017-04-14 cs.PL quant-ph
A Programming Language For Quantum Oracle Construction
许多量子程序需要电路进行加法、减法和逻辑运算。这些电路可以封装在称为预言机的例程中。然而,使用当前的框架编写Oracle代码可能会很繁琐。为了解决这个问题,作者开发了高级Oracle描述语言(HODL)-一种用于量子计算机的C风格编程语言-以简化此类电路的创建。编译器翻译用HODL编写的高级代码,并将其转换为OpenQASM,OpenQASM是一种基于门的量子汇编语言,可在IBM Quantum Systems和兼容的模拟器上运行。
2021-10-24 cs.PL quant-ph
$Q|SI\rangle$: A Quantum Programming Environment
介绍了一个量子程序设计环境$Q|SI\rangle$。它是一个嵌入.Net语言的平台,支持使用$\mathbf{while}$语言的量子扩展进行量子编程。该平台的框架包括一个量子$\mathbf{while}$语言的编译器和一套用于模拟量子计算、优化量子线路以及分析和验证量子程序的工具。在整个文件中,使用$Q|SI\rangle$模拟量子行为的经典平台与组件的组合进行了演示。可扩展的框架允许用户在平台上编程定制功能。编译器是$Q|SI\rangle$的核心,它在量子硬件和量子软件之间架起了一座桥梁。内置的分解算法使通用的量子计算在现有的量子硬件上。
2017-10-26 cs.PL quant-ph
Quantum Programming Without the Quantum Physics
本文提出了一种无需量子物理基础的量子编程范式,通过引入负概率随机数生成器,使量子编程更易于理解和实现。
2025-11-26 cs.PL quant-ph
A Survey of Quantum Programming Languages
University of California, Los Angeles(加州大学洛杉矶分校)
本文提出语言分类框架,调查十种流行量子编程语言,通过概念与实验比较,总结未来语言设计面临的挑战。
2026-06-26 cs.PL quant-ph
SpaDA: A Spatial Dataflow Architecture Programming Language
Noéda Research(诺埃达研究);Lawrence Livermore National Laboratory(劳伦斯利弗莫尔国家实验室);ETH Zurich(苏黎世联邦理工学院)
SpaDA为空间数据流架构提供高阶编程接口,通过抽象低层细节,实现对数据布局、数据流模式和异步操作的精确控制,使复杂并行模式在更少代码下实现高性能计算。
2026-04-27 cs.DC cs.PL
A tutorial introduction to quantum circuit programming in dependently typed Proto-Quipper
本文介绍了带线性依赖类型的实验性量子电路编程语言 Proto-Quipper-D,通过示例展示了依赖类型在构建正确量子电路、实现电路族编程及解决垃圾量子比特类型安全取消计算问题方面的作用。
2020-12-12 cs.PL quant-ph
Quantum Recursive Programming with Quantum Case Statements
本文提出利用量子 case 语句递归定义大型酉变换的量子递归程序设计方案,定义配套语言与形式语义,并通过示例展示其可优雅表达量子算法。
2023-11-03 cs.LO cs.PL quant-ph
Qrisp: A Framework for Compilable High-Level Programming of Gate-Based Quantum Computers
针对量子计算高级编程抽象不足的问题,提出Qrisp框架,通过经典范式启发的编程抽象实现可编译至电路级的量子编程,提升编译效率并降低量子资源需求。
2024-06-20 cs.PL quant-ph
Mix-of-Language-Experts Architecture for Multilingual Programming
University of Waterloo(滑铁卢大学)
本文提出MoLE架构,通过共享与语言特定LoRA模块结合,在多语言编程中平衡效率与专业化,实现参数高效且准确率优于单一共享模型。
2025-06-18 cs.CL cs.PL cs.SE
High Level Programming for Heterogeneous Architectures
这项工作提出了一种努力,抽象的高级编程和OpenCL之间的差距,通过扩展现有的高级Java编程框架(APARAPI),基于OpenCL,使它可以用来编程FPGA在一个高层次的抽象和增加易用性的可编程性。我们运行几个真实世界的算法来评估的性能框架上的低端和高端的系统。在低端和高端的系统上,我们分别观察到运行NBody模拟时高达78- 80%的功耗降低和4.8 - 5.3倍的速度提升,以及运行在Hadoop框架和APARAPI之上的KMeans、MapReduce算法时高达65- 80%的功耗降低和6.2 - 7倍的速度提升。
2014-08-21 cs.PF cs.PL
High-level quantum algorithm programming using Silq
本文探讨了高级量子编程语言 Silq 的优势与特性,分享了使用其设计和实现高级量子算法的见解,展示了其在量子编程中的实际应用与优势。
2025-05-31 cs.DS cs.PL quant-ph
Imperative Quantum Programming with Ownership and Borrowing in Guppy
本文提出一种结合线性类型与指令式语义的量子类型系统,并在 Guppy 语言中实现,以在指令式量子编程中保持安全保证。
2025-10-15 cs.PL cs.SE quant-ph
Programming with Quantum Communication
这项工作开发了一个正式的框架,用于指定,实现和分析量子通信协议。我们提供的工具,开发简单的证明和分析程序,涉及通信,无论是通过量子信道和展示LOCC(本地操作,经典通信)的范例。
2009-07-29 cs.LO cs.PL quant-ph
Is Productivity in Quantum Programming Equivalent to Expressiveness?
针对量子编程范式间表达能力差异不明确的问题,通过比较宿主型(如Qiskit)和独立型(如Q#)量子语言对核心量子算法的实现,以LOC、CC、HC为生产力指标,发现不同范式在表达能力与生产力间存在显著权衡,强调了语言设计的重要性。
2025-04-17 cs.PL cs.SE quant-ph
OpenQL : A Portable Quantum Programming Framework for Quantum Accelerators
随着量子算法解决棘手的经典问题的潜力,量子计算正在迅速发展,更多的算法正在开发和优化。使用高级语言表达这些量子算法,并使其在量子处理器上可执行,同时抽象出硬件细节是一项具有挑战性的任务。首先,量子编程语言应该提供一个直观的编程接口来描述这些算法。然后,编译器必须将程序转换为量子线路,优化它并将其映射到目标量子处理器,以考虑硬件约束,例如支持的量子操作,量子位连接性和控制电子器件限制。在本文中,我们提出了一个名为OpenQL的量子编程框架,它包括一个高级量子编程语言及其相关的量子编译器。我们介绍了OpenQL的编程接口,我们描述了编译器的不同层,以及我们如何在不同的量子位技术上提供可移植性。我们的实验表明,OpenQL允许在两种不同的量子比特技术上执行相同的高级算法,即超导量子比特和Si-Spin量子比特。除了可执行代码外,OpenQL还生成一个中间量子汇编代码(cQASM),它与技术无关,可以使用QX模拟器进行模拟。
2020-05-27 cs.PL cs.SE quant-ph
A Survey of Quantum Programming Languages: History, Methods, and Tools
量子计算机编程是从量子计算、计算机科学、数学(特别是量子逻辑、lambda演算和线性逻辑)的多学科研究中出现的一个新的学科领域,并且工程试图构建第一台非平凡的量子计算机。本文简要回顾了大约在2007年底为量子计算机编程的历史、方法和提出的工具。它的目的是提供一个广泛的,但非详尽的工作,导致目前的最先进的量子计算机编程。此外,它试图分析量子程序员所需的编程工具,使用这种分析来预测该领域的发展方向,并为量子程序设计语言工具的进一步发展提出建议。
2008-04-07 cs.PL
Qimaera: Type-safe (Variational) Quantum Programming in Idris
变分量子算法是经典-量子混合算法,其中经典和量子计算协同工作以解决计算问题。这些算法为设计合适的程序设计语言带来了有趣的挑战。在本文中,我们介绍Qimaera,这是一组库的Idris 2程序设计语言,使程序员实现(变分)量子算法的优雅的Idris语言的全部力量与量子编程原语,我们介绍同步工作。Idris的两个关键要素使这成为可能:(1)依赖类型,允许我们实现幺正(即可逆和可控)量子操作;(2)线性,允许我们对量子操作的执行进行细粒度控制,确保遵守量子力学定律。我们证明了Qimaera是适合变分量子编程提供实现的两个最突出的变分量子算法- QAOA和VQE。据我们所知,这是这些算法在类型安全框架中的第一个实现。
2021-11-21 cs.LO cs.PL quant-ph
An Introduction to Quantum Programming in Quipper
Quipper是最近发展起来的一种用于表达量子计算的程序设计语言。本文通过演示如何使用它的一些关键特性,对该语言进行了简要的教程介绍。我们说明了许多Quipper的语言功能,通过开发几个著名的量子计算的例子,包括量子隐形传态,量子傅立叶变换,和量子电路。
2013-04-19 cs.ET cs.PL quant-ph
Making Neural Programming Architectures Generalize via Recursion
University of California, Berkeley(加州大学伯克利分校)
从经验上讲,试图从数据中学习程序的神经网络表现出较差的泛化能力。此外,传统上很难推理出这些模型的行为超出了一定的输入复杂性水平。为了解决这些问题,我们提出用一个关键的抽象来增强神经架构:递归。作为一个应用程序,我们实现了递归神经程序员解释器框架上的四个任务:小学加法,冒泡排序,拓扑排序和快速排序。我们表现出优越的推广性和可解释性与少量的训练数据。递归将问题分成更小的部分,并大大减少了每个神经网络组件的域,使其易于证明整个系统行为的保证。我们的经验表明,为了使神经架构能够鲁棒地学习程序语义,有必要引入递归这样的概念。
2017-04-21 cs.LG cs.NE cs.PL
Quipper: A Scalable Quantum Programming Language
量子算法领域是充满活力的。尽管如此,目前仍然缺乏用于在实际规模上描述量子计算的程序设计语言,即,而不仅仅是玩具问题。我们解决这个问题,通过引入Quipper,一个可扩展的,表达,功能,高阶量子程序设计语言。Quipper已经被用来编写一系列不同的非平凡量子算法,并且可以使用数万亿个门来生成量子门表示。它面向一种使用经典计算机控制量子设备的计算模型,但不依赖于任何特定的量子硬件模型。Quipper已经被证明是有效且易于使用的,并为使用形式化方法来分析量子算法打开了大门。
2013-04-11 cs.ET cs.PL quant-ph
Performance vs Programming Effort between Rust and C on Multicore Architectures: Case Study in N-Body
历史上,Fortran和C一直是高性能计算(HPC)中的默认程序设计语言。在这两种情况下,程序员都可以使用原语和函数来操纵系统内存并直接与底层硬件交互,从而在响应时间和资源使用方面实现高效的代码。另一方面,在这些类型的语言中生成可维护和可扩展的代码是一个真正的挑战。2010年,Rust作为一种为并发和安全应用程序设计的新程序设计语言出现,它采用了过程式,面向对象和函数式语言的特性。在其设计原则中,Rust的目标是在效率方面与C相匹配,但同时提高代码安全性和生产力。本文介绍了C和Rust在性能和编程工作方面的比较研究,选择作为案例研究的N个计算体(N-Body),在HPC社区的一个流行的问题的模拟。基于实验工作,可以确定Rust是一种减少编程工作量的语言,同时保持可接受的性能水平,这意味着它是C for HPC的可能替代品。
2021-10-19 cs.DC cs.PL cs.SE
Model-View-Update-Communicate: Session Types meet the Elm Architecture
会话类型是通信信道端点的类型规程,它允许静态地检查对协议的一致性。安全地实现会话类型需要线性,通常以线性类型系统的形式。不幸的是,线性类型很难与图形用户界面(GUI)集成,而且迄今为止,大多数使用会话类型的程序都是命令行应用程序。在本文中,我们提出了第一个原则性的集成会话类型和GUI开发的模型-视图-更新(MVU)架构的基础上,率先由榆树程序设计语言。我们介绍了MVU体系结构的第一个形式化模型$λ_{\textsf{MVU}}$,并证明了它的合理性。通过使用Elm中的\emph{commands}扩展$λ_{\textsf{MVU}}$,以及\emph{linearity}和\emph{model transitions},我们展示了会话类型和GUI编程的第一个正式集成。我们实现我们的方法在链接的Web程序设计语言,并显示的例子,包括两个因素的身份验证工作流和多房间聊天服务器。
2020-05-29 cs.PL
Differentiable Quantum Programming with Unbounded Loops
Institute of Software, Chinese Academy of Sciences(中国科学院软件研究所);University of Chinese Academy of Sciences(中国科学院大学);Tsinghua University(清华大学);University of Maryland(马里兰大学)
变分量子应用的出现导致了量子计算中自动微分技术的发展。最近,Zhu等人(PLDI 2020)制定了具有有界循环的可微量子编程,为训练量子变分应用程序提供了一个通过量子手段进行可扩展梯度计算的框架。然而,有前途的参数化量子应用,例如,由于无界循环的自然参与,量子行走和酉实现不能在现有框架中训练。为了填补这一空白,我们提供了第一个具有无界循环的可微量子编程框架,包括新设计的微分规则,代码转换及其正确性证明。在技术上,我们引入了一个随机估计的衍生工具,以处理无穷和的微分无界循环,其适用性在经典和概率规划进行了讨论。我们使用Python和Q#实现了我们的框架,并展示了合理的示例效率。通过广泛的案例研究,我们展示了我们的框架在自动识别几个参数化量子应用程序的接近最佳参数方面的令人兴奋的应用。
2022-11-08 cs.LG cs.PL quant-ph
Quantum Programming with Inductive Datatypes: Causality and Affine Type Theory
程序设计语言中的归纳数据库允许用户定义有用的数据结构,如自然数、列表、树等。在本文中,我们将展示如何归纳数据库可以添加到量子程序设计语言QPL。我们构建了一个健全的分类模型的语言,并通过这样做,我们提供了第一个详细的语义处理用户定义的归纳数据在量子编程。我们还表明,我们的指称解释是不变的大步骤减少,从而建立另一个新的结果量子编程。与经典的编程相比,这个属性是相当困难的证明,我们展示了它的有用性,它如何立即意味着在所有类型的计算充分。为了进一步巩固我们的结果,我们的语义完全基于冯诺依曼代数的物理自然模型,冯诺依曼代数是物理学家用来研究量子力学的数学结构。
2019-10-21 cs.LO cs.PL math.CT
Alternation in Quantum Programming: From Superposition of Data to Superposition of Programs
我们提取一个新的量子编程范式-叠加程序-从一类流行的量子算法,即量子行走算法的设计思想。量子行走作为一种计算模型的普适性保证了这种范式的普遍性。然后提出了一种新的量子程序设计语言QGCL来支持程序叠加的范式。这种语言可以被看作是Dijkstra的GCL(守护命令语言)的量子扩展。令人惊讶的是,GCL中的交替在量子环境中分裂为两个不同的概念:经典交替(量子程序)和量子交替,后者是第一次在QGCL中引入。量子交替是实现程序叠加范式的关键程序结构。QGCL的指称语义是通过引入一种新的数学工具-算子值函数的保护复合来定义的。然后直接导出QGCL的最弱前提语义。另一个非常有用的程序构造,在实现量子编程范式的叠加程序,称为量子选择,可以很容易地定义在量子交替。通过定义局部变量的概念,阐明了量子选择与概率选择之间的关系。我们推导出一个家庭的代数法律QGCL程序,可用于程序验证,转换和编译。QGCL的表达能力说明了几个例子,各种变体和推广的量子行走方便地表示使用量子交替和量子选择。我们相信,具有量子交替和选择的量子编程将在进一步利用量子计算的能力方面发挥重要作用。
2014-02-20 cs.LO cs.PL quant-ph
GUPPY: Pythonic Quantum-Classical Programming
本文介绍 Guppy,一种嵌入 Python 的领域特定语言,用于以 Pythonic 语法编写高级混合量子程序,支持复杂控制流,并可在真实量子硬件上运行。
2025-10-14 cs.PL cs.SE quant-ph
Model-Driven Engineering for Quantum Programming: A Case Study on Ground State Energy Calculation
本研究提出基于模型驱动工程的新框架,结合基于门的量子计算与量子退火方法,开发了程序自动转换映射机制,应用于变分量子本征求解器算法求解基态能量,证明了该框架的实用可行性。
2024-05-27 cs.PL cs.SE quant-ph
High level programming abstractions for leveraging hierarchical memories with micro-core architectures
微核心架构将许多低内存、低功耗计算核心组合在单个封装中。这些作为加速器是有吸引力的,但由于有限的片上存储器和多层次的存储层次结构,程序员卸载内核的方式需要仔细考虑。在本文中,我们使用Python作为一种工具,探索更高层次的程序设计语言的语义和抽象,以支持卸载的计算内核到这些设备。通过转移到一个引址传递模型,以及利用内存种类,我们证明了能够轻松有效地利用多个层次的存储层次结构,甚至是那些不能直接访问的微核心。使用一个机器学习基准,我们进行实验的Epiphany-III和MicroBlaze的微核心,展示了计算能力与任意大的数据集大小。为了提供我们的研究结果,我们探索了这些技术的性能和功耗效率,证明了虽然这两种微内核技术在其自己的嵌入式硬件类别中具有竞争力,但要达到HPC级GPU还有一段路要走。
2020-10-04 cs.DC cs.PL
Laws of Quantum Programming
本文将经典编程基本定律扩展至量子场景,刻画量子程序代数性质,证明循环不动点、尾递归实现及两个范式定理,并全部在 Coq 中机械化验证。
2025-09-01 cs.PL
Programmatic Control of a Compiler for Generating High-performance Spatial Hardware
这篇方法论论文讨论了空间架构上的高性能高生产力编程。空间架构对于执行并行算法是有效的,但是对于高性能编程,生产率低并且验证是痛苦的。我们表明,编码和验证是空间架构广泛采用的最大障碍。我们提出了一种新的编程方法,T2S(时间到空间),以消除这一障碍。程序员指定时间定义和空间映射。时间定义定义了要计算的功能,而空间映射定义了如何分解功能并将分解的部分映射到空间架构上。规范精确地控制编译器实际实现映射中指定的循环和数据转换。该规范是面向循环嵌套和矩阵的,因此适合于编译器进行自动静态验证。许多通用的,战略循环和数据优化可以系统地表达。因此,高性能与高生产力的预期:与高性能编程在今天的高级综合(HLS)语言或硬件描述语言(HDL),工程工作的编码和验证预计将减少从几个月到几个小时,减少2或3个数量级。
2017-12-13 cs.PL
Productively Expressing High-performance Spatial Designs of Givens Rotation-based QR Decomposition Algorithm
QR分解是无线通信中常用的分解方法。在本文中,我们表达了基于Givens旋转的QR分解算法的空间架构使用T2S(时间到空间),一个高生产力的空间规划方法,表达高性能的空间设计。有一些有趣的挑战:循环迭代空间不是矩形的,并且不清楚如何用函数符号(T2S的起点)来表示命令式算法。本文以QR分解为例,阐明了空间规划的一般原理,并对高性能空间规划进行了剖析。这篇论文也可以作为空间编程的教程,适用于那些不是数学家,不是专家程序员,也不是空间架构专家的程序员,但仍然希望直观地识别高性能设计并有效地映射到空间架构。
2018-05-19 cs.PL
Higher-order semantics for quantum programming languages with classical control
本论文以类型论为理论框架,分三个层次研究量子计算的范畴形式化。我们研究的第一阶段涉及匕首λ演算的创建,匕首紧范畴的λ演算。我们的第二个贡献提升了表达能力的匕首λ演算,量子程序设计语言,通过添加经典控制的形式互补的经典结构和dualisers。最后,我们的第三个贡献演示了如何我们的λ演算可以应用到各种众所周知的量子计算问题。
2013-11-26 cs.LO cs.PL math.CT
Qutes: A High-Level Quantum Programming Language for Simplified Quantum Computing
本文提出构建于 Qiskit 之上的高级量子编程语言 Qutes,通过抽象量子操作和统一经典/量子流程,降低量子算法开发门槛并支持硬件集成。
2025-03-17 cs.PL
Performing Fully Parallel Constraint Logic Programming on a Quantum Annealer
量子退火器利用量子效应来解决特定类型的优化问题。这种专用硬件的优势在于,它可以有效地并行考虑所有可能的解决方案,从而有可能超越经典计算系统。然而,尽管量子退火机最近已经商业化,但针对这些设备的高级编程模型相对较少。在这篇文章中,我们将展示如何将Prolog的一个子集编译成一个适合在量子退火机上执行的2-local Ising模型哈密顿量,该子集支持约束逻辑编程。特别是,我们描述了一系列的转换,可以应用到转换约束逻辑程序表示Prolog到一个可执行的形式,承担几乎没有相似之处的经典机器模型,但评估指定的约束,在一个完全并行的方式。我们评估了我们在1095量子位D-Wave 2X量子退火机上的努力,并描述了该方法的相关功能和缺点。逻辑程序设计理论与实践(TPLP)
2018-03-30 cs.PL
On the Performance and Energy Efficiency of the PGAS Programming Model on Multicore Architectures
使用大规模的多核系统来获得最大的性能和能源效率以及可管理的可编程性是一个重大挑战。分区全局地址空间(PGAS)编程模型通过在大规模计算系统上提供全局地址空间来增强可编程性。然而,到目前为止,性能和能源效率的PGAS模型上的多核并行架构还没有得到彻底的调查。在本文中,我们使用一组从著名的NAS并行基准测试中选择的内核来评估UPC程序设计语言的性能和能效,UPC编程语言是PGAS模型的广泛使用的实现。此外,MPI和OpenMP版本的相同的并行内核用于比较与他们的UPC同行。所研究的硬件平台基于多核CPU,既可以在单个16核节点内,也可以跨多个节点,涉及多达1024个物理核。在多节点平台上,我们使用称为高清晰度能效监测工具的硬件测量解决方案来测量能量。在单节点系统上,我们使用混合测量解决方案来努力了解观察到的性能差异,我们使用英特尔性能计数器监视器来详细量化通信时间、缓存命中/未命中率和内存使用情况。我们的实验表明,UPC是有竞争力的OpenMP和MPI在单个和多个节点上,在性能和能源效率方面。
2019-12-29 cs.DC cs.PF cs.PL
Context-Oriented Programming: A Programming Paradigm for Autonomic Systems
动态软件适应性是自主计算所利用的核心特性之一。然而,开发在运行时间改变其行为以适应操作条件的软件是一项具有挑战性的任务。在文献中已经提出了几种方法来解决这个问题,在不同的和互补的抽象层次:软件体系结构,中间件和编程水平。我们专注于ad-hoc程序设计语言结构可能提供的支持,以支持动态自适应行为。我们介绍了面向上下文的程序设计语言,我们提出了一个框架,该框架的位置在MAPE-K自主循环支持的范例。我们讨论了使用面向上下文的程序设计语言,而不是其他主流方法的基础上,面向动态方面的程序设计语言的优势,并提出了一个案例研究,显示如何提出的编程风格自然适合动态适应的要求。最后,我们讨论了一些已知的问题,并概述了一些开放的研究挑战。
2012-03-30 cs.PL
On Quantum Programming Languages
本指导研究资格论文回顾了作者自2008年以来在量子编程语言领域的贡献,并探讨了该学科的演变及当前研究趋势,旨在为相关领域的研究生提供入门指引。
2024-10-17 cs.LO cs.PL
A programming language characterizing quantum polynomial time
本文提出一阶量子语言 FOQ 及其有界宽度子集 PFOQ,用以刻画量子复杂度类 FBQP,并给出将 PFOQ 程序编译为多项式规模量子电路的保持语义算法。
2025-10-20 cs.LO cs.PL
Semantics for Variational Quantum Programming
我们考虑一个程序设计语言,可以操纵经典和量子信息。我们的语言是类型安全的,设计用于变分量子编程,这是一个混合的经典量子计算范式。该语言的经典子系统是概率定点演算(PFPC),它是一个具有混合方差递归类型、项递归和概率选择的λ演算。量子子系统是一个可以操纵量子信息的一阶线性系统。这两个子系统通过混合的经典/量子项相关联,这些项指定了经典概率效应如何由量子测量引起,以及相反地,经典(概率)程序如何影响量子动力学。我们还描述了一个声音和计算足够的指称语义的语言。经典的概率效应解释使用最近描述的交换概率单子DCPO。量子效应和资源被解释在一类冯诺依曼代数,我们显示是丰富的(连续)域。这种强烈的丰富感使我们能够开发新的语义方法,我们用来解释量子和经典概率效应之间的关系。通过这样做,我们提供了第一个指称的分析,涉及模型的经典概率规划模型的量子规划。
2021-07-28 cs.LO cs.PL math.CT