麻省理工学院的神经科学家发布的一篇报告指出,在人类阅读计算机代码时,其大脑中参与语言处理的区域并不会激活。反而是大脑的多重需求(multiple demand,MD)网络部分的血流量会增加,而这一部分通常被用于解决复杂的认知任务,如解决数学问题或填字游戏。
研究基于 Python 和图形化编程语言 ScratchJr 两种语言进行,参与测试的对象均来自麻省理工学院、塔夫茨大学以及两所大学附近地区,都是一些精通所测语言的年轻人。
在测试过程中,测试对象会躺在功能磁共振(fMRI)扫描仪中,阅读研究人员展示出来的一些代码片段和文字描述,同时思考这些代码包含的意义以及预测可能产生结果。研究人员则会通过 fMRI 实时观察测试对象的大脑活动状态。
结果表明,MD 系统在 Python 和 ScratchJr 的两个实验中都表现出了强烈的双边反应,而语言系统对句子问题反应强烈,但对代码问题却反应微弱或根本没有反应。
不过研究人员也表示,尽管读代码的时候激活了 MD 网络,但和数学、逻辑问题相比,它似乎更加依赖这个网络的不同部分。这也就是说,人类读代码时的大脑工作状态,还不能精确复制解数学问题时的大脑认知需求。因此,对于编程究竟是该以一种基于数学的技能、还是一种基于语言的技能来进行教授,仍尚无定论。
麻省理工学院研究生、该研究的主要作者 Anna Ivanova 称,“理解计算机代码似乎是它自己的事情。它与语言不同,也与数学和逻辑不同。”
值得一提的是,研究人员也指出,虽然他们没有发现大脑中任何专门用于编程的区域,但是有更多编程经验的人可能会发展出这种专门的大脑活动。
Evelina Fedorenko 副教授称,在那些可能花了 30 或 40 年的时间用一种特定的语言编写代码的专业程序员身上,我们可能会开始看到一些专业化,或者多元需求系统某些部分的结晶。不过在那些熟悉编程并能高效完成任务,但经验相对有限的人身上,似乎还看不到任何专业化的迹象。
完整论文地址:https://evlab.mit.edu/assets/papers/Ivanova_et_al_2020_eLife.pdf
本文转自OSCHINA。
本文标题:当你读代码时,你的大脑在做什么?
本文地址:https://www.oschina.net/news/124253/read-computer-code-brain