Table of Contents
Fetching ...

Toward Programming Languages for Reasoning: Humans, Symbolic Systems, and AI Agents

Mark Marron

TL;DR

The paper reframes programming languages as substrates for reasoning and mechanization, addressing humans, symbolic tooling, and AI agents. It identifies seven sources of complexity in mainstream languages and proposes radical simplification via the BosqueIR intermediate representation and the Bosque surface language. The contributions include the design of BosqueIR, a reasoning-friendly surface syntax, and two case studies—small-model validation and AI-assisted programming—that demonstrate practical benefits. The work argues that a constrained, explicit, and deterministic foundation can enhance verification, AI-assisted coding, and scalable software development, with open-source tooling and strong potential for industry impact.

Abstract

Integration, composition, mechanization, and AI assisted development are the driving themes in the future of software development. At their core these concepts are rooted in the increasingly important role of computing in our world, the desire to deliver functionality faster, with higher quality, and to empower more people to benefit from programmatic automation. These themes, and how they impact the human developers driving them, are the foundations for the next generation of programming languages. At first glance the needs of mechanization tools, AI agents, and human developers along with the various goals around development velocity, software quality, and software democratization are a broad and seemingly diverse set of needs. However, at their core is a single challenge that, once resolved, enables us to make radical progress in all of these areas. Our hypothesis is that, fundamentally, software development is a problem of reasoning about code and semantics. This is true for human developers implementing a feature, symbolic tools building models of application behavior, and even for language based AI agents as they perform tasks. While the particular aspects of reasoning that each agent struggles with varies to some degree, they share many common themes and, surprisingly, most mainstream languages extensively employ (anti)features that make this task harder or infeasible! This paper proposes a novel approach to this challenge -- instead of new language features or logical constructs, that add more complexity to what is already a problem of complexity, we propose radical simplification in the form of the Bosque platform and language.

Toward Programming Languages for Reasoning: Humans, Symbolic Systems, and AI Agents

TL;DR

The paper reframes programming languages as substrates for reasoning and mechanization, addressing humans, symbolic tooling, and AI agents. It identifies seven sources of complexity in mainstream languages and proposes radical simplification via the BosqueIR intermediate representation and the Bosque surface language. The contributions include the design of BosqueIR, a reasoning-friendly surface syntax, and two case studies—small-model validation and AI-assisted programming—that demonstrate practical benefits. The work argues that a constrained, explicit, and deterministic foundation can enhance verification, AI-assisted coding, and scalable software development, with open-source tooling and strong potential for industry impact.

Abstract

Integration, composition, mechanization, and AI assisted development are the driving themes in the future of software development. At their core these concepts are rooted in the increasingly important role of computing in our world, the desire to deliver functionality faster, with higher quality, and to empower more people to benefit from programmatic automation. These themes, and how they impact the human developers driving them, are the foundations for the next generation of programming languages. At first glance the needs of mechanization tools, AI agents, and human developers along with the various goals around development velocity, software quality, and software democratization are a broad and seemingly diverse set of needs. However, at their core is a single challenge that, once resolved, enables us to make radical progress in all of these areas. Our hypothesis is that, fundamentally, software development is a problem of reasoning about code and semantics. This is true for human developers implementing a feature, symbolic tools building models of application behavior, and even for language based AI agents as they perform tasks. While the particular aspects of reasoning that each agent struggles with varies to some degree, they share many common themes and, surprisingly, most mainstream languages extensively employ (anti)features that make this task harder or infeasible! This paper proposes a novel approach to this challenge -- instead of new language features or logical constructs, that add more complexity to what is already a problem of complexity, we propose radical simplification in the form of the Bosque platform and language.
Paper Structure (63 sections, 2 equations, 5 figures)

This paper contains 63 sections, 2 equations, 5 figures.

Figures (5)

  • Figure 1: BosqueIRList<T> Operations
  • Figure 2: Bosque Binary-Tree Example
  • Figure 3: Bosque Flow Typing and Binding
  • Figure 4: Declarations from Sample Trading App
  • Figure 5: Order Processing from Trading App