Communication-Safe Web Programming in TypeScript with Routed Multiparty Session Types
现代网络编程涉及协调浏览器客户端和服务器之间的交互。通常,基于Web的分布式系统中的交互是非正式描述的,这使得很难确保正确性,特别是通信安全性,即所有端点都没有类型错误或死锁,符合指定的协议。我们提出了STScript,一个工具链,它生成TypeScript API,用于通过WebSockets进行通信安全的Web开发,以及RouST,一种新的会话类型论,支持具有路由机制的多方通信。STScript为开发人员提供了基于RouST的通信协议规范生成的TypeScript API。生成的API建立在TypeScript并发实践的基础上,补充了全栈Web开发中的事件驱动编程风格,并且与服务器端端点的Node.js运行时和浏览器端端点的React.js框架兼容。RouST可以表达通过中间参与者路由的多方交互。它支持浏览器端端点之间的对等通信,通过服务器路由通信,避免过度序列化。RouST保证使用STScript API编写的端点Web应用程序的通信安全。我们使用几个部署为Web应用程序的生产就绪的案例研究来评估STScript对现代Web编程的表现力。
2021-01-12 cs.PL cs.SE
Proceedings of the Ninth workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software
PLACES 2016(全称:面向以并发和通信为中心的软件的程序设计语言方法)是PLACES研讨会系列的第九版。自2008年第一届PLACES加入DisCoTec之后,自2009年以来,该研讨会每年都是ETAPS的一部分,现在是ETAPS卫星活动的一部分。PLACES 2016于4月8日在荷兰埃因霍温举行。开办这一系列讲习班是为了促进新的程序设计语言思想应用于为并行和通信是内在方面的系统开发软件这一日益重要的问题。这包括用于多核系统和大规模分布式和/或面向服务的系统的软件。PLACES的范围包括新的程序设计语言特性、全新的程序设计语言设计、新的类型系统、新的语义方法、新的程序分析技术和新的实现机制。本卷包括被接受在讲习班上提出的论文。
2016-06-17 cs.DC cs.PL
Proceedings Programming Language Approaches to Concurrency- and Communication-cEntric Software
现代硬件平台,从非常小到非常大,越来越多地为应用程序提供并行和分布式计算资源,以最大限度地提高性能。因此,许多应用程序需要有效利用数十个、数百个甚至数千个计算节点。因此,这种系统中的计算本质上是并发的和以通信为中心的。有效地编程这样的应用程序是具有挑战性的;性能、正确性和可伸缩性很难实现。因此,为这种日益平行的景观制定有效的方案拟订方法,需要探索和理解各种各样的基本和实用的想法。并行和通信中心软件的程序设计语言方法国际研讨会(PLACES)致力于这一领域的工作。该研讨会为来自不同领域的研究人员提供了一个论坛,以交流有关现代和未来编程的这些挑战的新想法,其中并发和分布是规范,而不是边缘问题。本会议录涵盖了第11届PLACES,该会议与ETAPS 2019在捷克共和国布拉格举行。
2019-03-31 cs.DC cs.PL
Proceedings Fifth Workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software
PLACES 2012(全称:面向以并发和通信为中心的软件的程序设计语言方法)是PLACES研讨会系列的第五版。自2008年第一届PLACES加入DisCoTec之后,自2009年以来,该研讨会每年都是ETAPS的一部分,现在是ETAPS卫星活动的一部分。PLACES 2012于3月31日在爱沙尼亚塔林举行。开办这一系列讲习班是为了促进新的程序设计语言思想应用于为并行和通信是内在方面的系统开发软件这一日益重要的问题。这包括用于多核系统和大规模分布式和/或面向服务的系统的软件。PLACES的范围包括新的程序设计语言特性、全新的程序设计语言设计、新的类型系统、新的语义方法、新的程序分析技术和新的实现机制。今年的论文征集活动共收到17份论文,方案委员会从中挑选了10份论文在讲习班上介绍。讲习班结束后,所有作者都应邀编写了论文的修订本,以列入《欧洲条约汇编》的议事录。六篇论文的作者接受了邀请,这些论文构成了本卷。
2013-02-23 cs.DC cs.LO cs.PL
Proceedings 17th Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software
本文集收录了2026年PLACES会议论文,探讨并发与分布式编程挑战及现代软件基础,涵盖新语言设计、模型、类型系统及应用领域。
2026-04-07 cs.PL
Proceedings of the 12th International Workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software
现代硬件平台,从非常小到非常大,越来越多地为应用程序提供并行和分布式计算资源,以最大限度地提高性能。因此,许多应用程序需要有效利用数十个、数百个甚至数千个计算节点。因此,这种系统中的计算本质上是并发的和以通信为中心的。有效地编程这样的应用程序是具有挑战性的;性能、正确性和可伸缩性很难实现。因此,为这种日益平行的景观制定有效的方案拟订方法,需要探索和理解各种各样的基本和实用的想法。并行和通信中心软件的程序设计语言方法国际研讨会(PLACES)致力于这一领域的工作。该研讨会为来自不同领域的研究人员提供了一个论坛,以交流有关现代和未来编程的这些挑战的新想法,其中并发和分布是规范,而不是边缘问题。本卷包含了第12版的地方,这是共同位于ETAPS 2020在爱尔兰都柏林举行的会议记录。
2020-04-01 cs.DC cs.PL
Proceedings Tenth Workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software
PLACES 2017(全称:并行和通信中心软件的程序设计语言方法)是PLACES研讨会系列的第十版。自2008年第一届PLACES加入DisCoTec之后,自2009年以来,该研讨会每年都是ETAPS的一部分,现在是ETAPS卫星活动的一部分。PLACES 2017于4月29日在瑞典乌普萨拉举行。开办这一系列讲习班是为了促进新的程序设计语言思想应用于为并行和通信是内在方面的系统开发软件这一日益重要的问题。这包括用于多核系统和大规模分布式和/或面向服务的系统的软件。PLACES的范围包括新的程序设计语言特性、全新的程序设计语言设计、新的类型系统、新的语义方法、新的程序分析技术和新的实现机制。本卷包括被接受在讲习班上提出的论文。
2017-04-08 cs.DC cs.PL cs.SE
Proceedings Eighth International Workshop on Programming Language Approaches to Concurrency- and Communication-cEntric Software
PLACES 2015(全称:面向以并发和通信为中心的软件的程序设计语言方法)是PLACES研讨会系列的第八版。自2008年第一届PLACES加入DisCoTec之后,自2009年以来,该研讨会每年都是ETAPS的一部分,现在是ETAPS卫星活动的一部分。PLACES 2015于4月18日在英国伦敦举行。开办这一系列讲习班是为了促进新的程序设计语言思想应用于为并行和通信是内在方面的系统开发软件这一日益重要的问题。这包括用于多核系统和大规模分布式和/或面向服务的系统的软件。PLACES的范围包括新的程序设计语言特性、全新的程序设计语言设计、新的类型系统、新的语义方法、新的程序分析技术和新的实现机制。这一卷包括在讲习班上提出的文件的修订本。
2016-02-10 cs.DC cs.PL cs.SE
Proceedings 16th International Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software
本文是PLACES 2025研讨会论文集,涵盖并发与分布式编程语言方法、类型系统、验证及应用,旨在促进相关领域新思想交流。
2025-05-25 cs.PL
Programming Telepathy: Implementing Quantum Non-Locality Games
量子伪心灵感应是将量子信息理论应用于通信复杂性的一种有趣现象。为了证明这一现象,量子通信复杂性领域的研究人员设计了许多量子非定域性游戏。这些游戏的设定如下:玩家被分开,因此他们之间不可能进行通信,并被赋予一定的计算任务。当玩家可以使用一种称为纠缠的量子资源时,他们就可以完成任务:这在经典环境中是不可能的。对于一个不熟悉量子力学定律的观察者来说,参与者似乎使用了某种心灵感应;也就是说,他们以某种方式交换信息,而不共享通信信道。本文提供了一个正式的框架,指定,实施和分析量子非局域性游戏。
2009-07-29 cs.PL quant-ph
Expressiveness of Communication in Answer Set Programming
答案集编程(ASP)是一种声明式编程,允许简洁地制定和有效地解决复杂的问题。这种形式主义的一个直观扩展是通信ASP,其中多个ASP程序协作解决手头的问题。然而,通信ASP的表现力还没有得到彻底的研究。在本文中,我们提出了一个系统的研究提供了额外的表现力,允许ASP程序进行通信。首先,我们考虑一种简单的通信形式,其中程序只允许相互提问。在大多数情况下,我们故意只考虑简单的程序,即程序的计算答案集是在P.我们发现,决定是否是一个文字在一些答案集的通信ASP程序使用简单的通信的问题是NP难的。换句话说:由于这些简单的ASP程序的通信和协作能力,我们在多项式层次结构中向上移动了一步。其次,我们修改了通信机制,使我们能够专注于一系列通信程序,其中序列中的每个程序可能会相继删除一些剩余的模型。这模仿了一个领导者网络,第一个领导者有第一个发言权,可以删除他或她认为不满意的模型。使用这种特殊的通信机制使我们能够捕获整个多项式层次结构。这意味着,特别是,通信ASP可以用来解决的问题,在第二层的多项式层次结构,如某些形式的溯因推理以及PSPACE完全的问题,如CNOPS规划。
2011-09-12 cs.LO cs.PL
Proceedings Third Workshop on Programming Language Approaches to Concurrency and communication-cEntric Software
这是Places'10的会议记录,第三届并行和通信软件程序设计语言方法研讨会,于2010年3月21日在塞浦路斯的Pathos举行,与ETAPS联合会议在同一地点举行。PLACES旨在提供一个论坛,让来自不同领域的研究人员在不久的将来就编程中的一个核心挑战交换新的想法,即开发并行和分布是规范而不是边缘问题的编程方法和基础设施。方案委员会经过仔细和彻底的审查过程,从14份提交的文件中选出10份提交方案。每份提交的论文至少由两名评审人进行评估,并在两周的电子讨论中选出被接受的论文。本后续会议记录包含基于这些提交材料的论文,其中纳入了这些和进一步审查的结果,从而增强了技术成果和演示文稿。
2011-10-18 cs.DC cs.PL
Programming the Interactions of Collective Adaptive Systems by Relying on Attribute-based Communication
集体自适应系统是一种新兴的计算系统,由大量相互作用的组件组成,具有复杂的行为。这些系统通常是分布式的、异构的、分散的和相互依赖的,并且在动态的和可能不可预测的环境中运行。找到理解和设计这些系统的方法,最重要的是,对其组成部分的相互作用进行建模,是一项困难但重要的工作。在这篇文章中,我们提出了一种基于语言的方法,通过依赖于基于属性的通信编程的集体自适应系统的相互作用,一个范例,允许一组合作伙伴考虑他们的运行时属性和能力进行通信。我们介绍了AbC,基于属性的通信的基础演算,并展示了它的语言原语如何可以用来编程一个复杂的和复杂的变种的著名的问题,稳定的分配在内容分发网络。也被认为是其他有趣的案例研究,从领域的集体自适应系统。我们还说明了基于属性的通信的表达能力,显示其他现有的通信范式到ABC的自然编码。
2017-11-29 cs.PL
Corps: A Core Calculus of Hierarchical Choreographic Programming
本文提出层次化编排编程概念,并设计了语言Corps,通过授权逻辑中的命题即类型解释,将数据所有权建模为模态,解决了通信非线性建模与逻辑对应问题。
2024-06-03 cs.PL
Quantum Recursive Programming with Quantum Case Statements
本文提出利用量子 case 语句递归定义大型酉变换的量子递归程序设计方案,定义配套语言与形式语义,并通过示例展示其可优雅表达量子算法。
2023-11-03 cs.LO cs.PL quant-ph
Proceedings Second International Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software
第二届并行和通信程序设计语言方法国际研讨会(PLACES)与ETAPS 2009在英国约克市举行。研讨会于2009年3月22日星期日举行。讲习班的重点是计算机软件不断变化的环境所带来的挑战。传统上,大多数软件都是为一台具有一个CPU的计算机编写的。然而,今天Web上的应用程序是使用部署在许多机器上的许多交互服务构建的;很快,现成的CPU将托管数千个核心,传感器网络将由大量处理单元组成。许多普通的应用程序很快就需要有效地利用数千个计算节点。在某种粒度级别上,这种系统中的计算将本质上是并发的和以通信为中心的。为即将到来的计算范式开发有效的编程方法需要探索和理解各种各样的思想和技术。该研讨会提供了一个论坛,来自不同领域的研究人员可以在不久的将来就编程的核心挑战之一交换新的想法,开发编程方法和基础设施,其中并发和分布是规范,而不是边缘问题。
2010-02-06 cs.DC cs.PL
Proceedings 15th Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software
该论文集记录了 PLACES 2024 研讨会,汇集五篇并发与通信中心编程语言研究论文、主题演讲摘要及其他报告,旨在探讨现代分布式与并发编程挑战。
2024-04-04 cs.PL
A Promising Future: Omission Failures in Choreographic Programming
针对分布式系统中的发送、接收与网络遗漏故障,提出支持独立恢复策略和投递保证静态检查的编排式编程理论,并在 Choral 中实现验证。
2025-03-17 cs.PL
Fencing off Go: Liveness and Safety for Channel-based Programming (extended version)
Go是一种生产级静态类型的程序设计语言,其设计特点是显式的消息传递原语和轻量级线程,使(并鼓励)程序员能够开发并发系统,其中组件通过通信进行交互,而不是基于锁的共享内存并发。Go语言只能在运行时检测全局死锁,但不能提供编译时保护来防止所有常见的通信不匹配或部分死锁。这项工作开发了一个静态验证框架,在Go程序的活性和安全性,能够检测通信错误和部分死锁在一般类的现实并发程序,包括那些与动态通道创建,无限线程创建和递归。我们的方法从Go程序中推断出其通信模式作为行为类型的忠实表示。通过检查通道使用的语法限制,被称为围栏,我们确保程序是由许多不同的通信模式,可以重复无限多次。这个限制允许我们实现过程来检查类型中的活性和安全性,这反过来又近似于Go程序中的活性和安全性。我们已经在一个工具链中实现了类型推断、活性和安全检查,并在公开的Go程序中进行了测试。注:这是POPL 2017中发表的一篇论文的修订扩展版本,详情请参见第13页。
2017-02-28 cs.LO cs.PL
On the Formal Semantics of Speech-Act Based Communication in an Agent-Oriented Programming Language
Universidade do Vale do Rio dos Sinos(南里奥格兰德河谷大学);Universidade Federal do Rio Grande do Sul(南里奥格兰德联邦大学);University of Liverpool(利物浦大学);University of Durham(杜伦大学)
智能体通信语言的研究通常以言语行为范式为出发点。尽管他们的明显的吸引力,言语行为模型的通信有几个严重的缺点作为人工智能体系统中的通信的基础。特别是,它已被证明是非常困难的,以语音行为为基础的智能体通信语言的满意的语义。在某种程度上,问题在于言语行为语义学通常参考代理的“心理状态”(他们的信念,愿望和意图),并且通常没有办法将这种态度归因于任意的计算代理。此外,代理程序设计语言只有他们的语义形式化的抽象,独立的版本,忽略了方面,如通信原语。关于通信,实现的代理程序设计语言往往是相当特别的。本文解决了这两个问题,通过给语义的语音行为的AgentSpeak代理收到的消息。AgentSpeak是一种基于逻辑的Agent程序设计语言,它结合了反应式规划系统的PRS模型的主要特征。本文建立在一个结构操作语义,我们在以前的工作中开发的AgentSpeak。本文的主要贡献如下:我们以前的工作的AgentSpeak解释器的理论基础上的扩展;一个计算接地的语义(核心)用于言语行为为基础的智能体通信语言的施为;和一个定义良好的扩展AgentSpeak,支持智能体通信。
2011-10-31 cs.AI cs.MA 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
Proceedings 39th International Conference on Logic Programming
Imperial College London(伦敦帝国学院)
本卷为ICLP 2023会议的技术通讯集,涵盖主轨道、博士联盟、应用与系统/演示、近期发表研究、兴趣小组及逻辑程序设计与机器学习、可解释性、伦理和可信赖性等主题轨道。
2023-08-28 cs.AI cs.LO cs.PL
Quantum Predicative Programming
这项工作的主题是量子预测编程--研究在量子计算机上执行的程序的开发。我们在程序开发的正式方法或编程方法论的背景下看待编程。我们的工作是基于概率预测编程,最近概括的良好的预测编程。它支持程序开发的风格,其中每个编程步骤都被证明是正确的。我们继承了该理论的优点,如它的通用性,递归程序的简单处理,时间和空间的复杂性,和通信。我们的量子编程理论提供了编写经典和量子规范的工具,开发实现这些规范的量子程序,并在同一框架中推理它们的相对时间和空间复杂性。
2006-02-17 cs.PL quant-ph
Communications in Choreographies, Revisited
Choreographic Programming是一种通过编写所需通信的高级描述,然后自动合成过程实现来开发正确的构造并发程序的范例。到目前为止,choreographic编程已经在monadic设置中进行了探索:交互术语表示单个值的点对点通信。然而,现实世界的系统通常依赖于多元性质的交互,其中多个值在两方或多方之间进行通信,如多播,分散-聚集和原子交换。我们引入了一个新的模型,配备了一个原始的分组互动,包括所有上述情况下的编排编程。直观地,分组交互可以被认为是作为一个单独的交互来执行的。在实践中,它们是由以并发方式执行它们的进程实现的。在形式化的直观语义分组的相互作用,我们证明了编排程序及其实现是正确的,无死锁的建设。
2017-11-28 cs.PL
Choreographies for Reactive Programming
模块化编程是软件开发的基石,因为它允许从简单组件的组装中构建复杂的系统,并支持可重用性和替代原则。在分布式环境中,组件组装由通信支持,通信通常需要遵循指定的交互协议。在本文中,我们提出了一种语言的分布式系统的模块化开发,组件的组装是由指定的通信协议的编排支持。我们的语言允许单独的组件行为,给出的反应数据端口,和编排,指定为第一类实体。这允许我们考虑组件和编排的可重用性和替换原则。我们展示了我们的模型如何可以被编译成一个更可操作的角度在一个可证明是正确的方式,我们提出了一个类型的纪律,解决通信安全和系统的进展,其中的替代性的概念自然出现。
2018-01-24 cs.PL
Scala-gopher: CSP-style programming techniques with idiomatic Scala
Cala-gopher是一个库级的Scala实现,用于实现通信序列处理结构:通道、选择器(类似于Limbo或Go中的类比结构)、晶片机(类似于Occam proc)和一组基于akka和SIP-22的高级操作。该框架通过惯用API将CSP风格的编程集成到标准Scala并发环境中。这允许使用Go世界中众所周知的通信模式,但在主流Scala并发框架中不容易表达,以及用于组成计算构建器的代数方法。此外,我们还想在编译器和库生态系统发展的背景下讨论当前的实现问题和未来的发展方向。
2016-11-02 cs.PL
Proceedings 7th Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software
本卷包含PLACES 2014的后续会议记录,第七届并行和通信软件程序设计语言方法研讨会,于2014年4月12日在法国格勒诺布尔举行,并与ETAPS,欧洲软件理论与实践联合会议共同举办。PLACES系列研讨会旨在提供一个论坛,让来自不同领域的研究人员就近期编程的核心挑战之一交换新想法:程序设计语言,方法和基础设施的发展,其中并发和分布是规范,而不是边缘问题。PLACES的前几届展会分别在罗马(2013年)、塔林(2012年)、萨尔布吕肯(2011年)、帕福斯(2010年)和约克(2009年)举办,均与ETAPS同地举办,第一届PLACES展会在奥斯陆举办,与DisCoTec同地举办(2008年)。项目委员会经过仔细和彻底的审查,从12份提交的文件中选出了9份文件,在研讨会上发表,并列入本后续程序。每份提交的论文都由三名评审员进行评估(其中一篇论文接受第四次审查),并在为期一周的电子讨论中选择被接受的论文。在9篇被接受的论文中,有一篇被有条件地接受,但须经过一名PC成员的指导,这一过程是成功的,并导致该论文被完全接受。除了贡献的论文外,研讨会还将邀请微软印度研究院的Akash Lal发表题为“在不精确的线束下发现并发错误”的演讲。
2014-06-12 cs.DC cs.PL
Models of quantum computation and quantum programming languages
本文的目的是介绍量子信息论中使用的基本计算模型。我们回顾了量子图灵机、量子电路和量子随机存取机(QRAM)的各种模型以及它们的经典对应物。我们还介绍了量子程序设计语言,这是使用QRAM模型开发的。我们回顾了几种现有的量子程序设计语言的语法,并讨论了它们的特点和局限性。
2011-12-03 cs.PL quant-ph
Quantum Programming with Inductive Datatypes: Causality and Affine Type Theory
程序设计语言中的归纳数据库允许用户定义有用的数据结构,如自然数、列表、树等。在本文中,我们将展示如何归纳数据库可以添加到量子程序设计语言QPL。我们构建了一个健全的分类模型的语言,并通过这样做,我们提供了第一个详细的语义处理用户定义的归纳数据在量子编程。我们还表明,我们的指称解释是不变的大步骤减少,从而建立另一个新的结果量子编程。与经典的编程相比,这个属性是相当困难的证明,我们展示了它的有用性,它如何立即意味着在所有类型的计算充分。为了进一步巩固我们的结果,我们的语义完全基于冯诺依曼代数的物理自然模型,冯诺依曼代数是物理学家用来研究量子力学的数学结构。
2019-10-21 cs.LO cs.PL math.CT
Classical and Quantum Data Interaction in Programming Languages: A Runtime Architecture
我们提出了一个运行时架构,可用于量子编程语言及其编程环境的开发。所提出的运行时架构能够在经典数据和量子数据之间进行动态交互,遵循量子计算机在云中作为批处理计算机可用的限制,在其执行期间不与经典计算机进行交互。这是通过将量子代码生成留给运行时并引入量子测量的未来概念来完成的。当在量子编程语言中实现时,这些策略旨在促进量子应用程序的开发,特别是对于初学者和学生。该运行时架构适用于当前的噪声中尺度量子计算机,也适用于仿真和未来的容错量子计算机。
2020-05-29 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
Multiparty Session Programming with Global Protocol Combinators
多方会话类型(MPST)是通信协议的类型规则。它确保了良好类型的通信进程不会出现通信错误和死锁。MPST理论的最新实现依赖于(1)运行时线性检查以确保通信信道的正确使用,以及(2)用于指定和验证多方协议的外部域特定语言。为了克服这些限制,我们提出了一个用全局组合子编程的库--一组用于在OCaml中编写和验证多方协议的函数。一个协议中所有进程的局部行为都是从全局组合子中一次推断出来的。我们形式化的全球combinators和证明一个健全的可实现的全球combinators -一个良好类型的全球combinator派生出一组本地类型,类型端点程序可以确保类型和通信安全。我们的方法使全静态验证和整个协议的实现,从协议规范的过程实现,发生在同一种语言。我们将我们的实现与无类型和延续传递风格的实现进行比较,并通过实现大量的协议来展示其表现力。我们展示了我们的库可以与现有的库和服务进行互操作,实现DNS(域名服务)协议和OAuth(开放认证)协议。
2020-05-24 cs.PL
QuECT: A New Quantum Programming Paradigm
量子计算构成了计算机科学的一个迅速扩展的子领域。有效的量子编程语言的可用性促进了量子算法的开发,文献中已经提出了大量的方法,从基于GUI的简单工具到精心设计的独立编程语言。在本文中,我们提出了一种新的范例称为量子嵌入电路技术(QuECT),允许程序员嵌入一个电路图在一个经典的“主机”语言。该范式可以在任何现代古典语言中实现。作者使用Java开发了一个原型。
2011-04-04 cs.PL quant-ph
MCBeth: A Measurement Based Quantum Programming Language
基于门的量子程序设计语言无处不在,但基于测量的语言目前只存在于纸上。这项工作介绍了MCBeth,量子程序设计语言,它允许程序员直接表示,编程和模拟基于测量和集群状态计算的测量演算的基础上。虽然MCBeth程序旨在直接在硬件上执行,但为了利用当前的机器,我们还提供了一个编译器来编译基于门的指令。我们认为,与基于门的量子计算相比,基于测量的量子计算在实现常见的量子算法和分布式量子计算方面具有明显的优势。
2022-06-25 cs.PL quant-ph
Implementing a teleo-reactive programming system
本论文探讨了控制自主智能体,如机器人的目的反应编程范式。目的反应编程为目标导向编程提供了一种鲁棒的机会主义方法,该方法不断对感测到的环境做出反应。特别是,TR和TeleoR系统进行了研究。它们影响了用Python编程的目的反应系统的设计,用于通过Pedro通信架构控制自主智能体。为了演示该系统,它被用作一个简单游戏中的控制器。
2015-09-14 cs.PL
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
Implementing a Language for Distributed Systems: Choices and Experiences with Type Level and Macro Programming in Scala
多层程序设计语言通过在单个一致的代码库中开发分布式系统来降低开发分布式系统的复杂性。编译器或运行时将分布式系统的组件的代码分离,从而能够对诸如数据表示、串行化和网络协议之类的低级实现细节进行抽象。我们的ScalaLoci语言允许开发人员在类型级别声明不同的组件及其架构关系,允许关于分布和远程通信的静态推理,并保证跨组件的静态类型安全。编译器将多层程序分割成特定于组件的代码,并自动生成通信样板。组件之间的通信可以通过使用反应式编程声明性地指定组件之间的数据流来建模。在本文中,我们报告了我们的设计和我们的经验,我们的语言功能嵌入到Scala作为主机语言的实现。我们展示了如何结合Scala的高级类型级编程和它的宏系统来丰富语言的新抽象。我们评论的挑战,我们遇到的,我们为我们目前的实施和大纲的建议,一个改进的宏系统,以支持嵌入特定领域的抽象的用例开发的解决方案。
2020-02-14 cs.PL
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
Certified Compilation of Choreographies with hacc
编程通信过程是具有挑战性的,因为它需要编写单独的程序,在执行过程中的正确时间执行兼容的发送和接收操作。把这个任务留给程序员很容易导致bug。编排编程通过为开发人员提供高级抽象来解决这一挑战,以便从全局角度编码所需的通信结构。给定一个编排,所涉及的流程的实现可以通过端点投影(EPP)自动生成。虽然编排编程可以防止通信实现中的手动错误,但编排编程框架的正确性关键取决于其复杂编译器的正确性,这促使了定理证明器中编排编程理论的形式化。在本文中,我们建立在这些形式化之一,构建一个工具链,从编排产生可执行代码。
2023-03-07 cs.PL
$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
Stay Safe under Panic: Affine Rust Programming with Multiparty Session Types
通信系统包括跨网络的各种软件组件。为了确保它们的鲁棒性,现代程序设计语言(如Rust)提供了强类型通道(其使用保证是仿射的(最多一次))和二进制通道上的取消操作。为了协调组件正确地相互通信和同步,我们使用多方会话类型的结构化机制,用仿射通信信道和隐式/显式取消机制对其进行扩展。这种新的类型规则,仿射多方会话类型(AMPST),确保取消终止多个独立运行的组件,并保证通信不会由于错误或突然终止而卡住。在AMPST的指导下,我们实现了一个与取消终止算法相关的Rust API自动生成工具(MultiCrusty),Rust编译器通过该工具自动检测不安全的程序。我们的评估表明,MultiCrusty提供了一种有效的机制,用于通信,同步和传播任意进程的取消通知。我们已经实现了几个用例,包括流行的应用程序协议(OAuth,SMTP)和具有异常处理模式的协议(断路器,分布式日志记录)。
2022-04-28 cs.PL
On Quantum Programming Languages
本指导研究资格论文回顾了作者自2008年以来在量子编程语言领域的贡献,并探讨了该学科的演变及当前研究趋势,旨在为相关领域的研究生提供入门指引。
2024-10-17 cs.LO cs.PL
Quantum Programming Without the Quantum Physics
National Institute of Advanced Industrial Science and Technology(产业技术综合研究所)
本文提出了一种无需量子物理基础的量子编程范式,通过引入负概率随机数生成器,使量子编程更易于理解和实现。
2025-11-26 cs.PL quant-ph
High-level quantum algorithm programming using Silq
本文探讨了高级量子编程语言 Silq 的优势与特性,分享了使用其设计和实现高级量子算法的见解,展示了其在量子编程中的实际应用与优势。
2025-05-31 cs.DS cs.PL quant-ph
Session-Based Programming for Parallel Algorithms: Expressiveness and Performance
本文研究会话编程和类型的基准测试的例子,比较生产力,安全性和性能与其他通信程序设计语言。并行算法被用来检查上述方面,由于它们广泛使用的消息传递的交互,以及它们在算法研究中的日益突出的硬件资源,如多核机器和集群的可用性。我们贡献了新的基准测试结果SJ,Java的类型安全,二进制会话编程的扩展,对MPJ Express,基于MPI标准的Java消息传递系统。总之,我们观察到(1)尽管有丰富的库和功能,MPI仍然是一个低级API,并且可能遭受显式消息传递的常见缺点,如死锁和意外的消息类型,以及(2)高级会话抽象的好处,这对程序结构有显着影响,以提高可读性和可靠性,并且会话类型安全可以极大地促进通信编程的任务,同时保持有竞争力的性能。
2010-02-04 cs.DC cs.PL
A programming language characterizing quantum polynomial time
Université de Lorraine(洛林大学);CNRS(法国国家科学研究中心);Inria(法国国家计算机科学与自动化研究所);LORIA(洛林研究与教学实验室)
本文提出一阶量子语言 FOQ 及其有界宽度子集 PFOQ,用以刻画量子复杂度类 FBQP,并给出将 PFOQ 程序编译为多项式规模量子电路的保持语义算法。
2025-10-20 cs.LO cs.PL
A Survey of Quantum Programming Languages
University of California, Los Angeles(加州大学洛杉矶分校)
本文提出语言分类框架,调查十种流行量子编程语言,通过概念与实验比较,总结未来语言设计面临的挑战。
2026-06-26 cs.PL quant-ph
Speak Now: Safe Actor Programming with Multiparty Session Types (Extended Version)
University of Glasgow(格拉斯哥大学);Queen Mary University of London(伦敦大学女王玛丽学院)
Maty是首个支持静态多方会话类型和多会话Actor的编程语言,通过流敏感效果系统和事件驱动编程实现通信安全与系统容错。
2026-03-03 cs.PL
Imperative Quantum Programming with Ownership and Borrowing in Guppy
Quantinuum
本文提出一种结合线性类型与指令式语义的量子类型系统,并在 Guppy 语言中实现,以在指令式量子编程中保持安全保证。
2025-10-15 cs.PL cs.SE 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