Partage d'état entre invites et programmes
Sharing State Between Prompts and Programs
December 16, 2025
papers.authors: Ellie Y. Cheng, Logan Weber, Tian Jin, Michael Carbin
cs.AI
papers.abstract
L'émergence des grands modèles de langage (LLM) a introduit un nouveau type de programmation : la programmation en langage naturel. En rédigeant des instructions qui dirigent les LLM pour effectuer du traitement du langage naturel, de la génération de code, du raisonnement, etc., les utilisateurs écrivent du code en langage naturel — du code en langage naturel — que le LLM exécute.
Un domaine de recherche émergent permet l'interopérabilité entre le code en langage naturel et les langages formels tels que Python. Nous présentons une nouvelle abstraction de programmation, l'état de programme partagé, qui élimine le travail manuel nécessaire pour permettre l'interopérabilité entre le code en langage naturel et l'état du programme. Avec l'état de programme partagé, les programmeurs peuvent écrire du code naturel qui écrit directement des variables de programme, effectue des calculs avec des objets du programme et implémente le flux de contrôle dans le programme. Nous présentons un schéma pour spécifier des interfaces de fonctions naturelles qui étendent les systèmes de programmation pour prendre en charge le code naturel, et nous utilisons ce schéma pour spécifier l'état de programme partagé comme une interface de fonction naturelle.
Nous implémentons l'état de programme partagé dans le système de programmation Nightjar. Nightjar permet aux programmeurs d'écrire des programmes Python qui contiennent du code naturel partageant l'état du programme Python. Nous montrons que les programmes Nightjar atteignent une précision de tâche comparable ou supérieure à celle des implémentations manuelles (+4 à 19 %), tout en réduisant le nombre de lignes de code de 39,6 % en moyenne. Le compromis de l'utilisation de Nightjar est qu'il peut entraîner une surcharge d'exécution (temps d'exécution de 0,4 à 4,3 fois celui des implémentations manuelles).
English
The rise of large language models (LLMs) has introduced a new type of programming: natural language programming. By writing prompts that direct LLMs to perform natural language processing, code generation, reasoning, etc., users are writing code in natural language -- natural language code -- for the LLM to execute.
An emerging area of research enables interoperability between natural language code and formal languages such as Python. We present a novel programming abstraction, shared program state, that removes the manual work required to enable interoperability between natural language code and program state. With shared program state, programmers can write natural code that directly writes program variables, computes with program objects, and implements control flow in the program. We present a schema for specifying natural function interfaces that extend programming systems to support natural code and leverage this schema to specify shared program state as a natural function interface.
We implement shared program state in the Nightjar programming system. Nightjar enables programmers to write Python programs that contain natural code that shares the Python program state. We show that Nightjar programs achieve comparable or higher task accuracy than manually written implementations (+4-19%), while decreasing the lines of code by 39.6% on average. The tradeoff to using Nightjar is that it may incur runtime overhead (0.4-4.3x runtime of manual implementations).