Traditional logic programming languages, such as Prolog, use a fixed left-to-right atom scheduling rule. Recent logic programming languages, however, usually provide more flexible scheduling in which computation generally proceed left-to-right but in which some calls are dynamically "delayed" until their arguments are sufficiently instantiated to allow the call to run efficiently. Such dynamic scheduling has a significant cost. We give a framework for the global analysis of logic programming languages with dynamic scheduling and show that program analysis based on this framework supports optimizations which remove much of the overhead of dynamic scheduling.
传统逻辑编程语言(例如Prolog)使用固定的从左到右原子调度规则。然而,最近的逻辑编程语言通常提供更灵活的调度,其中计算通常从左到右进行,但是其中一些调用被动态地“延迟”,直到它们的参数被充分实例化以允许调用有效地运行。这种动态调度具有很大的成本。我们为使用动态调度的逻辑编程语言进行全局分析提供了一个框架,并表明基于该框架的程序分析支持优化,从而消除了动态调度的许多开销。 P>
机译:使用动态调度推断逻辑程序的非暂停条件
机译:具有动态调度的简单模式逻辑程序的终止
机译:用于动态可重配置处理器的细粒度和小配置数据量可编程逻辑模块的研究-灵活处理器的可编程逻辑元件
机译:使用基于逻辑的遗传规划分析供应链动力学
机译:通过基于梯度的框架和直接启发式动态规划来理解和分析近似动态规划
机译:使用模糊逻辑和动态编程自动检测MR图像上的心脏轮廓。
机译:用动态调度分析逻辑程序