Estás leyendo la publicación: Explorando el cerebro: investigadores del MIT investigan qué áreas se activan durante la evaluación de programas informáticos
La comprensión del programa es el proceso a través del cual los ingenieros de software utilizan el código fuente como su principal fuente de información para comprender el comportamiento de un sistema de software. Comprender el código de computadora es una actividad desafiante que involucra una variedad de habilidades cognitivas, desde el análisis sintáctico hasta la recreación mental de sistemas. A pesar de la popularidad de este ejercicio, se sabe poco sobre cómo el cerebro humano procesa el código durante la comprensión del código.
Los investigadores del MIT están aprendiendo qué regiones del cerebro están activas cuando alguien analiza un programa de computadora. La decodificación de un atributo de código de interés a partir de grabaciones de señales cerebrales cuando se lee el código es un método para descubrir qué información se almacena en el cerebro (a través de fMRI o EEG). La elección de la propiedad del código de destino, qué propiedades del código deben investigarse, es un tema clave en un análisis de decodificación de este tipo. Podemos elegir algunas características básicas de un código y comprobar si se pueden descifrar. Aunque es útil, un conjunto como este no evitará que se codifiquen otros elementos de código más complicados.
Los investigadores analizaron este problema al examinar los registros cerebrales de las pruebas de imágenes de resonancia magnética funcional (fMRI) de la comprensión del código Python por parte de los programadores. Inicialmente, estos evaluaron una serie de características de código estático y dinámico, incluidas las métricas relacionadas con el tiempo de ejecución y el árbol de sintaxis abstracta (AST), e investigaron cómo se conectaban con las señales del cerebro neuronal. Luego, entrenan una sonda para hacer coincidir las grabaciones cerebrales con las representaciones descubiertas por una colección de modelos ML entrenados en código para determinar si las representaciones cerebrales contienen información detallada sobre los programas de computadora.
A través de esta investigación, los científicos descubren qué sistemas cerebrales son en gran parte responsables de codificar y decodificar información conectada a programas de computadora.
Descubrieron que las distintas características del código están codificadas por los sistemas de Lenguaje y Demanda Múltiple (sistemas cerebrales que están a cargo de tareas cognitivas muy diversas) y que ambos están específicamente alineados con representaciones de código aprendidas por máquina. Estos hallazgos mostraron al menos dos mecanismos neurológicos diferentes que influyen en la comprensión y evaluación de los programas informáticos, lo que impulsó el desarrollo de objetivos de modelo de código más allá del modelado de lenguaje estático.
También descubrieron que las funciones relacionadas con la sintaxis, como el flujo de control y el análisis estático, están codificadas por el sistema de lenguaje.
La prueba de que es posible transferir representaciones cerebrales a representaciones aprendidas mediante modelos de codificación es otra contribución significativa de su trabajo. Notaron la codificación de los atributos que representan los modelos de código en MD y LS, con cuatro modelos mapeados con mayor precisión desde MD.
La investigación puede avanzar en nuestra comprensión de cómo se ensambla el cerebro, lo que podría ayudarnos a crear modelos de código más efectivos. La investigación también ofrece evidencia preliminar a favor de la decodificación de ciertas primitivas básicas relacionadas con el código, como los datos de flujo de control. Por lo tanto, esta investigación puede revolucionar la forma en que codificamos y ayudarnos a crear modelos de código más efectivos.