在大脑里,编程语言竟然不是“语言”?

在大脑里,编程语言竟然不是“语言”?

作者 | Anne Trafton

翻译 | 陈阳

审校 | 酷炫脑主创

一句话总结:大脑在理解计算机代码时,并没有激活语言加工区域。

我们之所以把计算机编程语言称为“语言”,是因为学习编程和学习语言之间有很多相似之处。学编程时需要掌握新的符号和规则。为了让计算机实现某个功能,要用合理的方式组织这些符号和规则。同时,计算机代码还得清晰、简洁,才能被其他程序员理解。

虽然有这些相似点,但麻省理工学院的神经科学研究者们却发现,阅读计算机代码时被激活的大脑区域并不包括专门加工语言的区域。相反,它激活了另一个分布式的网络——多需求网络(multiple demand network),这个区域在以往研究里被认为是解决数学问题和谜语的地方。

该研究近期发表在生命科学期刊《eLife》上,其第一作者安娜·伊凡诺娃(Anna A Ivanova)说:“理解计算机代码看起来十分独特,既与理解语言不同,又有别于数学和逻辑。”伊凡诺娃的研究组组长是来自麦戈文脑科学研究所(McGovern Institute for Brain Research)的副教授伊芙丽娜·费多连科(Evelina Fedorenko)。

在大脑里,编程语言竟然不是“语言”?

语言与认知

费多连科研究组的研究重点是语言与其他认知功能的关系。具体来说,就是语言以外的其他功能是否依赖于大脑的语言网络,这其中包括了左半脑的布洛卡区(Broca’s area)和其他一些区域。在以往的工作中,他们已发现大脑在处理音乐与数学时并不会激活语言网络。

伊凡诺娃指出,计算机是人类最近的发明之一,研究语言和计算机编程之间有何关系很有意思。理论上说,我们的大脑中不会有现成的网络结构来专门处理计算机语言。或者说,人类并不是天生的程序员。目前,对于大脑如何学习编程有两种理论。一种理论认为,编程能力强的前提是要擅长数学。而另一种观点则认为编程与语言之间的关系更紧密。为了探究这个问题,研究者们设计了神经科学实验来记录大脑在阅读计算机代码时的神经活动情况,考察它是否与语言相关的大脑活动有重合。

在实验中,研究者们使用的实验材料是两种可读性比较强的编程语言:一种是当前流行的Python,而另一种则是专门为5岁及以上儿童设计的可视化编程语言ScratchJr。来参加实验的受试者们均为年轻的成年人,他们都擅长这两种语言中的一种。这些程序员躺在功能性磁共振扫描仪器中,一边接受扫描一边阅读代码片段,并回答这段代码能实现什么样的功能。

实验结果显示,大脑的语言区域对于代码并没有明显的反应,而一个被称为“多需求网络”的地方却被明显激活了。这个网络分布于大脑的额叶和顶叶区域,通常在大脑需要同时处理多重信息时会活跃起来。多需求网络对许多思维功能的实现都十分重要。

伊凡诺娃介绍说,多需求网络几乎参与了所有在认知上有挑战性的任务。换句话说,凡是要人开动脑筋苦苦思索的任务,都有它的份。

在大脑里,编程语言竟然不是“语言”?

读取计算机代码并不依赖与语言处理相关的大脑区域

以往研究显示,数学和逻辑任务主要依赖于左半脑的多需求网络,而空间定位对右半脑比左半脑的需求更高。本研究的麻省理工团队则发现,阅读计算机代码同时激活了左半脑和右半脑的多需求网络。与Python相比,可视化较强的ScratchJr对右半脑网络的激活还略微高于左半脑。这一结果并不支持数学和编程有相同脑机制的观点。

经验的效应

研究者们指出,虽然他们没有发现哪个大脑区域只负责编程这件事,但对于编程经验更丰富的人来说,可能会出现特定的大脑活动模式。

“如果一个人从事编程工作很长时间,比如使用某种计算机语言长达30到40年,那么很有可能会在他们大脑中发现一些特殊的地方,比如多需求网络中的某些部分会固定下来。” 费多连科说,“而对那些会编程但经验有限的人来说,大脑中就看不到特殊反应了。”

在大脑里,编程语言竟然不是“语言”?

(Anna A Ivanova et al., 2020)

在同一期的《eLife》上,另一组来自约翰霍普金斯大学的研究者也报道了一项相关的发现,在解决编程问题中,大脑被激活的区域正是多需求网络,而不是语言区。

这些结果对于编程的教学有一定的启示。人们是应该把编程当作一门数学技能还是语言技能来教学呢?或许这个问题并没有确定的答案。虽然学会编程以后,我们可能已不再依赖语言区,但学习编程的过程中,其实语言和多功能网络都参与其中。

伊凡诺娃说:“对于如何教编程,两种观点都存在。要么把它和数学联系在一起,要么依赖于语言。但计算机学科的教育者们还是需要找到一套适合自己的教学方法,来提高学生在学习编程的过程效率和效果。”

(这项研究的经费来自美国国家科学基金会、麻省理工学院脑认知学院以及麦戈文大脑研究所。)

未经允许不得转载:萌头条 » 在大脑里,编程语言竟然不是“语言”?

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏