QD‐Janus: A sequential implementation of Janus in Prolog

Research output: Contribution to journalArticlepeer-review

13 Scopus citations


Janus is a language designed for distributed constraint programming. This paper describes QD‐Janus, a sequential implementation of Janus in Prolog. The compiler uses a number of novel analyses and optimizations to improve the performance of the system. The choice of Prolog as the target language for a compiler, although unusual, is motivated by the following: (i) the semantic gap between Janus and Prolog is much smaller than that between Janus and, say, C or machine language—this simplifies the compilation process significantly, and makes it possible to develop a system with reasonable performance fairly quickly; (ii) recent progress in Prolog implementation techniques, and the development of Prolog systems whose speeds are comparable to those of imperative languages, indicates that the translation to Prolog need not entail a significant performance loss compared to native code compilers; and (iii) compilation to Prolog can benefit immediately from a significant body of work on, and implementations of, parallel Prolog systems. Our experience indicates that translation of logic programming languages to Prolog, accompanied by the development of good program analysis and optimization tools, is an effective way to quickly develop flexible and portable implementations with good performance and low cost.

Original languageEnglish (US)
Pages (from-to)1337-1360
Number of pages24
JournalSoftware: Practice and Experience
Issue number12
StatePublished - Dec 1993
Externally publishedYes


  • Compilation
  • Implementation
  • Logic programming
  • Optimization

ASJC Scopus subject areas

  • Software


Dive into the research topics of 'QD‐Janus: A sequential implementation of Janus in Prolog'. Together they form a unique fingerprint.

Cite this