Recurrence extraction and denotational semantics with recursive definitions
除了一个例外,我们以前的递归提取和指称语义的工作集中在一个源语言,支持归纳类型和结构递归。异常通过初始转换为按推值调用来处理一般递归。本文给出了一个从具有一般递归函数定义和递归类型的语言直接到类似PCF的递归语言的抽取函数。我们证明了主要的合理性结果(即语法递归实际上限制了操作成本),而不使用逻辑关系,从而大大简化了证明相比,我们以前的工作(在成本上提出更多的要求模型的递归语言)。然后,我们定义了两个模型的递归语言,一个用于分析归并排序,另一个用于分析快速排序,作为案例研究,以了解模型定义的理由提取递归。
2022-08-05 cs.PL
A metalanguage for cost-aware denotational semantics
本文提出了两种用于开发程序设计语言的$\textit{synthetic cost-aware denotational semantics}$的元语言。扩展了Niu等人最近的工作。[2022]关于$\textbf{calf}$,一种用于成本和行为验证的依赖类型理论,我们定义了两种元语言,$\textbf{calf}^\star$和$\textbf{calf}^ω$,用于研究成本感知元理论。$\textbf{calf}^\star$是$\textbf{calf}$的具有论域和归纳类型的扩展,$\textbf{calf}^ω$是$\textbf{calf}^\star$的具有无界迭代的扩展.我们构造指称模型的简单类型的lambda演算和现代化的Algol,一阶存储和while循环的语言,并表明它们满足$\textit{cost-aware}$推广的经典Plotkin型计算充分性定理。此外,通过用内涵和外延的$\textit{phase-separated}$结构的综合语言来证明,我们的结果很容易地$\textit{restrict}$到相应的外延定理。我们的工作对Niu et al. [2022]中提出的猜想提供了肯定的回答,并根据$\textit{op. cit.}$在算法分析方面的工作,为程序设计语言的成本感知编程和验证以及成本感知元理论提供了元语言。
2022-09-26 cs.PL
Denotational reasoning for asynchronous multiparty session types
University of Oxford(牛津大学)
本文首次为异步多方会话类型提供指称语义,通过精确的异步子类型化,实现对非阻塞消息传递的推理,证明通信优化的正确性,特别是消息重排序的正确性。
2026-04-12 cs.PL
Full Abstraction for Free
结构化递归模式,如折叠和展开已被广泛用于结构函数式程序和程序语义。在此上下文中,通常将指称语义实现为归纳数据类型上的折叠,以确保终止性和组合性。单独地,操作模型可以由展开给出,并且自然地不是所有操作模型都以有意义的方式与给定的指称语义一致。为了确保这些语义是一致的,重要的是要考虑与指称和操作模型相关的完全抽象的属性。在本文中,我们将展示如何设计一个组合语义,使完整的抽象免费。我们这样做,通过使用分配律,我们生成的操作和指称模型。分布律确保语义在类型级别上是完全抽象的,从而减轻了程序员的证明负担。
2023-03-16 cs.PL
Denotational Semantics of Gradual Typing using Synthetic Guarded Domain Theory (Extended Version)
本文提出一种基于受卫域论的渐近类型指称语义,结合步进索引逻辑关系的通用性与指称语义的模块化,在简单 lambda 演算上证明了 beta-eta 等式有效性与渐近性定理,并在 Guarded Cubical Agda 中完成核心定理机械化,为渐近类型程序语义提供可重用的数学基础。
2025-07-10 cs.PL
Denotational Semantics and a Fast Interpreter for jq
jq是一种广泛使用的工具,它提供了一种程序设计语言来操作JSON数据。然而,它的语义目前只由它的实现指定,这使得很难推理它的行为。为此,我为jq语言的一个子集提供了语法和指称语义。特别是,语义提供了一种新的方式来解释更新。我在一个名为jaq的新的jq语言解释器中实现了语义的扩展版本。尽管jaq使用了比jq简单得多的方法来执行jq程序,但在13个基准测试中,有10个测试jaq比jq快。
2023-02-21 cs.LO cs.PL
The Correctness of Launchbury's Natural Semantics for Lazy Evaluation
John Launchbury在他的开创性论文“A Natural Semantics for Lazy Evaluation”中证明了他关于指称语义的语义正确性。我们对证明进行了机器检查,发现它失败了,并提供了两种方法来修复它:一种是通过显式堆栈修改自然语义,另一种是通过调整堆的指称语义。
2014-05-13 cs.PL
Denotational semantics of recursive types in synthetic guarded domain theory
就像数学的任何其他分支一样,程序设计语言的指称语义应该在类型论中形式化,但是将传统的域理论语义(如最初在经典集合论中制定的)适应类型论已经证明是具有挑战性的。本文是一个项目的一部分,制定指称语义的类型论与保护递归。这样做的好处不仅是提供更简单的语义和充分性等属性的证明,而且有望在未来扩展到具有高级功能的语言,如通用引用,超出了传统域理论技术的范围。工作在保护依赖类型论(GDTT),我们开发的指称语义的FPC,简单类型的λ演算扩展与递归类型,建模的递归类型的FPC使用保护递归类型的GDTT。我们证明了GDTT模型的合理性和计算充分性,使用语法和语义之间的逻辑关系,也使用守护递归类型。指称语义是内涵的,在这个意义上,它计算计算一个项的值所需的展开-折叠约简的数量,但是我们构建了一个关系,该关系涉及外延相等项的指称,即,在不同步骤中计算相同值的项对。最后,我们展示了如何在类型论中执行术语的指称语义,并证明了执行布尔术语的指称计算与FPC的操作语义相同的值。
2018-05-02 cs.LO cs.PL
An Experiment with a User Manual of a Programming Language Based on a Denotational Semantics
表示模型应该为修改程序设计语言手册中的当前实践提供机会。新的风格应该一方面基于指称模型,但另一方面-不要假设今天的读者熟悉这一领域。因此,手册应该提供理解以新风格编写的程序设计语言的定义所需的一些基本知识和符号。与此同时,我坚信它应该是为专业程序员而不是业余爱好者编写的。手册的作用不是教编程的技能。这样的教科书当然是必要的,但它们应该告诉读者编程是关于什么的,而不是具体语言的技术细节。本文包含一个虚拟程序设计语言语言在我们的项目开发的手册的例子。
2019-05-28 cs.PL
Towards a Higher-Order Bialgebraic Denotational Semantics
University of Birmingham(伯明翰大学);University of Southern Denmark(南丹麦大学);Friedrich-Alexander-Universität Erlangen-Nürnberg(埃尔朗根-纽伦堡大学)
本文发展了高阶抽象GSOS中的适当指称语义理论,通过局部终余代数构造语义域,解耦于语法,适用于多种高阶语言。
2026-07-01 cs.LO cs.PL
Denotational semantics of general store and polymorphism
本文首次提出结合卫递归与非直谓多态性的多态依赖类型理论指称语义,支持一般高阶引用和递归类型,并通过“逻辑关系即类型”的模态构造实现对有状态抽象数据类型的关系推理。
2023-04-12 cs.LO cs.PL
A Denotational Semantics for Communicating Unstructured Code
程序设计语言语义的一个重要属性是它们应该是组合的。然而,非结构化的低级代码包含类似goto的命令,这使得很难定义组合语义。在本文中,我们遵循Saabas和Uustalu的思想来构造低层代码。这使我们有可能定义一个基于最少不动点的组合指称语义,以允许使用归纳验证方法。我们捕获的语义通信使用有限的痕迹类似于表示的CSP。此外,我们检查此语义的属性,并给出一个例子,演示了推理的通信和跳转。有了这个语义,我们奠定了基础的证明演算,捕捉两者,非结构化的低级别代码和通信的语义。
2015-03-17 cs.LO cs.PL
Towards Denotational Semantics of AD for Higher-Order, Recursive, Probabilistic Languages
自动微分(英语:Automatic differentiation,AD)的目标是计算用户定义函数的导数,但在图灵完备语言中,这种简单的规范并不能完全捕捉AD的行为:AD有时不同意可微程序的真实导数,当AD应用于不可微或有效程序时,不清楚什么保证(如果有的话)保持结果代码。我们研究了一种表达可微的程序设计语言,它具有分段分析原语、高阶函数和一般递归。我们的主要结果是,即使在这种一般设置中,Lee等人[2020]的正确性定理的一个版本(最初针对没有递归或递归的一阶语言证明)仍然成立:所有程序都表示所谓的$ω$ PAP函数,AD计算它们的正确内涵导数。Mazza和Pagani [2021]最近的定理,AD不同意可微递归程序在零测量输入集上的真导数,可以作为这一事实的直接推论导出。我们还将该框架应用于研究概率程序,并通过一个新的指称参数恢复了Mak等人[2021]的最近结果。
2021-12-06 cs.PL
Denotational Foundations for Expected Cost Analysis
本文提出基于按值传递调用(CBPV)的元语言 cert,定义代价与期望代价两种指称语义,证明其可靠性、充分性及效应模拟性质,并通过案例展示其表达能力。
2025-02-26 cs.LO cs.PL
Certified Semantics for Relational Programming
我们提出了一个正式的研究语义的关系程序设计语言miniKanren。首先,我们制定了一个指称语义,它对应于最小Herbrand模型的明确逻辑程序。其次,我们提出了操作语义模型的交织,miniKanren实现的显着特点,并证明了其可靠性和完整性w.r.t.指称语义。我们的开发是由Coq规范,从其中可以提取一个参考解释器的支持。我们还从我们的主要结果证明语义(和参考解释器)SLD决议削减和证明其可靠性。
2020-09-16 cs.PL
A Denotational Semantics for First-Order Logic
在Apt和Bezem [AB 99](见CS.LO/9811017)中,我们提供了一个一阶公式的计算解释,而不是任意解释。在这里,我们补充这项工作,介绍了一个指称语义的一阶逻辑。此外,通过允许将非基础项分配给变量,我们在这个框架中引入了逻辑变量。语义学结合了许多来自命令式程序设计语言和逻辑编程的语义学领域的著名思想。在由此产生的计算视图中,合取对应于顺序组合,析取对应于“不知道”的不确定性,存在量化对应于局部变量的声明,否定对应于“否定为有限失败”规则。可靠性结果表明了语义关于真的概念的正确性。该证明在某些方面类似于SLDNF解决方案的可靠性证明。
2000-05-08 cs.AI cs.PL
Denotational Semantics for Probabilistic and Concurrent Programs
本文针对兼具概率动作与并行组合的命令式程序,提出具有良好域论性质的指称模型,并通过两个适当性定理证明其统一涵盖并发与概率非确定语义。
2025-06-07 cs.LO cs.PL
A Denotational Engineering of Programming Languages
这本书致力于两个研究领域:(1)设计程序设计语言以及它们的指称模型。一种语言的指称模型由两个多排序的代数--一个语法代数和一个指称代数--以及一个从语法到指称的(唯一的)同态组成,称为语言的语义。(2)用指称模型为语言设计合理的程序构造器。在我们的方法程序语法包含其完全正确性规范。如果一个程序的说明是正确的,那么它就是正确的。如果给定正确的组件程序产生正确的结果程序,则程序构造器是可靠的。这两种方法都说明了一个例子语言Lingua。
2019-05-04 cs.PL
Denotational validation of higher-order Bayesian inference
我们提出了一个模块化的概率程序设计语言,用于数据科学和机器学习的贝叶斯推理算法的语义帐户。复杂的推理算法通常用较小部分的组合来解释。然而,无论是理论上的理由,他们的实施反映了这种模块化。我们将展示如何概念化和分析这样的推理算法操纵的概率程序使用高阶函数和归纳类型,其指称语义的中间表示。连续分布的语义账户使用可测量空间。然而,我们使用高阶函数提出了一个实质性的技术困难:它是不可能定义一个可测空间结构的集合之间的可测函数的任意可测空间,是兼容的标准操作,这些功能,如功能的应用。我们克服了这个困难,使用准Borel空间,最近提出的数学结构,支持函数空间和连续分布。我们定义了一类表示概率程序的语义结构,以及这些表示在分布保持方面的变换的语义有效性标准。我们开发了一系列用于组成表示的构建块。我们使用这些构建块来验证常见的推理算法,如顺序蒙特卡罗和马尔可夫链蒙特卡罗。为了强调语义操纵与其传统测量理论渊源之间的联系,我们使用了科克的综合测量理论。我们证明了它的有用性,证明了准博雷尔对应的大都会黑斯廷斯-格林定理。
2017-11-09 cs.PL
A Coq Library of Sets for Teaching Denotational Semantics
本文提出一个基于 Coq 类型类系统的集合与关系库,用标准数学记号改善指称语义教学中的可读性,同时保持零证明项开销。
2024-04-08 cs.LO cs.PL
Denotational cost semantics for functional languages with inductive types
分析函数程序的渐近复杂性的一个主要方法是提取并求解一个以输入大小表示评估成本的递推公式。输入大小的相关概念通常特定于数据类型,其度量包括列表的长度,列表中的最大元素和树的高度。在这项工作中,我们给出了一个正式的帐户提取成本和大小递归高阶函数程序归纳datastries。我们的方法允许广泛的程序员指定的大小的概念,并确保提取的递归正确预测评估成本。为了从程序中提取递归,我们首先通过应用从源语言到复杂性语言的一元转换来明确成本,然后将数据类型值抽象为大小。大小抽象可以在语义上完成,在复杂性语言的模型中工作,或者在语法上通过向前序判断添加规则来完成。我们给出了几种不同的模型的复杂性语言,支持不同的概念的大小。此外,我们证明了一个逻辑关系的参数,递归提取的这个过程是评估成本的上限,证明是完全语法,因此适用于我们考虑的所有模型。
2015-06-05 cs.PL
A denotational semantics for PROMELA addressing arbitrary jumps
PROMELA(Process Meta Language)是一种高级规约语言,用于分布式系统中的交互建模。PROMELA被用作模型检查器SPIN(Simple Promela Interpreter)的输入语言。PROMELA的主要特点是非确定性,通过同步和异步通道的进程通信,以及动态创建进程实例的可能性。在本文中,我们介绍了一个自下而上,定点语义,旨在模拟PROMELA程序的行为。这项工作是迈向更宏伟目标的第一步,在这个目标中,基于抽象解释的分析和验证技术将被定义在这样的语义之上。
2021-08-27 cs.LO cs.PL
Denotational Semantics of A User-Oriented, Domain-Specific Language
本文提出了一个领域特定的语言,命名为Pruel的形式化定义,以下的方法论提出的大卫施密特的语言开发。这种语言专用于编制协调网络实体的应用程序。它的目标开发人员是建筑管理和辅助生活等领域的专业人士,并希望利用网络实体来支持日常任务。Pingpruel有许多特性可以满足实体编排领域的需求。此外,Pingpruel提供了高级结构,使不一定具有编程技能的开发人员可以访问它。它已被非程序员用于开发许多应用程序。我们展示了如何面向用户的编程概念的Pruel的指称语义的Pruel表示。这个形式化的定义已经被用来推导出一个解释器,并提供了一个基础,原因Pruel程序。
2013-09-20 cs.PL cs.SE
Denotation-based Compositional Compiler Verification
Shanghai Jiao Tong University(上海交通大学);Peking University(北京大学)
本文提出基于指称语义的编译器验证框架,通过行为细化统一多种行为细化,实现编译器验证的结构化和组合性。
2026-03-29 cs.PL
Revisiting Elementary Denotational Semantics
操作语义已经取得了巨大的成功,这在很大程度上是由于它的灵活性和简单性,但它们不是组合的。另一方面,指称语义是组合的,但格理论模型很复杂,难以扩展到大型语言。然而,也有简单得多的$λ$ -演算的基本模型:Coppo、Dezani-Ciancaglini和Salle(1979)、Engeler(1981)和Plotkin(1993)。本文采取的第一步回答这个问题:可以基本模型是好的语言规范,机械化和编译器的正确性的日常工作?文献中的基本模型很简单,但它们并不像它们所能做到的那样直观。为了解决这个问题,我们创建了一个新的模型,将函数字面上表示为有限图。关于机械化,我们给出了第一个机器检查证明的合理性和完整性的基本模型相对于一个操作语义。关于编译器的正确性,我们定义了一个多变量内联调用的值$λ$ -演算,并证明其输出是上下文等价于其输入。为了将基本模型扩展到更大的语言,我们用一元风格制定我们的语义,给出了具有一般递归的系统F的语义,并机械化类型可靠性的证明。
2017-10-21 cs.LO cs.PL
Denotational semantics as a foundation for cost recurrence extraction for functional languages
分析程序渐近复杂度的标准非正式方法是提取一个递归,它描述了程序的输入大小的代价,然后计算该递归的封闭形式的上界。本文给出了高阶语言中函数式程序中具有let多态性方法的形式化描述. 该方法分为二个步骤.在第一阶段中,执行一元翻译以提取原始程序的成本注释版本。在第二阶段中,在模型中解释所提取的程序。第二个阶段的关键特征是不同的模型描述了不同的规模概念。这在几个方面发挥作用。例如,当分析采用归纳类型的自变量的函数时,不同的大小概念可能是适当的,这取决于分析。在分析多态函数时,我们的方法表明,可以根据域类型的每个类型实例的大小概念所共有的数据来形式化地描述参数大小的概念。我们给出了几个不同模型的例子,正式证明了各种非正式的成本分析,以显示我们的方法的适用性。
2022-05-20 cs.PL
The Denotational Semantics of SSA
该研究提出SSA变体的类型论与范畴语义,证明其可靠完备,给出含TSO弱内存模型的实例,且相关证明已在Lean中机械化,为编译器变换验证提供语义基础。
2024-12-12 cs.LO cs.PL
Denotational recurrence extraction for amortized analysis
分析函数式程序的时间复杂度的一种典型方法是提取一个递归式,该递归式用程序输入的大小来表示程序的运行时间,然后求解该递归式以获得一个大O界。为了使递归提取是组合的,还需要提取帮助函数输出大小的递归。以前的工作已经开发了技术,使用逻辑关系来陈述一个正式的正确性定理的一般递归提取翻译:一个程序是有界的递归时,操作成本是有界的提取成本,和输出值是有界的,根据一个值的边界关系定义的类型归纳,提取的大小。这以前的工作支持高阶函数,通过查看递归程序在一个递归演算,或作为数学实体的指称语义。在本文中,我们扩展这些技术,以支持摊还分析,其中成本重新安排从一个程序的一部分到另一个,以实现更精确的界限。我们给出了一种中间语言,在该语言中,程序可以根据银行家的摊还分析方法进行注释;这种语言有一个仿射类型系统,以确保信用不超过一次。我们给出了一个递归提取翻译这种语言的递归语言,一个简单的类型的成本类型的Alzida演算,并说明和证明一个绑定的逻辑关系表示这种翻译的正确性。递归语言在前序中具有指称语义,我们使用这种语义来解决递归问题,例如分析二进制计数器和展开树。
2020-07-31 cs.PL
Reverse AD at Higher Types: Pure, Principled and Denotationally Correct
我们将展示如何定义正向和反向模式的自动微分源代码转换或一个标准的高阶函数语言。转换生成纯函数代码,并且它们是原则性的,因为它们的定义来自于分类的普遍属性。给出了变换正确性的语义证明。在它们最优雅的公式中,转换生成具有线性类型的代码。然而,我们演示了如何转换可以在标准的函数语言中实现,而不会牺牲正确性。为此,我们使用抽象数据类型来表示所需的线性类型,例如通过使用基本模块系统。
2021-01-22 cs.PL
Denotational Correctness of Forward-Mode Automatic Differentiation for Iteration and Recursion
本文为含部分操作、惰性条件、迭代及项和类型递归的语言,基于微分空间与部分性单子,通过子余构造的语义逻辑关系,给出了前向模式自动微分宏的指称正确性证明,并引入带ωcpo结构的空间扩展至递归情形。
2024-05-27 cs.PL
A Complete Theory of Sequential Digital Circuits: Denotational, Operational and Algebraic Semantics
University of Birmingham(伯明翰大学);Indiana State University(印第安纳州立大学)
本文通过指称、操作和代数三种语义,为数字电路提供了完备的组合理论,解决了电路自由组合而不需内部细节的问题。
2026-06-26 cs.LO cs.PL math.CT
Cost-sensitive computational adequacy of higher-order recursion in synthetic domain theory
本文在合成域理论中研究成本感知高阶递归语言PCF_cost,证明其指称与计算成本语义间的成本敏感计算充分性,并利用相位区分建立成本与行为的非干扰性。
2024-12-07 cs.PL
Wiring the Pi-calculus to Denotational Semantics
The University of Tokyo(东京大学);University of Bologna(博洛尼亚大学);Centre Inria d’Université Côte d’Azur(蔚蓝海岸大学Inria中心);Inria(法国国家数字与信息技术研究所);Univ Rennes(雷恩大学);CNRS(法国国家科学研究中心);IRISA(信息与自动化研究及软件工程研究所);Aix Marseille Univ(艾克斯-马赛大学);LIS(实验室信息学)
本文提出了一种异步π演算的变种AWpi,通过限制名称的拥有和能力,使得特殊过程(称为线缆)在与任何AWpi过程组合时表现为替代,从而自然形成一个范畴,其中过程是态射,线缆是恒等态射。同时,AWpi结合了游戏语义的灵感,构建了一个相对Seely范畴,从而连接了π演算的传统与编程语言的指称模型传统。
2026-05-18 cs.LO cs.PL
Theorem proving support in programming language semantics
我们描述了几种观点的语义的一个简单的程序设计语言的正式文件中的演算的归纳结构,可以验证的Coq证明系统。涵盖的方面是自然语义、指称语义、公理语义和抽象解释。递归函数的描述也在适当的时候提供,从而产生一个验证条件生成器和一个静态分析器,可以在定理证明器内运行,用于反射证明。还描述了从指称语义提取解释器。所有不同的方面都被正式证明是合理的自然语义规范。
2007-07-10 cs.LO cs.PL
Modular Denotational Semantics for Effects with Guarded Interaction Trees
本文提出受守卫的交互树及其配套分离逻辑,用于在Coq中表示带高阶效应的高阶计算,并证明了类PCF语言解释的可靠性与计算充分性,同时实现了不同效应的模块化组合与跨语言安全互操作。
2023-11-20 cs.LO cs.PL
Applying quantitative semantics to higher-order quantum computing
为高阶量子计算寻找一种指称语义是量子程序设计语言语义学中一个长期存在的问题。过去大多数解决这个问题的方法都以这样或那样的方式存在不足,要么将语言限制在一个不可用的小有限片段,要么放弃量子物理学的重要特征,如纠缠。本文利用线性逻辑的定量语义构造了一个具有递归和无限数据类型的量子λ演算的指称语义。
2013-11-10 cs.LO cs.PL quant-ph
Abstract Continuation Semantics for Multiparty Interactions in Process Calculi based on CCS
针对支持多方交互的扩展CCS进程演算,构建基于延续的指称与操作语义,验证该延续语义的抽象性,证明指称模型相对操作模型具有弱抽象性。
2024-10-31 cs.DC cs.MA cs.PL
The Semantics of Effects: Centrality, Quantum Control and Reversible Recursion
本文研究程序语义学,通过单子中心刻画效应交换性,为可逆量子语言建立完备指称语义,并利用范畴论为可逆递归提供语义基础,同时探讨高阶量子控制的局限与前景。
2024-06-05 cs.LO cs.PL math.CT
Denotational semantics for languages for inference: semirings, monads, and tensors
本文通过半环视角研究推理语言的代数理论,探讨单子、半环与张量的联系,并证明在若干概率例子中半环张量能决定子理论的张量。
2023-12-27 cs.LO cs.PL math.CT
Abstract Interpretation as a Programming Language
在David Schmidt的博士论文中,他探索了指称语义作为程序设计语言的使用。这是一项努力的一部分,不仅将形式语义视为规范,而且还将其视为编译器生成器的解释器和输入。语义本身可以被看作是一个程序,人们可以检查不同的编程风格和表示状态的方法。抽象解释主要是一种用于推导和规范程序分析的技术。与指称语义一样,我们也可以将抽象解释视为程序并检查其实现。本文的主要重点是表明,高阶严格性分析的结果可以更普遍地用作格上高阶函数的不动点算子,从而提供了一种立即实现一大类抽象解释的技术。此外,它可以被视为一种编程范式,并用于以循环风格编写程序。
2013-09-20 cs.PL
An overview of QML with a concrete implementation in Haskell
本文介绍和概述了函数量子编程语言QML。这种语言的语法定义和解释,随着一个新的QML定义的量子传送算法。QML的范畴操作语义也简要介绍,在注释的量子线路的形式。这个定义导致了一个指称语义,给出了超算子。最后,在Haskell中实现的QML的语义作为一个编译器。编译器将QML程序作为输入,并将其解析为Haskell数据类型。编译器的输出要么是一个量子线路(可操作的),要么是一个等距(纯指称的),要么是一个超算子(不纯指称的)。讨论了QML中的可积性判断和余积问题。
2008-07-21 cs.PL quant-ph
A Simple Differentiable Programming Language
Google Research(谷歌研究院)
自动微分在科学计算和现代机器学习中发挥着重要作用,通常在强大的编程系统的背景下。自动微分的各种具体化与数学导数概念的关系并不总是完全清楚的-有时会无意中出现差异。为了研究自动微分,在这样的编程环境中,我们定义了一个小的,但表现力程序设计语言,其中包括一个结构的反向模式分化。我们给这种语言的操作和指称语义。操作语义学采用了流行的实现技术,而指称语义采用了与实分析相似的区分概念。我们确定这些语义是一致的。
2020-02-01 cs.LG cs.PL
A Domain Semantics for Higher-Order Recursive Processes
极化的SILL程序设计语言统一集成了函数式编程和会话类型的消息传递并发性。它支持一般递归、异步和同步通信以及通信通道和进程的高阶程序。我们给极化SILL一个域理论语义-第一个指称语义的语言与这种组合的功能。极化SILL中的会话类型表示单向通信的域对。进程表示这些域之间的连续函数,并且进程组合由跟踪操作符解释。我们通过验证预期的程序等价性来说明我们的语义。
2020-05-10 cs.PL
Simply Typed Reverse-Mode Automatic Differentiation with Variants: Denotational Correctness via Idempotent Completion
University of Coimbra(科英布拉大学);Utrecht University(乌得勒支大学)
研究反向模式自动微分中变体类型带来的问题,通过将余切纤维嵌入公共环境类型,利用幂等元选择有效纤维,证明相关等价关系并构造余积,获得双笛卡尔闭语义,表明依赖余切族和简单类型环境余切是等价表示。
2026-08-17 cs.LO cs.PL math.CT
Substructural Observed Communication Semantics
会话类型为通信进程指定通信协议,并且会话类型语言通常使用由多集重写系统给出的子结构操作语义来指定。我们为具有递归的会话类型语言给出了一个观察到的通信语义,其中进程的观察是通过其外部通信给出的。要做到这一点,我们引入公平执行多集重写系统,并提取公平的进程执行观察到的通信。这种语义诱导了一个直观合理的概念,观察等价,我们猜想符合语义等价引起的指称语义,互模拟,倒钩同余这些语言。
2020-08-31 cs.PL
Two-sorted algebraic decompositions of Brookes's shared-state denotational semantics
本文提出代数效应的双类等式理论,通过持锁/让锁两类层次及切换算子分解并发共享状态,精确重构并代数解释 Brookes 的轨迹语义。
2025-06-08 cs.DC cs.LO cs.PL
Quantum Alternation: Prospects and Problems
我们提出了一个量子控制的概念,在量子程序设计语言,它允许叠加的许多量子操作,而不进行测量。这个概念采用了条件构造的形式,类似于经典程序设计语言中的IF语句。我们表明,添加这样一个量子IF语句的QPL程序设计语言简化了几个量子算法的介绍。这激发了扩展QPL的指称语义以包括这种形式的量子交替的可能性。我们给出了一个指称语义的基础上Kraus分解,而不是超算子的QPL的扩展。最后,我们阐明了量子交替与递归的关系,并讨论了将Kraus算子定义的语义提升为Selinger超算子语义的可能性。
2015-11-05 cs.PL quant-ph
Cantor meets Scott: Semantic Foundations for Probabilistic Networks
ProbNetKAT是NetKAT的概率扩展,具有基于马尔可夫核的指称语义。该语言的表达能力足以生成连续分布,这就提出了如何在该语言中有效计算的问题。本文给出了一个新的表征ProbNetKAT的语义使用域理论,这提供了一个实际的实现所需的基础。我们展示了如何使用语义来近似任意ProbNetKAT程序使用有限支持分布的行为。我们开发了一个原型实现,并展示了如何使用它来解决各种问题,包括表征预期的拥塞引起的不同的路由方案和推理概率在网络中的可达性。
2018-12-15 cs.PL
Proceedings Seventh Workshop on Structural Operational Semantics
结构操作语义(SOS)是一种为编程和规约语言定义操作语义的技术。由于其直观的吸引力和灵活性,SOS在并发进程的语义研究中得到了广泛的应用。在程序的静态分析和证明编译器正确性方面,它也是指称语义的一个可行的替代方案。最近,它已被应用于新兴领域,如概率系统和系统生物学。
2010-08-11 cs.LO cs.PL
Smart Choices and the Selection Monad
Google Research(谷歌研究院)
从编程语言视角定义两种支持决策抽象的小型语言,基于选择单子给出操作与指称语义,证明两者一致并建立基础类型上的完全抽象与完备性。
2023-04-19 cs.LG cs.LO cs.PL
On Circuit Description Languages, Indexed Monads, and Resource Analysis
The University of Tokyo(东京大学);University of Bologna(博洛尼亚大学);Centre Inria d'Université Côte d'Azur(法国蔚蓝海岸国家研究中心)
本文提出基于单调的指称模型,用于Quipper编程语言的电路描述语言和资源分析,通过电路代数实现对电路大小的控制和定量性质的保证。
2025-11-27 cs.PL
A Model of Cooperative Threads
我们开发了一个模型的并发命令式编程线程。我们专注于一个小的命令式语言与合作的线程,执行无中断,直到他们终止或显式地产生控制。我们定义并研究了这种语言的基于跟踪的指称语义,这种语义是完全抽象的,但数学上是初等的。我们还给出了一个方程理论的计算效果,基础的语言,包括线程产卵。然后,我们分析线程的自由代数单子这个理论。
2010-10-20 cs.PL
Formal Semantics of the Language Cypher
Cypher是一种用于属性图的查询语言。它最初是作为Neo4j图形数据库的一部分设计和实现的,目前它被越来越多的商业系统、工业应用和研究项目所使用。在这项工作中,我们提供了指称语义的核心片段的只读部分的Cypher,特别是模式匹配,过滤和大多数关系操作表的功能。
2018-03-20 cs.DB cs.PL
Deterministic stream-sampling for probabilistic programming: semantics and verification
本文提出以采样器为核心的高阶概率编程语言及其连续映射语义,并通过类型系统处理不连续操作,进而给出采样器等价推理与正确性证明的形式化演算。
2023-04-26 cs.LO cs.PL