Compartir Estado entre Prompts y Programas
Sharing State Between Prompts and Programs
December 16, 2025
Autores: Ellie Y. Cheng, Logan Weber, Tian Jin, Michael Carbin
cs.AI
Resumen
El auge de los grandes modelos de lenguaje (LLM) ha introducido un nuevo tipo de programación: la programación en lenguaje natural. Al escribir instrucciones (prompts) que dirigen a los LLM para realizar procesamiento de lenguaje natural, generación de código, razonamiento, etc., los usuarios están escribiendo código en lenguaje natural —código en lenguaje natural— para que el LLM lo ejecute.
Un área de investigación emergente permite la interoperabilidad entre el código en lenguaje natural y los lenguajes formales como Python. Presentamos una nueva abstracción de programación, el estado compartido del programa, que elimina el trabajo manual requerido para permitir la interoperabilidad entre el código en lenguaje natural y el estado del programa. Con el estado compartido del programa, los programadores pueden escribir código natural que escribe directamente variables del programa, realiza cálculos con objetos del programa e implementa flujo de control en el programa. Presentamos un esquema para especificar interfaces de función natural que extienden los sistemas de programación para admitir código natural y aprovechamos este esquema para especificar el estado compartido del programa como una interfaz de función natural.
Implementamos el estado compartido del programa en el sistema de programación Nightjar. Nightjar permite a los programadores escribir programas en Python que contienen código natural que comparte el estado del programa de Python. Demostramos que los programas de Nightjar logran una precisión en las tareas comparable o superior a las implementaciones escritas manualmente (+4-19%), mientras reducen las líneas de código en un 39,6% en promedio. La contrapartida de usar Nightjar es que puede incurrir en una sobrecarga de tiempo de ejecución (0,4-4,3 veces el tiempo de ejecución de las implementaciones manuales).
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).