Compiling ER Specifications into Declarative Programs
本文提出了一个环境,以支持高级数据库编程的声明式程序设计语言。为了确保安全的数据库更新,所有与数据库相关的访问和更新操作都是从实体关系(ER)模型中的高级描述中生成的。我们提出了一个表示ER图的声明性语言咖喱,使他们可以通过各种工具构建,然后翻译成这种表示。此外,我们已经实现了一个编译器,从这个表示到一个咖喱程序,提供访问和更新操作的基础上,一个高层次的API数据库编程。
2007-11-02 cs.PL cs.SE
A Declarative Semantics for CLP with Qualification and Proximity
在过去的几十年里,逻辑程序设计中的不确定性已经被研究,涉及经典LP范式的各种扩展和不同的应用。现有的建议依赖于不同的方法,如基于不确定真值的子句注释,作为不确定真值的概括的资格值,以及基于邻近关系的统一。另一方面,CLP方案已经确立了自己作为一个强大的扩展LP,支持高效的计算在专门的领域,同时保持一个干净的声明语义。在本文中,我们提出了一个新的计划SQCLP设计作为CLP的扩展,支持资格值和邻近关系。我们表明,以前的几个建议可以被视为新方案的特殊情况下,通过部分实例化。我们提出了一个声明性的语义SQCLP是基于可观的,提供不动点和证明理论的最小程序模型的特征,以及实现独立的概念的目标解决方案。
2010-07-21 cs.LO cs.PL
$μ$Puppet: A Declarative Subset of the Puppet Configuration Language
Puppet是一个流行的声明性框架,用于指定和管理复杂的系统配置。Puppet框架包括一种特定于领域的语言,具有一些受面向对象编程启发的高级功能,包括用户定义的资源类型,具有继承形式的“类”和依赖管理。像大多数现实世界的语言一样,该语言以一种特殊的方式发展,导致设计具有许多功能,其中一些功能很复杂,难以理解,并且难以正确使用。我们提出了一个操作语义$μ$木偶,木偶语言的一个代表性子集,涵盖了木偶的独特功能,同时排除功能,无论是弃用或正在进行的工作。形式化的语义揭示了语言的困难部分,识别未来改进的机会,并为未来的分析或调试技术提供了基础,如静态类型检查或出处跟踪。我们的语义直接导致Haskell中的参考实现。我们还讨论了一些木偶的特质,特别是它的处理类和范围,并提出了一个初始语料库的测试用例支持我们的正式语义。
2017-05-26 cs.PL
Programming in Alma-0, or Imperative and Declarative Programming Reconciled
在(Apt et al,TOPLAS 1998)中,我们介绍了支持声明式编程的命令式程序设计语言Alma-0。在本文中,我们说明了混合编程风格的Alma-0的各种例子,补充(Apt等,TOPLAS 1998年)。所提出的Alma-0程序说明了该语言的多功能性,并表明“不知道”的非确定性可以自然地与赋值相结合。
2000-04-05 cs.AI cs.LO cs.PL
XTQ: A Declarative Functional XML Query Language
已经提出了各种查询语言来提取和重构XML文档中的信息。这些语言通常声称是声明性的,主要考虑数据元素之间的连接关系。为了表示需要考虑层次关系和析取关系的操作,如重构层次结构和处理异构性,这些语言的程序通常表现出过程风格,因此它们的声明性不像SQL等传统查询语言那样突出。本文提出了一种基于声明模式的函数式XML查询语言XML树查询(XTQ)。XTQ采用表达性的组合模式来表示数据抽取,同时建立数据元素之间的合取、析取和层次关系。它使用匹配项,一个复合结构的变量绑定到匹配的数据元素,以提供一个全局草图的提取数据,并开发了一个演绎的匹配项重组机制,以指示数据转换,特别是重组层次结构和处理异构性。XTQ基于术语匹配,采用一致的方法进行函数声明和调用,以一致地提取和构造复合数据结构,它综合了传统函数式语言和基于模式的查询语言的特点。此外,XTQ还支持对复合数据结构(如层次数据)进行数据过滤,这在其他研究中很少考虑。我们证明了各种例子,XTQ可以声明目前复杂的XML查询,这是常见的实践。
2014-06-04 cs.DB cs.PL
PDL: A Declarative Prompt Programming Language
IBM Research(IBM研究院);UC Davis(加利福尼亚大学戴维斯分校)
针对现有提示框架难学或削弱开发者提示控制权的问题,本文提出基于 YAML 的声明式语言 PDL,以简化多平台 LLM、工具调用及 RAG、智能体等应用的提示编程。
2024-10-24 cs.AI cs.PL
Bluefish: Composing Diagrams with Declarative Relations
Bluefish是一个受组件式UI库启发的图表框架,通过引入声明式、可组合的关系原语,解决了现有工具在表达力与易用性间的权衡,支持跨领域的高效图表创建。
2024-07-26 cs.GR cs.HC cs.PL
JEDI: Java Evaluation of Declarative and Imperative Queries
Università della Svizzera italiana (USI)(瑞士意大利语大学)
提出JEDI基准测试套件,通过自动将SQL基准转换为Java基准,分析Stream API与命令式实现的性能差异,以指导开发者优化代码。
2026-05-22 cs.PL cs.SE
Prompt Decorators: A Declarative and Composable Syntax for Reasoning, Formatting, and Control in LLMs
School of Engineering and Built Environment(工程与建筑环境学院);College of Business(商学院);Sheffield Hallam University(谢菲尔德哈姆大学)
本文提出提示装饰器,一种声明式可组合语法,通过紧凑控制标记管理LLM推理、格式化和控制,形式化20个核心装饰器,实现可预测、可审计的行为组合,提升推理透明度并降低提示复杂性。
2025-10-21 cs.AI cs.CL cs.HC
A Declarative Language for Building And Orchestrating LLM-Powered Agent Workflows
PayPal
本文提出一种声明式语言,用于构建和协调基于大语言模型的智能体工作流,通过统一DSL减少开发时间和部署速度,提升非工程师的使用效率。
2025-12-22 cs.AI cs.PL cs.SE
Mystra: Declarative Dynamic Taint Analysis via Shadow Virtual Machine
Johns Hopkins University(约翰斯·霍普金斯大学)
研究针对解释型语言的动态污点分析问题,核心方法是引入影子虚拟机并设计声明式污点规范语言Mystra,主要贡献是实现工具Shar,在准确性和性能上均有出色表现,如V8实例召回率高且零误报,运行时开销低。
2026-07-16 cs.PL cs.SE
Applying Prolog to Develop Distributed Systems
分布式系统的开发是一项艰巨的任务。声明式编程技术在有效支持程序员应对这一挑战方面具有很大的潜力。虽然基于数据的语言已经被积极地探索用于编程分布式系统,但Prolog在这个应用领域迄今为止受到的关注相对较少。在本文中,我们提出了一个基于Prolog的编程系统,称为DAHL,分布式系统的声明式开发。DAHL用事件驱动的控制机制和内置的网络过程扩展了Prolog。我们的实验评估使用分布式哈希表数据结构,协议实现拜占庭容错,和分布式软件模型检查器-所有DAHL实现-表明该方法的可行性。
2010-07-22 cs.DC cs.PL
Unit Testing in ASPIDE
答案集编程(ASP)是一种声明式逻辑编程形式主义,目前在学术和工业现实世界中的应用。虽然在过去的几年里已经提出了一些工具来支持ASP程序的开发,但测试ASP程序的关键任务却很少受到关注,并且是可用编程环境的阿喀琉斯之踵。在本文中,我们提出了一种语言,用于指定和运行ASP程序的单元测试。测试语言已在ASPIDE中实现,ASPIDE是一个全面的ASP IDE,它支持ASP开发的整个生命周期,并提供了一系列用户友好的图形工具,用于程序组成、测试、调试、分析、求解器执行配置和输出处理。
2011-08-27 cs.PL
System $F^ω$ with Coherent Implicit Resolution
本文提出一种扩展 System $F^ω$ 的隐式编程演算,支持高阶类型实例,并给出无歧义、相干的解析的声明式规范。
2025-03-31 cs.PL
Adding Real-time Capabilities to a SML Compiler
最近人们对采用函数式和反应式编程用于实时的【形】系统设计产生了很大的兴趣。为了开发实时的【形】系统,正朝着一种更具声明性的方法发展,其目的是提高软件的保真度。为了研究实时的【形】系统的函数式和反应式编程的好处,需要实时的【形】感知的函数式编译器和语言运行时。在本文中,我们研究了对现代标准ML编译器MLton的必要更改,以提供对实时的【形】执行的基本支持。我们详细介绍了我们目前的进展,在修改MLton与线程模型,支持优先级,分块对象模型,以支持实时的【形】垃圾回收,和低级别的修改,以执行实时的【形】操作系统的顶部。我们提出了初步的数字和我们正在进行的工作原型,它能够在x86机器上启动用MLton编译的ML程序。
2016-01-13 cs.PL
A Monitoring Language for Run Time and Post-Mortem Behavior Analysis and Visualization
UFO是FORMAN的一个新实现,FORMAN是一种声明式监视语言,其中规则被编译成执行监视器,在Alamo监视器体系结构支持的虚拟机上运行。
2003-10-14 cs.PL cs.SE
ProDebug: An Automated Debugging System for Prolog
Carnegie Mellon University(卡内基梅隆大学)
提出结合大语言模型、频谱和变异技术的Prolog自动调试系统ProDebug,用于识别学生作业中的错误并生成修复方案。
2026-05-26 cs.PL cs.SE
Flexible coinductive logic programming
谓词的递归定义通常被解释为归纳的或共归纳的。最近,一种更强大的方法被提出,称为灵活共归纳,以表达各种中间解释,在某些情况下,获得正确的含义是必要的。我们提供了一个详细的正式帐户的扩展逻辑编程支持灵活的共归纳。从语法上讲,程序被附加子句丰富,附加子句具有特殊的含义,用于调整谓词的解释。通常,声明语义可以表示为一个固定点,然而,它不一定是最小的,也不一定是最大的,而是由附加子句确定的。相应地,操作语义是标准SLD分辨率和coSLD分辨率的组合。我们证明了操作语义是健全的和完整的声明性语义限制到有限的余模型。本文件正在考虑被TPLP接受。
2020-08-05 cs.LO cs.PL
Processing XML for Domain Specific Languages
XML是表示信息的标准和通用语言。XML处理由两个关键框架支持:DOM和SAX。SAX效率很高,但让开发人员对大部分处理进行编码。本文介绍了一种通过语法表达基于XML的语言的语言,可用于处理XML文档和合成任意值。该语言是声明性的,使开发人员不必了解SAX实现细节。语言被指定,一个有效的实现被定义为一个抽象的机器。
2015-06-10 cs.FL cs.PL
Extending Answer Set Programming with Rational Numbers
University of Calabria(卡拉布里亚大学)
针对 ASP 无法原生处理非整数算术且浮点算术损害可复现性与声明语义的问题,本文提出将非整数近似为有理数,为扩展的 ASP-Core-2 定义语义并实现。
2023-12-07 cs.AI cs.LO cs.PL