arrow
返回

Self-aware Program Analysis in stableKanren

delete2026-01-01
delete0
PRE
AI
X
Xiangyu Guo *
A
Ajay Bansal
DOI:10.1007/978-3-031-99751-8_8delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
本文提出两项改进以提升stableKanren在单调程序上的兼容性和性能。miniKanren支持单调推理,其中一个程序产生恰好一个模型。stableKanren扩展miniKanren至非单调推理,程序可有零至多个模型。stableKanren通过其run接口中的扩展非单调归结处理非单调推理的主要元素:循环和否定。当前stableKanren中的非单调归结也适用于单调程序,并引发两个问题:首先,无限答案的单调程序在stableKanren下无法产生答案;其次,单调程序在stableKanren下运行变慢,因额外的非单调归结。这些单调程序无需非单调归结。我们在stableKanren中构建无非单调归结的run-partial接口。使用run-partial可解决上述两个问题;但用户需具备专业知识判断程序是否单调并选择对应接口。我们进一步为stableKanren的run接口引入两项程序分析以隐式识别单调程序。我们通过宏在语法层面处理第一个问题,使run接口不对无否定的单调程序应用非单调归结。此外,我们提出四个语法级宏构建输入程序的两组较小孪生程序。每组孪生程序在循环与否定上的语义不同,通过运行这两组孪生程序解决第二个问题。单调程序的孪生程序产生相同结果,但非单调程序则不同。我们更新的run接口可在语法层面识别单调程序,但仍需进一步工作以在执行期间识别此类程序。
Keyword:
logic programming
miniKanren
stableKanren
macros

期刊

T
TRENDS IN FUNCTIONAL PROGRAMMING, TFP 2025
IF:
0
论文数:
20
被引数:
0

机构

A
arizona state university
学者数:
3.8K
论文数: 2.0K
被引数: 0
引用论文

引用论文

Foundations of Logic Programming
err
IF0
err1987-01-01
err0
PREAI
errJohn Wylie Lloyd
err分享
err收藏
Towards a Theory of Declarative Knowledge
err1988-01-01
err0
errOAAI
errKrzysztof R. Apt; Howard A. Blair; Adrian Walker
err分享
err收藏
Nearly Macro-free microKanren
err2023-01-01
err0
PREAI
errHemann,Jason; Friedman,Daniel P.
err分享
err收藏
The well-founded semantics for general logic programs
err1991-07-01
err0
PREAI
errAllen Van Gelder; Kenneth A. Ross; John S. Schlipf
err分享
err收藏
The Reasoned Schemer《理性的Scheme者》
err
IF0
err2005-10-14
err0
PREAI
errDaniel P. Friedman; William E. Byrd; Oleg Kiselyov
err分享
err收藏
没有更多内容