Constraint Handling Rules with Multiset Comprehension Patterns
SQL是一种声明性、并发性和提交性的基于选择规则的约束程序设计语言。我们扩展了多集理解模式,为程序员提供了编写多集重写规则,可以匹配存储中的变量数量的约束的能力。这使得为协调大量数据或需要聚合操作的算法编写更具可读性、简洁性和声明性的代码成为可能。我们将此扩展称为$\mathit{CHR}^\mathit{cp}$。我们给出了$\mathit{CHR}^\mathit{cp}$的高级抽象语义,然后是低级操作语义。然后,我们将展示这个操作语义相对于抽象语义的合理性。
2014-06-09 cs.PL
Implementing Constraint Handling Rules as a Domain-Specific Language Embedded in Java
基于逻辑和约束的程序设计语言和技术,例如约束处理规则(Constraint Handling Rules,缩写为CLR),可以支持许多常见的编程任务,这些任务可以以搜索可行或最优解的形式来表达。在大规模、分布式和动态云应用程序的配置管理中,使用XML开发新的约束求解器特别有趣,其中动态配置和组件选择是编程环境的一个组成部分。用Java的一个子集的特定于领域的语言编写CHR风格的约束求解器-而不是使用单独的语言层-解决了许多集成,开发周期中断,测试和调试问题,这些问题阻碍或难以在主流编程环境中采用基于CHR的方法。此外,原型实现公开了一个定义良好的API,该API支持事务性存储行为、安全终止和通过事件通知进行调试。
2013-08-19 cs.PL
Visualization of Constraint Handling Rules: Semantics and Applications
本文提出了一种对约束处理规则的动画扩展($CHR^{vis}$)。可视化总是帮助程序员理解数据和调试程序。一张图片胜过千言万语。它可以帮助识别问题所在或显示某些东西是如何工作的。它甚至可以说明一个关系,否则是不清楚的。$CHR^{vis}$旨在将动画和可视化功能嵌入到可编程逻辑器件程序中。因此,它使用户能够在执行程序时使这些执行动画化。本文旨在为$CHR^{vis}$提供操作语义。文中还讨论了$CHR^{vis}$程序的正确性。文中还介绍了新扩张的一些应用。
2017-06-04 cs.PL cs.SE
Visualization of Constraint Handling Rules
在过去的二十年里,约束处理规则(Constraint Handling Rules,缩写为CLR)已经发展成为一种通用语言。任何通用语言都需要自己的开发工具。特别是可视化工具,为程序员和语言初学者的许多任务提供了便利。本文介绍了正在进行的工作对可视化的可编程逻辑器件的程序。这个过程是通过源到源转换完成的。它的目标是达到一个通用的Transformer,以可视化在CHR中实现的不同算法。注:第30届国际逻辑编程会议(ICLP 2014)博士联盟,7月19日至22日,奥地利维也纳,接受了论文的扩展摘要/完整版本。
2014-05-15 cs.PL
Constraint Handling Rules - What Else?
约束处理规则(Constraint Handling Rules,简称CSTR)是一种有效的并发声明式约束程序设计语言,也是一种通用的计算形式。虽然概念上很简单,但它的特点是一个令人满意的功能的显着组合:-经典和线性逻辑中的语义基础,-有效和高效的顺序和并行执行模型-保证的属性,如随时在线算法属性-用于决定基本程序属性的强大分析方法。这篇关于碳纳米管研究和应用的综述并不完整。它集中于2000年以来的几年。关于XML的最新信息可以在XML网站www.constraint-handling-rules.org上找到,包括与本文相关的主题演讲的幻灯片、广泛的参考书目、在线演示版本和该语言的免费下载。
2017-01-10 cs.LO cs.PL
Analyzing Graph Transformation Systems through Constraint Handling Rules
图转换系统和约束处理规则是基于规则的非确定性状态转换系统。GTS以其强大的融合和程序等价性分析而闻名,为此,我们在这项工作中提供了将其应用于GTS的基础。我们给出了一个健全的和完整的嵌入GTS的可移植性,研究了一个嵌入的GTS的融合,并提供了一个程序等价性分析GTS通过嵌入。结果证实了适用的CHR为基础的程序分析嵌入在CHR的其他形式主义。
2010-06-15 cs.LO cs.PL
Proceedings of the Eleventh Workshop on Constraint Handling Rules
本卷包含在第十一届约束处理规则研讨会(2014年9月)上提交的论文,该研讨会将在维也纳逻辑夏季(VSL)之际在维也纳举行。
2014-06-05 cs.PL
Logical Algorithms meets CHR: A meta-complexity result for Constraint Handling Rules with rule priorities
K.U.Leuven(鲁汶大学)
本文研究了Ganzinger和McAllester的逻辑算法语言(LA)与约束处理规则(REQ)之间的关系。我们提出了一个从LA到CHR-rp的翻译模式:具有规则优先级的LLP,并证明了LA的元复杂性定理可以通过逆翻译应用于CHR-rp的子集。受Ganzinger和McAllester的逻辑算法的高级实现建议的启发,并基于一种新的调度算法,我们提出了一种替代实现CHR-rp,提供了强大的复杂性保证,并导致CHR-rp的一个新的和准确的元复杂性定理。进一步表明,从逻辑算法到CHR-rp的转换与新的CHR-rp实现相结合,满足逻辑算法元复杂性结果所需的复杂性。
2009-01-09 cs.AI cs.CC cs.PL
Intelligent search strategies based on adaptive Constraint Handling Rules
自适应约束处理与约束处理规则(约束处理规则)的最先进的实现允许智能搜索策略的应用,以解决约束满足问题(CSP)。本报告比较了改进版本的冲突导向的backjumping和两个变种的动态回溯相对于时间回溯的一些AIM的情况下,这是一个基准集的随机3-SAT问题。因此,在Java中与这些不同的搜索策略相结合的布尔约束求解器的并行实现与在SICStus Prolog中与时间回溯相结合的相同布尔约束求解器的并行实现进行比较。这一比较表明,在搜索过程中增加“情报”可能会大大减少搜索步骤的数量。此外,它们的Java实现的运行时在大多数情况下比按时间顺序回溯的实现更快。更具体地说,冲突导向的反向跳转甚至比SICStus Prolog实现的时间回溯更快,尽管我们的Java实现缺少SICStus Prolog系统中的优化。逻辑程序设计理论与实践(Theory and Practice of Logic Programming,TPLP)
2004-11-18 cs.AI cs.PL
Exploring Parallel Execution Strategies for Constraint Handling Rules - Work-in-Progress Report
约束处理规则(英语:Constraint Handling Rules)是一种基于规则的声明性形式和语言。并发性是固有的,因为规则可以并行地应用于约束的子集。并行实现的可扩展性,无论是在软件中,它在硬件中,使用不同的执行策略,并行执行的可扩展性程序取决于实现语言。在这份报告中,我们的目标是从一个更一般的概念角度来分析并行执行的并行程序。我们想通过实验来看看,当并行程序自动并行化时,可能会发生什么。为了这个目的,一个顺序模拟的并行可执行系统编码不同的并行执行策略。在对文献中的一些典型示例的详尽实验中,可以将并行执行和顺序执行进行比较。处理器的数量可以是有界的或无界的,以便进行更多的理论分析。因此,对于不同的问题类别和一般情况,可以对执行策略的影响进行一些初步但具有指示性的观察。
2018-08-23 cs.DC cs.PL
Parallelism, Concurrency and Distribution in Constraint Handling Rules: A Survey
约束处理规则是一种有效的并发声明式程序设计语言,也是一种通用的计算逻辑形式。可编程逻辑程序由转换多组约束的保护反应规则组成。XML的主要特性之一是其固有的并发性。直观地说,规则可以并行地应用于多重集的各个部分。在这个全面的调查中,我们给出了并发和并行以及分布式语义的概述,标准的和更奇特的,多年来已经提出了在不同层次的细化。这些语义的范围从抽象到具体。它们是由正式的健全性结果。它们的正确性建立在并行计算和顺序计算之间的对应关系上。我们提出了共同的简洁的示例编程,已被广泛用于实验和基准测试。我们审查并行可编程逻辑器件在软件和硬件中的实现。实验结果表明,一致的并行加速比。大多数实现都可以在线获得。并行形式主义也可以用来实现和推理并发模型。为此,软件事务模型,Actor模型,有色Petri网和Join-Calculus已经忠实地编码在CHR中。在逻辑编程理论与实践(TPLP)中考虑。
2018-04-06 cs.DC cs.PL
Applying Constraint Handling Rules to HPSG
约束处理规则(Constraint Handling Rules,简称CLR)为约束逻辑程序设计中的一个过度复杂化问题提供了一个现实的解决方案:如何将递归函数或关系与约束相结合,同时避免非终止性问题。本文重点介绍了一些其他的好处,特别是它们的实现SICStus Prolog,提供了计算语言学家的语法设计工具。通过包容检查来应用XML规则,并且仅当它们的变量被实例化或绑定时才进行这种检查。前者的功能是最好的难以模拟使用更原始的coroutining语句,如SICStus时/2,后者根本不存在任何形式之前,CHR。为了提供一个案例研究,在这些如何可以应用到语法开发,我们考虑属性逻辑引擎(ALE),一个Prolog预处理器的逻辑编程与类型化的特征结构,并将其扩展为中心语驱动短语结构语法(HPSG)的完整语法开发系统,HPSG是一种流行的基于约束的语言学理论,使用类型化特征结构。在此上下文中,HPSG不仅可以用于扩展特征结构描述的约束语言,以包括声明方式的关系,而且还可以为具有复杂前提的约束和正确解释HPSG类型系统所需的特征值同现约束提供支持。
2000-07-07 cs.CL cs.PL
Automatic Test Data Generation and Model Checking with CHR
我们提出了一个例子,应用约束处理规则自动测试数据生成和模型检验验证的任务关键软件的卫星控制。
2014-06-09 cs.PL cs.SE
Optimal Union-Find in Constraint Handling Rules
约束处理规则(英语:Constraint Handling Rules)是一种基于规则的提交选择语言,最初用于编写约束求解器。在本文中,我们表明,它也可以编写经典的联合查找算法和变种在CHR。程序既不妥协的声明性和效率。我们研究了我们的程序的时间复杂度:它们与最著名的命令式实现的几乎线性复杂度相匹配。实验结果说明了这一事实。
2005-01-25 cs.CC cs.DS cs.PF
A compositional Semantics for CHR
约束处理规则(英语:Constraint Handling Rules)是一种提交选择的声明性语言,被设计用于编写约束求解器。一个可重写程序由多头保护规则组成,这些规则允许人们将约束重写为更简单的约束,直到达到一个解决的形式。无论是从实践还是从理论方面,都对网络安全进行了相当大的关注。然而,由于使用了多首分句,有几个方面的语义学尚未得到澄清。特别是,到目前为止还没有定义用于XML的组合语义。在本文中,我们介绍了一个固定点的语义特征的输入/输出行为的一个可编程的程序,这是和组合,也就是说,它允许检索的语义的合取查询从语义的组件。这种语义可以用作定义增量和模块化分析和验证工具的基础。
2006-03-20 cs.PL
Justifications in Constraint Handling Rules for Logical Retraction in Dynamic Algorithms
Ulm University(乌尔姆大学)
我们提出了一个简单的源到源的转换,引入用户定义的约束的理由到XML程序设计语言。然后,两个规则的方案足以允许在计算期间逻辑收回(删除,移除)约束。无需从头开始重新计算,这些规则不仅删除了约束,还撤消了涉及约束的规则应用程序的所有结果。我们证明了一个关于规则方案的融合结果,并证明了它的正确性。当算法是用汇编语言编写时,约束既表示数据又表示操作。在本质上,约束已经是增量的,即可以在运行时添加约束。逻辑上的收缩增加了衰老。因此,任何用JavaScript编写的算法都将成为完全动态的。操作可以被撤销,数据可以在计算中的任何时候被删除,而不会影响结果的正确性。我们提出了两个经典的动态算法的例子,写在我们的原型实现的EQUIPMENT与理由,可在网上:保持最小的一组不断变化的数字和最短路径的图的边缘变化。
2017-09-11 cs.AI cs.LO cs.PL
Automatic Differentiation using Constraint Handling Rules in Prolog
自动微分是一种技术,它允许程序员通过组合大范围的数值和计算原语来定义数值计算,并使底层系统支持计算结果相对于其任何输入的偏导数,而不进行任何有限差分近似,也不操纵表示计算的大型符号表达式。本文介绍了一种新的方法,反向模式自动微分使用约束逻辑编程,具体地说,约束处理规则(约束处理规则)库的SWI Prolog,在一个非常小的(50行代码)的实现。当应用于概率语法中参数学习的内部-外部算法的基于微分的实现时,基于TensorFlow的实现大大优于两个著名的优化可微函数的框架Theano和TensorFlow。
2017-06-01 cs.MS cs.PL cs.SC
(Co-)Inductive semantics for Constraint Handling Rules
在本文中,我们解决的问题,定义一个不动点语义的约束处理规则(约束处理规则),捕获的行为的简化和传播规则在一个健全的和完整的方式,就其声明性语义。首先,我们证明了一组简化规则的状态的逻辑读取可以通过CHR的抽象操作语义生成的转换系统上的最小不动点来表征。同样,我们证明了一组传播规则的状态的逻辑读取可以通过最大不动点来表征。然后,为了利用这两种类型的规则,而不失去定点特征,我们提出了一个持久的操作语义。我们最后建立,这种语义的特点是两个嵌套的不动点,我们所得到的语言是一个优雅的框架,使用共归纳推理程序。
2011-08-01 cs.LO cs.PL
Towards a constraint solver for proving confluence with invariant and equivalence of realistic CHR programs
一个不确定性程序的汇流确保了功能性的输入输出关系,使程序员不必考虑实际的调度策略,并允许优化和并行实现。汇流模等价的更一般的性质确保等价的输入与等价的输出相关,而不需要是相同的。不变量下的合流也被认为是。约束处理规则是基于重写的逻辑程序设计语言的一个重要例子,本文旨在给出一种可机械化的方法来证明终止程序的汇流模等价性。虽然早期的方法,融合的可编程逻辑程序关注一个理想化的逻辑子集,我们指的是一个语义与标准的基于Prolog的实现兼容。我们指定了一个元级约束语言,在其中不变量和等价可以表示和操纵,扩展我们以前的理论结果走向实际的实施。
2018-09-13 cs.PL
CHR as grammar formalism. A first report
作为约束处理规则(Constraint Handling Rules,简写为CLR)编写的语法可以作为高效和健壮的自底向上解析器来执行,它提供了一种直接的、非回溯的歧义处理方法。具有完整性约束的溯因推理以及其他动态假设生成技术自然地适合于这种语法,并被举例用于回指解析、协调和文本解释。
2001-06-29 cs.CL cs.PL
Towards a Generic Framework to Generate Explanatory Traces of Constraint Solving and Rule-Based Reasoning
在这份报告中,我们展示了如何使用简单流畅演算(SFC)来指定通用跟踪程序,即产生通用跟踪的跟踪程序。通用跟踪是可以由软件组件的不同实现产生并独立于被跟踪组件使用的跟踪。这种方法是用来定义一种方法,用于扩展一个基于Java的CHRor平台,称为CHROME(约束处理规则在线模型驱动引擎)与可扩展的通用跟踪程序。该方法包括SFC中的跟踪器规范,扩展它的方法,以及将其与CHROME集成的方式,从而产生CHROME-REF平台(用于推理解释设施),这是一个具有解释性轨迹的约束求解和基于规则的推理引擎。
2010-01-13 cs.PL
An instance of FreeCHR with refined operational semantics
本文为FreeCHR框架引入了基于CHR精化操作语义推导出的执行算法,证明了其相对于非常抽象语义的健全性,为新的CHR实现提供了统一且易于实现的指南和算法定义。
2025-05-28 cs.PL
A Refined Operational Semantics for FreeCHR
本文提出FreeCHR的精细化操作语义,证明其等价于经典CHR的精细化语义,从而建立与现有CHR实现等效的实现框架。
2026-01-07 cs.PL
Optimized Execution of FreeCHR
针对现有CHR嵌入实现维护难、正确性弱问题,本文为FreeCHR框架提出改进的执行与匹配算法,并通过实证评估验证,以优化FreeCHR的执行效率。
2025-08-25 cs.PL
CHR(PRISM)-based Probabilistic Logic Learning
K.U.Leuven(鲁汶大学);Tokyo Institute of Technology(东京工业大学)
PRISM是Prolog的扩展,具有概率谓词和对期望最大化学习的内置支持。约束处理规则(Constraint Handling Rules,简写为程序设计语言)是一种基于多头多集重写规则的高级程序设计语言。在本文中,我们介绍了一种新的概率逻辑形式主义,称为CHRiSM,基于组合的PRISM和PRISM。它可以通过“机会规则”用于复杂统计模型的高级快速原型设计。然后,底层PRISM系统可用于多个概率推理任务,包括概率计算和参数学习。我们从语法和操作语义两个方面定义了CHRiSM语言,并举例说明。我们定义了模糊程序的概念,并定义了一个明确的程序的分布语义。接下来,我们描述了CHRiSM的实现,基于PRISM(棱镜)。我们讨论了CHRiSM和其他概率逻辑程序设计语言,特别是PCHR之间的关系。最后,我们确定潜在的应用领域。
2010-07-22 cs.AI cs.LG cs.LO
TCHR: a framework for tabled CLP
表格式约束逻辑编程是一种强大的执行机制,用于处理约束逻辑编程,而无需担心不动点计算。已经提出了各种应用,例如在程序分析和模型检验领域。不幸的是,缺乏用于开发新应用程序的高级系统,程序员被迫求助于复杂的特设解决方案。本文介绍了一个表式约束逻辑程序设计的高级框架TSTOM。它集成在一个轻量级的方式约束处理规则(约束处理规则),一个高级语言的约束求解器,表逻辑编程。该框架很容易用新的应用程序特定的约束域实例化。可以实例化各种高级操作来控制性能。特别是,我们提出了一种新的,通用的技术,紧凑的答案集。
2007-12-26 cs.PL
Why Can't You Behave? Non-termination Analysis of Direct Recursive Rules with Constraints
本文关注的是基于规则的程序出错。规则应用程序的不良行为是计算不终止或失败。我们提出了一个静态的程序分析的非终止性问题的递归约束处理规则(约束处理规则)的语言。是一种涉及约束推理的高级并发声明语言。它与许多其他基于规则的方法密切相关,因此其结果具有更广泛的意义。在这样的语言中,非终止性是由于递归规则的无限应用。失败是由于在计算过程中矛盾约束的积累。我们给出了线性直接递归简化规则的潜在非终止性和失效(以及确定终止性)的具有所谓的不良行为条件的定理。递归规则中约束之间的逻辑关系在这种程序分析中起着至关重要的作用。我们认为,我们的方法可以扩展到其他类型的递归和更一般的一类规则。因此,本文可以作为一个基本的参考和进一步研究的起点。
2017-01-10 cs.LO cs.PL cs.SE
Runtime Repeated Recursion Unfolding in CHR: A Just-In-Time Online Program Optimization Strategy That Can Achieve Super-Linear Speedup
提出一种基于重复递归展开的即时在线程序优化策略,通过运行时生成特化规则将递归调用次数降至对数级别,在CHR中实现并证明了其正确性及超线性加速条件。
2025-10-30 cs.CC cs.PF cs.PL