Detection and optimization of suspension-free logic programs

Saumya K. Debray, David Gudeman, Peter Bigot

Research output: Contribution to journalArticle

6 Scopus citations

Abstract

In recent years, language mechanisms to suspend, or delay, the execution of goals until certain variables become bound have become increasingly popular in logic programming languages. While convenient, such mechanisms can make control flow within a program difficult to predict at compile time, and therefore render many traditional compiler optimizations inapplicable. Unfortunately, this performance cost is also incurred by programs that do not use any delay primitives. In this paper, we describe a simple dataflow analysis for detecting computations where suspension effects can be ignored, and discuss several low-level optimizations that rely on this information. Our algorithm has been implemented in the jc system. Optimizations based on information it produces result in significant performance improvements, demonstrating speed comparable to or exceeding that of optimized C programs.

Original languageEnglish (US)
Pages (from-to)171-194
Number of pages24
JournalJournal of Logic Programming
Volume29
Issue number1-3
DOIs
StatePublished - 1996

ASJC Scopus subject areas

  • Logic

Fingerprint Dive into the research topics of 'Detection and optimization of suspension-free logic programs'. Together they form a unique fingerprint.

  • Cite this