Oracular Programming: A Modular Foundation for Building LLM-Enabled Software
#Oracular Programming #Large Language Models #Modular Composition #Software Reliability #Programming Paradigms #AI Integration #Search Logic
📌 Key Takeaways
- Oracular programming integrates traditional computations with LLMs through modular composition
- The approach separates core and search logic while treating examples as program components
- Oracular programs consist of three independently improvable components: strategy, policy, and demonstrations
- The method addresses challenges in steering LLMs for reliable software development
📖 Full Retelling
Computer scientists Jonathan Laurent and André Platzer introduced oracular programming, a new programming paradigm for building LLM-enabled software, in a paper published on arXiv on February 24, 2026, addressing challenges in steering Large Language Models and achieving reliable software at scale through modular composition. The paper proposes a foundational approach that integrates traditional, explicit computations with inductive oracles like LLMs, resting on two directing principles: the full separation of core and search logic, and the treatment of few-shot examples as grounded and evolvable program components. Within this paradigm, experts express high-level problem-solving strategies as programs with unresolved choice points, which are then resolved at runtime by LLMs that generalize from user-provided examples of correct and incorrect decisions. The researchers describe oracular programs as composed of three orthogonal components: a strategy consisting of a nondeterministic program with choice points that can be reified into a search tree; a policy that specifies how to navigate this tree with the help of LLM oracles; and a set of demonstrations that describe successful and unsuccessful tree navigation scenarios across diverse problem instances. Each component is expressed in a dedicated programming language and can be independently improved or substituted, addressing key programming language design challenges of modularly composing oracular programs and enforcing consistency between their components as they evolve.
🏷️ Themes
Programming Paradigms, LLM Integration, Software Architecture, AI Reliability
Entity Intersection Graph
No entity connections available yet for this article.
Original Source
--> Computer Science > Programming Languages arXiv:2502.05310 [Submitted on 7 Feb 2025 ( v1 ), last revised 24 Feb 2026 (this version, v4)] Title: Oracular Programming: A Modular Foundation for Building LLM-Enabled Software Authors: Jonathan Laurent , André Platzer View a PDF of the paper titled Oracular Programming: A Modular Foundation for Building LLM-Enabled Software, by Jonathan Laurent and 1 other authors View PDF Abstract: Large Language Models can solve a wide range of tasks from just a few examples, but they remain difficult to steer and lack a capability essential for building reliable software at scale: the modular composition of computations under enforceable contracts. As a result, they are typically embedded in larger software pipelines that use domain-specific knowledge to decompose tasks and improve reliability through validation and search. Yet the complexity of writing, tuning, and maintaining such pipelines has so far limited their sophistication. We propose oracular programming: a foundational paradigm for integrating traditional, explicit computations with inductive oracles such as LLMs. It rests on two directing principles: the full separation of core and search logic, and the treatment of few-shot examples as grounded and evolvable program components. Within this paradigm, experts express high-level problem-solving strategies as programs with unresolved choice points. These choice points are resolved at runtime by LLMs, which generalize from user-provided examples of correct and incorrect decisions. An oracular program is composed of three orthogonal components: a strategy that consists of a nondeterministic program with choice points that can be reified into a search tree, a policy that specifies how to navigate this tree with the help of LLM oracles, and a set of demonstrations that describe successful and unsuccessful tree navigation scenarios across diverse problem instances. Each component is expressed in a dedicated programming language ...
Read full article at source