Program comprehension is the process through which software engineers use the source code as their main source of information to comprehend the behavior of a software system. Comprehending computer code is a challenging activity that involves a variety of cognitive abilities, from syntactic parsing to mentally recreating systems. Despite the popularity of this exercise, little is known about how the human brain processes code during code comprehension.
Researchers at MIT are learning which brain regions are active when someone analyzes a computer program. Decoding a code attribute of interest from recordings of brain signals when reading code is one method for discovering what information is stored in the brain (through fMRI or EEG). The choice of the target code property—which code properties should be investigated—is a key issue in such a decoding analysis. We can choose a few basic characteristics of a code and check to see if they can be broken. Although useful, a set like this won’t prevent other, more complicated elements of code from being encoded.
The researchers looked into this issue by examining brain records from functional magnetic resonance imaging (fMRI) tests of programmers’ comprehension of Python code. These initially assessed a number of static and dynamic code features, including metrics related to runtime and the abstract syntax tree (AST), and investigated how they connected to neural brain signals. Then, they train a probe to match brain recordings with representations discovered by a collection of ML models trained on code in order to determine whether brain representations carry fine-grained information about computer programs.
Through this research, scientists discover which brain systems are largely responsible for encoding and decoding information connected to computer programs.
They discovered that distinct code features are encoded by both the Multiple Demand and Language systems—brain systems that are in charge of very diverse cognitive tasks—and that they are both specifically aligned with machine-learned representations of code. These findings showed at least two different neurological mechanisms influencing the comprehension and assessment of computer programs, which prompted the development of code model goals beyond static language modeling.
They also discovered that syntax-related features like control flow and static analysis are encoded by the language system.
The proof that it is possible to transfer brain representations to representations learned by coding models is another significant contribution of their work. They noticed the encoding of the attributes that code models in the MD and LS represented, with four models being more precisely mapped from the MD.
The research may advance our comprehension of how the brain is put together, which could help us create more effective code models. The research also offers preliminary evidence in favor of the decoding of certain and basic code-related primitives, such as control flow data. Hence this research can revolutionize the way we code and help us create more effective code models.
Check out the Paper and Blog Article. All Credit For This Research Goes To Researchers on This Project. Also, don’t forget to join our Reddit page and discord channel, where we share the latest AI research news, cool AI projects, and more.
Rishabh Jain, is a consulting intern at MarktechPost. He is currently pursuing B.tech in computer sciences from IIIT, Hyderabad. He is a Machine Learning enthusiast and has keen interest in Statistical Methods in artificial intelligence and Data analytics. He is passionate about developing better algorithms for AI.