The Janus System: Multi-paradigm Programming in Prolog and Python
Theresa Swift (Johns Hopkins Applied Physics Lab), Carl Andersen

TL;DR
The Janus system enables efficient multi-paradigm programming by tightly integrating Prolog and Python within a single process, facilitating high-performance inter-language communication for diverse applications.
Contribution
This paper introduces Janus, a novel system that bi-translates data structures and combines Prolog and Python for seamless, high-speed multi-paradigm programming.
Findings
Supports hundreds of thousands of calls per second
Successfully applied in NLP, visual query answering, and robotics
Easy porting to other Prolog implementations
Abstract
Python and Prolog express different programming paradigms, with different strengths. Python is wildly popular because it is well-structured, easy to use, and mixes well with thousands of scientific and machine learning programs written in C. Prolog's logic-based approach provides powerful reasoning capabilities, especially when combined with constraint evaluation, probabilistic reasoning, well-founded negation, and other advances. Both languages have commonalities as well: both are usually written in C, both are dynamically typed, and both use data structures based on a small number of recursive types. This paper describes the design and implementation of Janus, a system that tightly combines Prolog and Python into a single process. Janus bi-translates data structures and offers performance of many hundreds of thousands of round-trip inter-language calls per second. Although Janus is…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
