サイエンス

プログラムのコードを読む時に活性化される脳の領域は言語処理と同じではない


コンピューターのプログラムはプログラミング言語によって記述されており、プログラミング言語を習得するために新たな用語や意味を学ぶ過程は言語学習に似ている部分があります。しかし、プログラムのコードを読む人の脳をfMRIで調べた新たな研究では、「コードを読む時に活性化する脳の部位は言語処理に使われる領域と一致しない」ことが判明しました。

Comprehension of computer code relies primarily on domain-general executive brain regions | eLife
https://elifesciences.org/articles/58906

To the brain, reading computer code is not the same as reading language | MIT News | Massachusetts Institute of Technology
https://news.mit.edu/2020/brain-reading-computer-code-1215

「プログラミング言語」という言葉の通り、コードはコンピューターに指示を与えるために正しく記述する必要があり、他のプログラマーが読んで内容を理解できることも重要です。プログラミング言語のPythonの学習について調べた以前の研究では、Pythonをより早く正確に習得した人々は言語能力と問題解決能力が優れている傾向がみられたと報告されています。

マサチューセッツ工科大学の神経科学者であるEvelina Fedorenko准教授や大学院生のAnna Ivanova氏らの研究チームは、新たに「プログラミング言語を処理している人の脳をfMRIで観察する」という実験を行いました。

Fedorenko准教授は言語と他の認知機能との関係に焦点を当てた研究を行っており、特にブローカ野やその他の言語領域に、言語処理以外の機能が依存しているかどうかを調べています。「この研究では、言語とコンピュータープログラミングの関係を調査することに興味がありました。コンピュータープログラミングは非常に新しいものであり、優れたプログラマーになるための物理的なメカニズムが存在しないことがわかっているからです」とFedorenko准教授は述べています。


今回の研究では2回に分けて実験が行われており、1回目の実験ではPythonを、2回目の実験では小さな子ども向けのプログラミング言語であるScratchJrが用いられました。これらはいずれも読みやすいことで知られるプログラミング言語です。

2つの実験にはそれぞれPythonとScratchJrの知識を持つ20人以上のプログラミング経験者が参加し、fMRIで脳活動をスキャンした状態でPythonまたはScratchJrのコードを読み取り、どのような動作をするのかを考える問題に回答しました。また、被験者の言語領域が脳の右半球と左半球のどちらにあるのかも調査され、コードを読んでいる最中にどの部位が活性化するのかを分析しました。


その結果、研究チームは被験者がコードを処理する際に言語領域がほとんど反応しておらず、代わりにmultiple demand networkと呼ばれるネットワークが活性化することを発見しました。multiple demand networkは脳の前頭葉頭頂葉全体に広がっており、一度に多くの情報を必要とするタスクやさまざまな精神的タスクを実行する能力を担っているとのこと。

以前の研究では、数学や論理の問題が左半球のmultiple demand networkを活性化させることが示されましたが、コードに焦点を当てた今回の研究では、左半球と右半球の両方でmultiple demand networkが活性化したそうです。この点から、コードを処理する際のメカニズムは数学的問題を処理する際と同じではないことが示唆されています。Ivanova氏は、「コンピューターコードを理解するのは独特なことのようです。これは言語と同じではなく、数学や論理とも同じではありません」と述べています。


今回の研究では「プログラミング言語を処理する専門の領域」は見つからなかったものの、Fedorenko准教授は「特定の言語でのコーディングに30年または40年を費やしたプログラマー」において、multiple demand networkの一部がコードの処理に特化する可能性があると主張しました。

なお、Ivanova氏らの論文と同じ日に発表されたジョンズ・ホプキンズ大学の論文でも、プログラミング言語の処理と一般的な言語処理で活性化する領域が一致しないことが示されています。

Computer code comprehension shares neural resources with formal logical inference in the fronto-parietal network | eLife
https://elifesciences.org/articles/59340

この記事のタイトルとURLをコピーする

・関連記事
プログラミングを勉強するには「言語能力」と「問題解決能力」も重要 - GIGAZINE

最初に「プログラミング言語」という言葉が使われ始めたのは一体いつなのか? - GIGAZINE

プログラミングを上達するには量と質のどちらがより大切なのか? - GIGAZINE

プログラミングで問題解決するためにとるべき3つの手順 - GIGAZINE

6歳の子どもに「関数型プログラミング」を教える方法 - GIGAZINE

in サイエンス, Posted by log1h_ik

You can read the machine translated English article here.