Investigación del MIT
06/11/2025 | 16:02
Redacción Cadena 3
El uso de modelos de lenguaje grandes (LLMs) en la programación promete revolucionar el desarrollo de software, pero también expone fallas históricas en la codificación, como la creación de código desordenado y difícil de modificar. En este contexto, investigadores del Laboratorio de Ciencias de la Computación e Inteligencia Artificial del MIT (CSAIL) propusieron un enfoque más "modular" para abordar estos problemas.
Este nuevo modelo divide los sistemas en "conceptos", que son piezas separadas de un sistema, cada una diseñada para realizar una tarea específica, y "sincronizaciones", que son reglas explícitas que describen cómo encajan esas piezas. El resultado es un software más modular, transparente y fácil de entender.
Para facilitar la expresión de estas sincronizaciones, se desarrolló un pequeño lenguaje específico de dominio (DSL) que permite a los LLMs generar código de manera confiable. En un estudio de caso, el equipo demostró cómo este método puede integrar características que de otro modo estarían dispersas en múltiples servicios. El trabajo fue publicado en las Actas del Simposio Internacional ACM SIGPLAN sobre Nuevas Ideas, Nuevos Paradigmas y Reflexiones sobre Programación y Software 2025.
El equipo, que incluye a Daniel Jackson, profesor de ingeniería eléctrica y ciencias de la computación en el MIT y director asociado de CSAIL, y Eagon Meng, estudiante de doctorado en EECS y diseñador del nuevo DSL de sincronización, exploró este enfoque en su artículo titulado "Lo que ves es lo que hace: un patrón estructural para software legible", presentado en la Splash Conference en Singapur en octubre.
El desafío que enfrentan es que, en la mayoría de los sistemas modernos, una sola característica nunca está completamente contenida. Por ejemplo, agregar un botón de "compartir" en una plataforma social como Instagram no reside en un solo servicio; su funcionalidad se distribuye entre el código que maneja la publicación, las notificaciones, la autenticación de usuarios, entre otros. Todas estas piezas, a pesar de estar dispersas, deben estar cuidadosamente alineadas, y cualquier cambio puede generar efectos secundarios no deseados en otros lugares.
Jackson se refiere a esto como "fragmentación de características", un obstáculo central para la fiabilidad del software. "La forma en que construimos software hoy en día, la funcionalidad no está localizada. Quieres entender cómo funciona 'compartir', pero tienes que buscarlo en tres o cuatro lugares diferentes, y cuando lo encuentras, las conexiones están enterradas en código de bajo nivel", explica Jackson.
Los conceptos y sincronizaciones están diseñados para abordar este problema. Un concepto agrupa una pieza coherente de funcionalidad, como compartir, dar me gusta o seguir, junto con su estado y las acciones que puede realizar. Las sincronizaciones, por su parte, describen a un nivel superior cómo interactúan esos conceptos.
En lugar de escribir código de integración desordenado, los desarrolladores pueden utilizar un lenguaje específico de dominio para especificar estas conexiones directamente. En este DSL, las reglas son simples y claras: la acción de un concepto puede activar otro, de modo que un cambio en un estado se mantenga sincronizado con otro.
"Piensa en los conceptos como módulos que son completamente limpios e independientes. Las sincronizaciones actúan como contratos: dicen exactamente cómo se supone que deben interactuar los conceptos. Eso es poderoso porque hace que el sistema sea más fácil de entender para los humanos y más fácil de generar correctamente para herramientas como los LLMs", afirma Jackson.
Los beneficios van más allá de la claridad. Dado que las sincronizaciones son explícitas y declarativas, pueden ser analizadas, verificadas y, por supuesto, generadas por un LLM. Esto abre la puerta a un desarrollo de software más seguro y automatizado, donde los asistentes de IA pueden proponer nuevas características sin introducir efectos secundarios ocultos.
En su estudio de caso, los investigadores asignaron características como dar me gusta, comentar y compartir a un solo concepto, similar a una arquitectura de microservicios, pero más modular. Sin este patrón, estas características estaban distribuidas en muchos servicios, lo que dificultaba su localización y prueba. Utilizando el enfoque de conceptos y sincronizaciones, cada característica se volvió centralizada y legible, mientras que las sincronizaciones especificaban exactamente cómo interactuaban los conceptos.
El estudio también demostró cómo las sincronizaciones pueden extraer preocupaciones comunes como el manejo de errores, el formato de respuestas o el almacenamiento persistente. En lugar de incrustar estos detalles en cada servicio, la sincronización puede manejarlos una vez, asegurando consistencia en todo el sistema.
Jackson vislumbra un potencial para un cambio cultural más amplio en el desarrollo de software. Una idea es la creación de "catálogos de conceptos", bibliotecas compartidas de conceptos específicos de dominio bien probados. El desarrollo de aplicaciones podría convertirse menos en coser código desde cero y más en seleccionar los conceptos adecuados y escribir las sincronizaciones entre ellos.
"Los conceptos podrían convertirse en un nuevo tipo de lenguaje de programación de alto nivel, con sincronizaciones como los programas escritos en ese lenguaje. Es una forma de hacer visibles las conexiones en el software", dice Jackson. "Hoy en día, ocultamos esas conexiones en el código. Pero si puedes verlas explícitamente, puedes razonar sobre el software a un nivel mucho más alto. Aún tienes que lidiar con la complejidad inherente de las interacciones de características. Pero ahora está a la vista, no dispersa y oscurecida".
El impacto de este enfoque podría ser significativo. Kevin Sullivan, profesor asociado de la Universidad de Virginia, quien no participó en la investigación, comentó: "Construir software para el uso humano sobre abstracciones de máquinas computacionales subyacentes ha cargado al mundo con software que a menudo es costoso, frustrante e incluso peligroso de entender y usar".
Por su parte, Thomas Ball, profesor honorario de la Universidad de Lancaster, también no involucrado en la investigación, agregó: "Ha quedado claro durante muchos años que necesitamos mejores formas de describir y especificar lo que queremos que el software haga. La capacidad de los LLMs para generar código solo ha añadido combustible al fuego de la especificación. El trabajo de Meng y Jackson sobre el diseño de conceptos proporciona una forma prometedora de describir lo que queremos del software de manera modular".
De cara al futuro, los investigadores esperan que su trabajo influya en cómo tanto la industria como la academia piensan sobre la arquitectura del software en la era de la IA. "Si el software ha de volverse más confiable, necesitamos formas de escribirlo que hagan transparentes sus intenciones", concluye Jackson. "Los conceptos y sincronizaciones son un paso hacia ese objetivo".
¿Qué proponen los investigadores?
Un nuevo modelo de software modular que mejora la legibilidad y la transparencia del código.
¿Quiénes están detrás de esta investigación?
Investigadores del Laboratorio de Ciencias de la Computación e Inteligencia Artificial del MIT (CSAIL).
¿Cuándo fue presentado el modelo?
El modelo fue presentado en octubre de 2025 en la Splash Conference en Singapur.
¿Cómo funciona el nuevo modelo?
Divide el software en "conceptos" y "sincronizaciones" para facilitar su comprensión y modificación.
¿Por qué es importante este enfoque?
Permite un desarrollo de software más seguro y automatizado, reduciendo la fragmentación de características.
Te puede Interesar
Estudio de la Universidad de Saarland
Un estudio revela que los programadores tienden a aceptar sugerencias de IA sin cuestionarlas, lo que podría aumentar errores. La colaboración humana sigue siendo clave para resolver problemas complejos.
Investigación del MIT
Investigadores del MIT desarrollaron FSNet, una herramienta que optimiza la gestión de redes eléctricas, encontrando soluciones en minutos y superando métodos tradicionales.
Innovación en tecnología espacial
Las empresas están considerando construir centros de datos en el espacio, aprovechando la energía solar para satisfacer la creciente demanda de energía en la carrera por la inteligencia artificial.
Innovación tecnológica
La nueva versión de Google Maps, impulsada por Gemini AI, promete una experiencia de navegación más interactiva y personalizada, ofreciendo recomendaciones en tiempo real y utilizando puntos de referencia para guiar a los usuarios.