
TL;DR
This paper introduces Interactors, a new programming language construct that enables agent-oriented dialog between autonomous components, enhancing logic engine expressiveness and supporting advanced metaprogramming patterns.
Contribution
It defines Interactors as an abstraction for answer generation and refinement in logic engines, enabling expressive language extensions and emulation of features like Prolog's dynamic database.
Findings
Enables interaction between different branches of search processes.
Supports emulation of monadic constructs and catamorphisms.
Extends language constructs like yield in Ruby, Python, and C#.
Abstract
We introduce a new programming language construct, Interactors, supporting the agent-oriented view that programming is a dialog between simple, self-contained, autonomous building blocks. We define Interactors as an abstraction of answer generation and refinement in Logic Engines resulting in expressive language extension and metaprogramming patterns, including emulation of Prolog's dynamic database. A mapping between backtracking based answer generation in the callee and "forward" recursion in the caller enables interaction between different branches of the callee's search process and provides simplified design patterns for algorithms involving combinatorial generation and infinite answer streams. Interactors extend language constructs like Ruby, Python and C#'s multiple coroutining block returns through yield statements and they can emulate the action of monadic constructs and…
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.
Taxonomy
TopicsLogic, Reasoning, and Knowledge · Logic, programming, and type systems · Formal Methods in Verification
