程序理解研究经历了兴衰起伏。20 世纪 70 年代初和 80 年代,第一批研究人员是心理学家,他们使用记忆回忆等方法来探究程序员如何在脑海中表示和处理代码。随后,人们提出了各种理论和机制,如编程计划和自下而上的理解,但并未达成明确共识,编程研究的动力也寥寥无几(包括编程方法论、语言设计或教育研究)。十多年过去了,研究并没有取得重大进展,许多人离开了该领域 [25]。21 世纪初,第二波研究人员涌现,他们选择的方法论是“大代码”。研究人员通过代码存储库(如 GitHub)中的编程活动挖掘程序理解的痕迹,并提出统计问题,例如长标识符名称还是短标识符会导致更多缺陷。虽然这些数据已被证明是有价值的,但社区离理解程序员大脑内部运作机制却越来越远,我们的
语言或运动活动。如果我们只是观察程序员处理源代码时的情况,我们会看到很多被激活的大脑区域,但我们不知道哪些区域与程序理解行为直接相关。为了确定在程序理解过程中大脑的哪个部分被特别激活,我们应用了一种减法,如图 2 所示:我们让程序员识别代码中的语法错误作为一项基线任务,称为控制条件,它揭示了“浏览”代码与深入理解其语义之间的差异。这种减法是保守的,以便不会发现虚假的激活,这样,与程序理解行为无关的激活就会被尽可能地过滤掉。经过几年的规划和在 fMRI 扫描仪外进行的多次试点测试,我们得出了一个可以在 fMRI 机器内执行的实验设计。我们展示了我们的
