编程“语言”:脑部扫描显示写代码与说话使用相同的区域

来源:Programming ’language’: Brain scans reveal coding uses same regions as speech(https://medicalxpress.com/news/2020-06-language-brain-scans-reveal-coding.html

当程序员编写软件时,他们的脑海中会想些什么呢?这是由开姆尼茨理工大学软件工程教授Janet Siegmund教授、萨尔兰大学软件工程教授Sven Apel教授和马格德堡莱布尼兹神经生物学研究所非侵入性成像特殊实验室负责人 André Brechmann 博士提出的问题。为了找出答案,研究人员使用了神经科学的成像技术,并调查了当阅读和理解计算机程序时,哪些大脑区域被激活。他们令人惊叹的结果是:编程就像说话。他们发现,大脑中最活跃的区域也是那些与自然语言处理相关的区域。

他们现在已经在著名的ACM通讯杂志上发表了他们的基础研究成果,该杂志由世界上最大的计算机科学专业协会出版。主要作者是开姆尼茨理工大学的珍妮特·西格蒙德(Janet Siegmund)。这些发现可能会对编程语言的设计、编程教育或回答基本问题(如什么构成复杂或简单的程序代码)产生深远的影响。

新的研究方法–首次对编程中的大脑进行分析

珍妮特·西格蒙德(Janet Siegmund)说:“我们研究问题的想法是在马格德堡莱布尼茨神经生物学研究所和马格德堡信息学学院的研究人员联合会议上产生的。”在卡内基梅隆大学(Carnegie Mellon University)凯斯特纳教授和北卡罗来纳州立大学(North Carolina State University)帕宁教授的支持下,在几项大大小小的先导研究中,研究人员开发了一套通用的基础方法论。这一努力是值得的,因为与此同时,西格蒙德和她的同事开发的方法正在成为一种标准,并且已经在国际研究中证明了自己。

来自萨尔布吕肯的斯文·阿佩尔说:“我们的目标是开发一种全新的方法来更好地理解编程中涉及的认知过程。”Siegmund、Apel和Brechmann在分析几行代码时,首次使程序员的大脑活动可见。在这样做的过程中,科学家们像一个相互补充的团队一样共同努力。作为一名经验丰富的神经科学家,布雷赫曼贡献了他在功能磁共振成像(FMRI)实验方面的经验,而阿佩尔作为一名经验丰富的研究员,贡献了他在软件开发方面的专业知识,而西格蒙德(Siegmund)凭借她在心理学和计算机科学方面的跨学科专业知识,起到了纽带作用。

走向标准的研究设计

在这项研究中,研究小组使用了减法,这在神经科学中已经证明了自己:在这种方法中,受试者首先在磁共振断层扫描仪中的一个任务上工作,为了解决这个问题,他们必须理解程序代码的摘录。在短暂的休息期之后,他们被要求检查代码片段中是否有简单的语法错误,这是程序员的例行任务,这意味着这不会产生有关理解的问题。将此过程重复了多次。随后,从理解测试的图像中减去日常任务处理过程中大脑活动的图像,这些图像仍然是对程序理解过程特别重要的大脑区域。

为了观察在这个过程中大脑发生了什么,研究小组使用了功能性磁共振断层扫描仪。图像数据清楚地显示了受试者左侧大脑区域的激活,这些区域主要与语音理解有关。“令我们惊讶的是,我们没有观察到任何在数学或逻辑思维方向上的活动,”这位研究人员在总结结果时说。“我们的研究表明,语音理解在编程中起着核心作用。著名的荷兰计算机科学家埃茨格·W·迪克斯特拉(Edsger W.Dijkstra)在20世纪80年代就已经表达了这一假设,”阿佩尔补充道。

自那以后,世界各地的研究小组都采用了这项研究设计,并将其扩展到包括其他方面。研究小组假设,通过发现不同于阅读理解和逻辑推理的新认知过程,这些结果也可以反馈给神经科学。

由Siegmund、Apel和Brechmann领导的团队现在希望找出专家和初学者对程序的理解有何不同–他们是否以不同的方式阅读和解释程序代码。