ChatPaper.aiChatPaper

Condivisione dello Stato tra Prompt e Programmi

Sharing State Between Prompts and Programs

December 16, 2025
Autori: Ellie Y. Cheng, Logan Weber, Tian Jin, Michael Carbin
cs.AI

Abstract

L'ascesa dei grandi modelli linguistici (LLM) ha introdotto un nuovo tipo di programmazione: la programmazione in linguaggio naturale. Scrivendo prompt che guidano gli LLM nell'eseguire elaborazione del linguaggio naturale, generazione di codice, ragionamento, ecc., gli utenti stanno scrivendo codice in linguaggio naturale – codice in linguaggio naturale – per essere eseguito dall'LLM. Un'area di ricerca emergente consente l'interoperabilità tra il codice in linguaggio naturale e linguaggi formali come Python. Presentiamo una nuova astrazione di programmazione, lo stato condiviso del programma, che elimina il lavoro manuale richiesto per abilitare l'interoperabilità tra il codice in linguaggio naturale e lo stato del programma. Con lo stato condiviso del programma, i programmatori possono scrivere codice naturale che scrive direttamente variabili di programma, calcola con oggetti del programma e implementa il flusso di controllo nel programma. Presentiamo uno schema per specificare interfacce di funzioni naturali che estendono i sistemi di programmazione per supportare il codice naturale e sfruttiamo questo schema per specificare lo stato condiviso del programma come un'interfaccia di funzione naturale. Implementiamo lo stato condiviso del programma nel sistema di programmazione Nightjar. Nightjar consente ai programmatori di scrivere programmi Python che contengono codice naturale che condivide lo stato del programma Python. Dimostriamo che i programmi Nightjar raggiungono un'accuratezza nel compito paragonabile o superiore alle implementazioni scritte manualmente (+4-19%), riducendo contemporaneamente le linee di codice in media del 39.6%. Il compromesso nell'uso di Nightjar è che può comportare un sovraccarico computazionale a runtime (0.4-4.3x il runtime delle implementazioni manuali).
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).
PDF01December 21, 2025